Mail notification for admins

git-svn-id: http://piwigo.org/svn/trunk@85 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
z0rglub 2003-09-10 22:24:03 +00:00
commit 637cdd1e23
6 changed files with 110 additions and 3 deletions

View file

@ -43,7 +43,8 @@ array( 'prefix_thumbnail','webmaster','mail_webmaster','access',
'show_comments','nb_comment_page','upload_available',
'upload_maxfilesize', 'upload_maxwidth','upload_maxheight',
'upload_maxwidth_thumbnail','upload_maxheight_thumbnail','log',
'comments_validation','comments_forall','authorize_cookies' );
'comments_validation','comments_forall','authorize_cookies',
'mail_notification' );
$default_user_infos =
array( 'nb_image_line','nb_line_page','language','maxwidth',
'maxheight','expand','show_nb_comments','short_period','long_period',
@ -403,6 +404,39 @@ $vtp->setVar( $sub, 'param_line.def',
$lang['conf_general_log_info'] );
$vtp->closeSession( $sub, 'param_line' );
$vtp->closeSession( $sub, 'line' );
// mail notification for admins
$vtp->addSession( $sub, 'line' );
$vtp->addSession( $sub, 'param_line' );
$vtp->setVar( $sub, 'param_line.name',
$lang['conf_general_mail_notification'] );
$vtp->addSession( $sub, 'group' );
$vtp->addSession( $sub, 'radio' );
$vtp->setVar( $sub, 'radio.name', 'mail_notification' );
$vtp->setVar( $sub, 'radio.value', 'true' );
$vtp->setVar( $sub, 'radio.option', $lang['yes'] );
$checked = '';
if ( $mail_notification == 'true' )
{
$checked = ' checked="checked"';
}
$vtp->setVar( $sub, 'radio.checked', $checked );
$vtp->closeSession( $sub, 'radio' );
$vtp->addSession( $sub, 'radio' );
$vtp->setVar( $sub, 'radio.name', 'mail_notification' );
$vtp->setVar( $sub, 'radio.value', 'false' );
$vtp->setVar( $sub, 'radio.option', $lang['no'] );
$checked = '';
if ( $mail_notification == 'false' )
{
$checked = ' checked="checked"';
}
$vtp->setVar( $sub, 'radio.checked', $checked );
$vtp->closeSession( $sub, 'radio' );
$vtp->closeSession( $sub, 'group' );
$vtp->setVar( $sub, 'param_line.def',
$lang['conf_general_mail_notification_info'] );
$vtp->closeSession( $sub, 'param_line' );
$vtp->closeSession( $sub, 'line' );
$vtp->addSession( $sub, 'line' );
$vtp->addSession( $sub, 'space_line' );

View file

@ -49,7 +49,7 @@ $conf['site_url'] = 'http://www.phpwebgallery.net';
$conf['forum_url'] = 'http://forum.phpwebgallery.net';
$conf['picture_ext'] = array('jpg','JPG','gif','GIF','png','PNG');
$conf['document_ext'] = array('doc','pdf','zip');
$conf['top_number'] = 20;
$conf['top_number'] = 5;
$conf['anti-flood_time'] = 60; // seconds between 2 comments : 0 to disable
database_connection();
@ -64,7 +64,7 @@ $infos = array( 'prefix_thumbnail', 'webmaster', 'mail_webmaster', 'access',
'upload_available', 'upload_maxfilesize', 'upload_maxwidth',
'upload_maxheight', 'upload_maxwidth_thumbnail',
'upload_maxheight_thumbnail','log','comments_validation',
'comments_forall','authorize_cookies' );
'comments_forall','authorize_cookies','mail_notification' );
$query = 'SELECT ';
foreach ( $infos as $i => $info ) {

View file

@ -350,6 +350,12 @@ function templatize_array( $array, $global_array_name, $handle )
}
}
// format_date returns a formatted date for display. The date given in
// argument can be a unixdate (number of seconds since the 01.01.1970) or an
// american format (2003-09-15). By option, you can show the time. The
// output is internationalized.
//
// format_date( "2003-09-15", 'us', true ) -> "Monday 15 September 2003 21:52"
function format_date( $date, $type = 'us', $show_time = false )
{
global $lang;
@ -375,4 +381,46 @@ function format_date( $date, $type = 'us', $show_time = false )
return $formated_date;
}
// notify sends a email to every admin of the gallery
function notify( $type, $infos = '' )
{
global $conf;
$headers = 'From: '.$conf['webmaster'].' <'.$conf['mail_webmaster'].'>'."\n";
$headers.= 'Reply-To: '.$conf['mail_webmaster']."\n";
$headers.= 'X-Mailer: PhpWebGallery, PHP '.phpversion();
$options = '-f '.$conf['mail_webmaster'];
// retrieving all administrators
$query = 'SELECT username,mail_address,language';
$query.= ' FROM '.PREFIX_TABLE.'users';
$query.= " WHERE status = 'admin'";
$query.= ' AND mail_address IS NOT NULL';
$query.= ';';
$result = mysql_query( $query );
while ( $row = mysql_fetch_array( $result ) )
{
$to = $row['mail_address'];
include( PREFIX_INCLUDE.'./language/'.$row['language'].'.php' );
$content = $lang['mail_hello']."\n\n";
switch ( $type )
{
case 'upload' :
$subject = $lang['mail_new_upload_subject'];
$content.= $lang['mail_new_upload_content'];
break;
case 'comment' :
$subject = $lang['mail_new_comment_subject'];
$content.= $lang['mail_new_comment_content'];
break;
}
$infos = str_replace( '&nbsp;', ' ', $infos );
$infos = str_replace( '&minus;', '-', $infos );
$content.= "\n\n".$infos;
$content.= "\n\n-- \nPhpWebGallery ".$conf['version'];
$content = wordwrap( $content, 72 );
@mail( $to, $subject, $content, $headers, $options );
}
}
?>

View file

@ -241,6 +241,15 @@ $lang['upload_creation_date'] = 'Date de cr
$lang['upload_comment'] = 'Commentaire';
// end version 1.3
// start version 1.3
// mails
$lang['mail_hello'] = 'Bonjour,';
$lang['mail_new_upload_subject'] = 'Nouvelle image sur le site';
$lang['mail_new_upload_content'] = 'Une nouvelle image a été placée sur la galerie. Elle est en attente de validation. RDV dans la section d\'administration pour valider ou supprimer cette image.';
$lang['mail_new_comment_subject'] = 'Nouveau commentaire sur le site';
$lang['mail_new_comment_content'] = 'Un nouveau commentaire a été posté sur la galerie. Si vous avez activé la validation des commentaires, il faut d\'abord valider le commentaire dans la zone d\'administration pour le voir apparaître.'."\n\n".'Vous avez accès aux derniers commentaires dans la zone d\'administration.';
// end version 1.3
//----------------------------------administration
if ( $isadmin )
{
@ -343,6 +352,8 @@ if ( $isadmin )
// $lang['conf_general_expand_info'] = 'développer toutes les catégories par défaut dans le menu ?';
$lang['conf_general_log'] = 'historique';
$lang['conf_general_log_info'] = 'historiser les visites sur le site ? Les visites seront visibles dans l\'historique de l\'administration';
$lang['conf_general_mail_notification'] = 'Notification par mail';
$lang['conf_general_mail_notification_info'] = 'Notification automatique par mail des administrateurs (seuls les administrateurs) lors de l\'ajout d\'un commentaire, ou lors de l\'ajout d\'une image.';
// end version 1.3
$lang['conf_comments'] = 'commentaires utilisateurs';
$lang['conf_comments_title'] = 'Configuration des '.$lang['conf_comments'];

View file

@ -605,6 +605,15 @@ if ( $conf['show_comments'] )
}
$vtp->setVar( $handle, 'information.content', $message );
$vtp->closeSession( $handle, 'information' );
// notification to the administrators
if ( $conf['mail_notification'] )
{
$cat_name = get_cat_display_name( $page['cat_name'], ' > ', '' );
$cat_name = strip_tags( $cat_name );
if ( $page['name'] == '' ) $picture = $page['file'];
else $picture = $page['name'];
notify( 'comment', $cat_name.' > '.$picture );
}
}
else
{

View file

@ -213,6 +213,11 @@ if ( isset( $_POST['submit'] ) and !isset( $_GET['waiting_id'] ) )
$query.= ';';
mysql_query( $query );
$page['waiting_id'] = mysql_insert_id();
// mail notification for administrators
if ( $conf['mail_notification'] )
{
notify( 'comment' );
}
}
}
//------------------------------------------------------------ thumbnail upload