diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-12-17 03:56:58 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-12-17 03:56:58 +0000 |
commit | d23122dffafa40415b1496c240ebd0b27619ef0f (patch) | |
tree | f165a28f175f4abbe756c58aec9b579b76fdcbe7 /admin | |
parent | a5d4acd8469d571c39f004431836f13d0ef1a5b6 (diff) | |
download | ampache-d23122dffafa40415b1496c240ebd0b27619ef0f.tar.gz ampache-d23122dffafa40415b1496c240ebd0b27619ef0f.tar.bz2 ampache-d23122dffafa40415b1496c240ebd0b27619ef0f.zip |
fixed mailing functions
Diffstat (limited to 'admin')
-rw-r--r-- | admin/mail.php | 252 |
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 |