summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2007-12-17 03:56:58 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2007-12-17 03:56:58 +0000
commitd23122dffafa40415b1496c240ebd0b27619ef0f (patch)
treef165a28f175f4abbe756c58aec9b579b76fdcbe7 /admin
parenta5d4acd8469d571c39f004431836f13d0ef1a5b6 (diff)
downloadampache-d23122dffafa40415b1496c240ebd0b27619ef0f.tar.gz
ampache-d23122dffafa40415b1496c240ebd0b27619ef0f.tar.bz2
ampache-d23122dffafa40415b1496c240ebd0b27619ef0f.zip
fixed mailing functions
Diffstat (limited to 'admin')
-rw-r--r--admin/mail.php252
1 files changed, 21 insertions, 231 deletions
diff --git a/admin/mail.php b/admin/mail.php
index 2d7ce570..4c5a070e 100644
--- a/admin/mail.php
+++ b/admin/mail.php
@@ -19,257 +19,47 @@
*/
-require('../lib/init.php');
+require_once '../lib/init.php';
-if (!$GLOBALS['user']->has_access(100)) {
+if (!Access::check('interface','75')) {
access_denied();
exit();
}
+show_header();
-$action = scrub_in($_POST['action']);
-$to = scrub_in($_REQUEST['to']);
-if (isset ($_POST['cat_stats'])){$cat_stats = scrub_in($_POST['cat_stats']);}
-if (isset ($_POST['pop_albums'])){$pop_albums = scrub_in($_POST['pop_albums']);}
-if (isset ($_POST['pop_artists'])){$pop_artists = scrub_in($_POST['pop_artists']);}
-if (isset ($_POST['pop_songs'])){$pop_songs = scrub_in($_POST['pop_songs']);}
-if (isset ($_POST['threshold'])){$threshold = scrub_in($_POST['threshold']);} else { $threshold = conf($stats_threshold); };
-if (isset ($_POST['new_artists'])){$new_artists = scrub_in($_POST['new_artists']);}
-if (isset ($_POST['new_albums'])){$new_albums = scrub_in($_POST['new_albums']);}
-if (isset ($_POST['flagged'])){$flagged = scrub_in($_POST['flagged']);}
-$subject = stripslashes(scrub_in($_POST['subject']));
-$message = stripslashes(scrub_in($_POST['message']));
-
-/* Always show the header */
-show_template('header');
-
-switch ($action) {
+// Action switch
+switch ($_REQUEST['action']) {
case 'send_mail':
- if (conf('demo_mode')) { break; }
-
- // do the mail mojo here
- if ( $to == 'all' ) {
- $sql = "SELECT * FROM user WHERE email IS NOT NULL";
- }
- elseif ( $to == 'users' ) {
- $sql = "SELECT * FROM user WHERE access='user' OR access='25' AND email IS NOT NULL";
- }
- elseif ( $to == 'admins' ) {
- $sql = "SELECT * FROM user WHERE access='admin' OR access='100' AND email IS NOT NULL";
- }
- elseif ( $to == 'inactive' ) {
- if (isset ($_POST['inactive'])){
- $days = $_POST['inactive'];
- } else {
- $days = "30";
- }
- $inactive = time() - ($days * 24 * 60 *60);
- $sql = "SELECT * FROM user WHERE last_seen <= '$inactive' AND email IS NOT NULL";
- }
+ if (Config::get('demo_mode')) {
+ access_denied();
+ exit;
+ }
-
- $db_result = mysql_query($sql, dbh());
-
- $recipient = '';
+ $clients = AmpacheMail::get_users($_REQUEST['to']);
- while ( $u = mysql_fetch_object($db_result) ) {
- $recipient .= "$u->fullname <$u->email>, ";
+ foreach ($clients as $client) {
+ $recipient .= $client['fullname'] ." <" . $client['email'] . ">, ";
}
// Remove the last , from the recipient
$recipient = rtrim($recipient,",");
-
- $from = $user->fullname."<".$user->email.">";
+
+ // Set the vars on the object
+ AmpacheMail::$recipient = $recipient;
+ AmpacheMail::$from = $GLBOALS['user']->fullname."<".$GLOBALS['user']->email.">";
+ AmpacheMail::$subject = scrub_in($_REQUEST['subject']);
+ AmpacheMail::$message = scrub_in($_REQUEST['message']);
+ AmpacheMail::send();
- if (isset ($cat_stats)){
- /* Before we display anything make sure that they have a catalog */
- $query = "SELECT * FROM catalog";
- $dbh = dbh();
- $db_results = mysql_query($query, dbh());
- if (!mysql_num_rows($db_results)) {
- $items[] = "<span align=\"center\" class=\"error\">" . _("No Catalogs Found!") . "</span><br />";
- $items[] = "<a href=\"" . conf('web_path') . "/admin/catalog.php?action=show_add_catalog\">" ._("Add a Catalog") . "</a>";
- show_info_box(_('Catalog Statistics'),'catalog',$items);
- return false;
- break;
- }
-
- $query = "SELECT count(*) AS songs, SUM(size) AS size, SUM(time) as time FROM song";
- $db_result = mysql_query($query, $dbh);
- $songs = mysql_fetch_assoc($db_result);
-
- $query = "SELECT count(*) FROM album";
- $db_result = mysql_query($query, $dbh);
- $albums = mysql_fetch_row($db_result);
-
- $query = "SELECT count(*) FROM artist";
- $db_result = mysql_query($query, $dbh);
- $artists = mysql_fetch_row($db_result);
-
- $sql = "SELECT count(*) FROM user";
- $db_result = mysql_query($sql, $dbh);
- $users = mysql_fetch_row($db_result);
-
- $time = time();
- $last_seen_time = $time - 1200;
- $sql = "SELECT count(DISTINCT s.username) FROM session AS s " .
- "INNER JOIN user AS u ON s.username = u.username " .
- "WHERE s.expire > " . $time . " " .
- "AND u.last_seen > " . $last_seen_time;
- $db_result = mysql_query($sql, $dbh);
- $connected_users = mysql_fetch_row($db_result);
-
- $hours = floor($songs['time']/3600);
- $size = $songs['size']/1048576;
-
- $days = floor($hours/24);
- $hours = $hours%24;
-
- $time_text = "$days ";
- $time_text .= ($days == 1) ? _("day") : _("days");
- $time_text .= ", $hours ";
- $time_text .= ($hours == 1) ? _("hour") : _("hours");
-
- if ( $size > 1024 ) {
- $total_size = sprintf("%.2f", ($size/1024));
- $size_unit = "GB";
- }
- else {
- $total_size = sprintf("%.2f", $size);
- $size_unit = "MB";
- }
- $stats = _('Total Users')." ".$users[0]."\n";
- $stats .= _('Connected Users')." ".$connected_users[0]."\n";
- $stats .= _('Albums')." ".$albums[0]."\n";
- $stats .= _('Artists')." ".$artists[0]."\n";
- $stats .= _('Songs')." ".$songs['songs']."\n";
- $stats .= _('Catalog Size')." ".$total_size." ".$size_unit."\n";
- $stats .= _('Catalog Time')." ".$time_text."\n";
-
- $message .= "\n\nAmpache Catalog Statistics\n\n";
- $message .= "$stats";
- }
-
- if (isset ($pop_albums)){
- $message .= "\n\nMost Popular Albums\n\n";
- $stats = new Stats();
- $stats = $stats->get_top('10','album',$threshold);
-
- foreach( $stats as $r){
- $album = new Album($r[object_id]);
- $palbums .= $album->name." (". $r[count].")\n";
- }
- $message .= "$palbums";
- }
-
- if (isset ($pop_artists)){
- $message .= "\n\nMost Popular Artists\n\n";
- $stats = new Stats();
- $stats = $stats->get_top('10','artist',$threshold);
-
- foreach( $stats as $r){
- $artist = new Artist($r[object_id]);
- $partists .= $artist->name." (". $r[count].")\n";
- }
- $message .= "$partists";
- }
-
- if (isset ($pop_songs)){
-
- $message .= "\n\nMost Popular Songs\n\n";
- $stats = new Stats();
- $stats = $stats->get_top('10','song',$threshold);
-
- foreach( $stats as $r){
- $song = new Song($r[object_id]);
- $artist = $song->get_artist_name();
- $text = "$artist - $song->title";
- $psongs .= $text." (". $r[count].")\n";
- }
- $message .= "$psongs";
- }
-
- if (isset ($new_artists)){
-
- $sql = "SELECT DISTINCT artist FROM song ORDER BY addition_time " .
- "DESC LIMIT " . conf('popular_threshold');
- $db_result = mysql_query($sql, dbh());
-
- while ( $item = mysql_fetch_row($db_result) ) {
- $artist = new Artist($item[0]);
- $nartists .= $artist->name."\n";
- }
- $message .= "\n\nLatest Artist Additions\n\n";
- $message .= "$nartists";
- }
-
- if (isset ($new_albums)){
-
- $sql = "SELECT DISTINCT album FROM song ORDER BY addition_time " .
- "DESC LIMIT " . conf('popular_threshold');
- $db_result = mysql_query($sql, dbh());
-
-
- while ( $item = mysql_fetch_row($db_result) ) {
- $album = new Album($item[0]);
- $nalbums .= $album->name."\n";
- }
- $message .= "\n\nLatest Album Additions\n\n";
- $message .= "$nalbums";
-
- }
-
- if (isset ($flagged)){
-
- $flag = new Flag();
- $flagged = $flag->get_flagged();
- $message .= "\n\nFlagged Songs\n\n";
- $message .= "Name\t\t\t\tFlag\t\tFlagged by\tStatus\n";
- foreach ($flagged as $data){
-
- $flag = new Flag($data);
- $flag->format_name();
- $name = $flag->name;
- $user = $flag->user;
- $flag = $flag->flag;
- if($flag->approved){ $status = "Approved"; } else { $status = "Pending"; }
- $message .= "*) $name\t$flag\t\t$user\t\t$status\n";
- }
-}
-
- if (isset ($disabled)){
-
- $catalog = new Catalog();
- $songs = $catalog->get_disabled();
- $message .= "\n\nDisabled Songs\n\n";
-
- foreach ($songs as $song){
-
- $name = "*) ". $song->title ." | ". $song->get_album_name($song->album) ." | ". $song->get_artist_name($song->album) ." | ". $song->file ;
- $message .= "$name";
- }
-}
-
- // woohoo!!
- mail ($from, $subject, $message,
- "From: $from\r\n".
- "Bcc: $recipient\r\n");
-
/* Confirmation Send */
- $url = conf('web_path') . '/admin/mail.php';
+ $url = Config::get('web_path') . '/admin/mail.php';
$title = _('E-mail Sent');
$body = _('Your E-mail was successfully sent.');
show_confirmation($title,$body,$url);
break;
default:
- if ( empty($to) ) {
- $to = 'all';
- }
-
- if ( empty($subject) ) {
- $subject = "[" . conf('site_title') . "] ";
- }
- require (conf('prefix') . '/templates/show_mail_users.inc.php');
+ require_once Config::get('prefix') . '/templates/show_mail_users.inc.php';
break;
} // end switch