mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-08-07 17:23:04 +02:00
Issue 0000598: NBM: Add new informations
Notification by mail: Add new informations about last categories and last images like new feature of RSS notification. 2 parts: - Possibility to send HTML mail - Include last categories and last images on HTML format into notification mail ccs & HTML experts! Please! Check, fix, improve and enhance HTML mail content! git-svn-id: http://piwigo.org/svn/trunk@1784 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -64,10 +64,6 @@ function get_mail_configuration()
|
||||
$conf_mail['formated_email_webmaster'] =
|
||||
format_email($conf['gallery_title'], $conf_mail['email_webmaster']);
|
||||
|
||||
// what to display at the bottom of each mail ?
|
||||
$conf_mail['text_footer'] =
|
||||
"\n\n-- \nPhpWebGallery ".($conf['show_version'] ? PHPWG_VERSION : '');
|
||||
|
||||
return $conf_mail;
|
||||
}
|
||||
|
||||
@@ -105,23 +101,34 @@ function format_email($name, $email)
|
||||
*
|
||||
* @param none
|
||||
*/
|
||||
function get_mail_template()
|
||||
function get_mail_template($email_format)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
// for mail, default template are used
|
||||
list($tmpl, $thm) = explode('/', $conf['default_template']);
|
||||
$mail_template = new Template(PHPWG_ROOT_PATH.'template/'.$tmpl, $thm);
|
||||
$mail_template = new Template(PHPWG_ROOT_PATH.'template/'.$tmpl, $thm);
|
||||
$mail_template->set_rootdir(PHPWG_ROOT_PATH.'template/'.$tmpl.'/mail/'.$email_format);
|
||||
|
||||
return $mail_template;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return string email format (html or not)
|
||||
*
|
||||
* @param string format
|
||||
*/
|
||||
function get_str_email_format($is_html)
|
||||
{
|
||||
return ($is_html ? 'text/html' : 'text/plain');
|
||||
}
|
||||
|
||||
/**
|
||||
* sends an email, using PhpWebGallery specific informations
|
||||
*/
|
||||
function pwg_mail($to, $from = '', $subject = 'PhpWebGallery', $infos = '', $format_infos = 'text/plain', $email_format = null)
|
||||
{
|
||||
global $conf, $conf_mail, $lang_info, $user, $page;
|
||||
global $conf, $conf_mail, $lang_info, $page;
|
||||
|
||||
$cvt7b_subject = str_translate_to_ascii7bits($subject);
|
||||
|
||||
@@ -170,32 +177,48 @@ function pwg_mail($to, $from = '', $subject = 'PhpWebGallery', $infos = '', $for
|
||||
|
||||
$content = '';
|
||||
|
||||
if (!isset($conf_mail[$email_format][$lang_info['charset']]['header']))
|
||||
if (!isset($conf_mail[$email_format][$lang_info['charset']]))
|
||||
{
|
||||
if ($email_format == 'text/html')
|
||||
if (!isset($mail_template))
|
||||
{
|
||||
$mail_template = get_mail_template();
|
||||
|
||||
$mail_template->set_filenames(array('mail_header'=>'mail/header.tpl'));
|
||||
|
||||
$mail_template->assign_vars(
|
||||
array(
|
||||
'BODY_ID' =>
|
||||
isset($page['body_id']) ?
|
||||
$page['body_id'] : '',
|
||||
|
||||
'CONTENT_ENCODING' => $lang_info['charset'],
|
||||
'LANG' => $lang_info['code'],
|
||||
'DIR' => $lang_info['direction']
|
||||
));
|
||||
|
||||
$conf_mail[$email_format][$lang_info['charset']]['header'] =
|
||||
$mail_template->parse('mail_header', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$conf_mail[$email_format][$lang_info['charset']]['header'] = '';
|
||||
$mail_template = get_mail_template($email_format);
|
||||
}
|
||||
|
||||
$mail_template->set_filename('mail_header', 'header.tpl');
|
||||
$mail_template->set_filename('mail_footer', 'footer.tpl');
|
||||
|
||||
$mail_template->assign_vars(
|
||||
array(
|
||||
//Header
|
||||
'BODY_ID' =>
|
||||
isset($page['body_id']) ?
|
||||
$page['body_id'] : '',
|
||||
|
||||
'CONTENT_ENCODING' => $lang_info['charset'],
|
||||
'LANG' => $lang_info['code'],
|
||||
'DIR' => $lang_info['direction'],
|
||||
|
||||
// Footer
|
||||
'GALLERY_URL' =>
|
||||
isset($page['gallery_url']) ?
|
||||
$page['gallery_url'] : $conf['gallery_url'],
|
||||
'GALLERY_TITLE' =>
|
||||
isset($page['gallery_title']) ?
|
||||
$page['gallery_title'] : $conf['gallery_title'],
|
||||
'VERSION' => $conf['show_version'] ? PHPWG_VERSION : '',
|
||||
'PHPWG_URL' => PHPWG_URL,
|
||||
|
||||
'TITLE_MAIL' => urlencode(l10n('title_send_mail')),
|
||||
'MAIL' => get_webmaster_mail_address()
|
||||
));
|
||||
|
||||
// what are displayed on the header of each mail ?
|
||||
$conf_mail[$email_format][$lang_info['charset']]['header'] =
|
||||
$mail_template->parse('mail_header', true);
|
||||
|
||||
// what are displayed on the footer of each mail ?
|
||||
$conf_mail[$email_format][$lang_info['charset']]['footer'] =
|
||||
$mail_template->parse('mail_footer', true);
|
||||
}
|
||||
|
||||
$content.= $conf_mail[$email_format][$lang_info['charset']]['header'];
|
||||
@@ -209,36 +232,6 @@ function pwg_mail($to, $from = '', $subject = 'PhpWebGallery', $infos = '', $for
|
||||
$content.= $infos;
|
||||
}
|
||||
|
||||
if (!isset($conf_mail[$email_format][$lang_info['charset']]['footer']))
|
||||
{
|
||||
if ($email_format == 'text/html')
|
||||
{
|
||||
$mail_template->set_filenames(array('mail_footer'=>'mail/footer.tpl'));
|
||||
|
||||
$mail_template->assign_vars(
|
||||
array(
|
||||
'GALLERY_URL' =>
|
||||
isset($page['gallery_url']) ?
|
||||
$page['gallery_url'] : $conf['gallery_url'],
|
||||
'GALLERY_TITLE' =>
|
||||
isset($page['gallery_title']) ?
|
||||
$page['gallery_title'] : $conf['gallery_title'],
|
||||
'VERSION' => $conf['show_version'] ? PHPWG_VERSION : '',
|
||||
'PHPWG_URL' => PHPWG_URL,
|
||||
|
||||
'TITLE_MAIL' => urlencode(l10n('title_send_mail')),
|
||||
'MAIL' => get_webmaster_mail_address()
|
||||
));
|
||||
|
||||
$conf_mail[$email_format][$lang_info['charset']]['footer'] =
|
||||
$mail_template->parse('mail_footer', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$conf_mail[$email_format][$lang_info['charset']]['footer'] = $conf_mail['text_footer'];
|
||||
}
|
||||
}
|
||||
|
||||
$content.= $conf_mail[$email_format][$lang_info['charset']]['footer'];
|
||||
|
||||
// Undo Compute root_path in order have complete path
|
||||
@@ -247,6 +240,26 @@ function pwg_mail($to, $from = '', $subject = 'PhpWebGallery', $infos = '', $for
|
||||
unset_make_full_url();
|
||||
}
|
||||
|
||||
/*Testing block
|
||||
{
|
||||
global $user;
|
||||
@mkdir(PHPWG_ROOT_PATH.'testmail');
|
||||
$filename = PHPWG_ROOT_PATH.'testmail/mail.'.$user['username'];
|
||||
if ($format_infos == 'text/plain')
|
||||
{
|
||||
$filename .= '.txt';
|
||||
}
|
||||
else
|
||||
{
|
||||
$filename .= '.html';
|
||||
}
|
||||
$file = fopen($filename, 'w+');
|
||||
fwrite($file, $content);
|
||||
fclose($file);
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
if ($conf_mail['mail_options'])
|
||||
{
|
||||
$options = '-f '.$conf_mail['email_webmaster'];
|
||||
|
||||
@@ -407,13 +407,15 @@ function news($start, $end, $exclude_img_cats=false, $add_url=false)
|
||||
if (!$exclude_img_cats)
|
||||
{
|
||||
add_news_line( $news,
|
||||
nb_new_elements($start, $end), '%d new element', '%d new elements');
|
||||
nb_new_elements($start, $end), '%d new element', '%d new elements',
|
||||
get_root_url().'index.php?/recent_pics', $add_url );
|
||||
}
|
||||
|
||||
if (!$exclude_img_cats)
|
||||
{
|
||||
add_news_line( $news,
|
||||
nb_updated_categories($start, $end), '%d category updated', '%d categories updated');
|
||||
nb_updated_categories($start, $end), '%d category updated', '%d categories updated',
|
||||
get_root_url().'/index.php?/recent_cats', $add_url );
|
||||
}
|
||||
|
||||
add_news_line( $news,
|
||||
@@ -508,5 +510,92 @@ SELECT DISTINCT c.uppercats, COUNT(DISTINCT i.id) img_count
|
||||
}
|
||||
}
|
||||
return $dates;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns html description about recently published elements grouped by post date
|
||||
* @param $date_detail: selected date computed by get_recent_post_dates function
|
||||
*/
|
||||
function get_html_description_recent_post_date($date_detail)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$description = '';
|
||||
|
||||
$description .=
|
||||
'<li>'
|
||||
.l10n_dec('%d new element', '%d new elements', $date_detail['nb_elements'])
|
||||
.' ('
|
||||
.'<a href="'.make_index_url(array('section'=>'recent_pics')).'">'
|
||||
.l10n('recent_pics_cat').'</a>'
|
||||
.')'
|
||||
.'</li><br/>';
|
||||
|
||||
foreach($date_detail['elements'] as $element)
|
||||
{
|
||||
$tn_src = get_thumbnail_url($element);
|
||||
$description .= '<img src="'.$tn_src.'"/>';
|
||||
}
|
||||
$description .= '...<br/>';
|
||||
|
||||
$description .=
|
||||
'<li>'
|
||||
.l10n_dec('%d category updated', '%d categories updated',
|
||||
$date_detail['nb_cats'])
|
||||
.'</li>';
|
||||
|
||||
$description .= '<ul>';
|
||||
foreach($date_detail['categories'] as $cat)
|
||||
{
|
||||
$description .=
|
||||
'<li>'
|
||||
.get_cat_display_name_cache($cat['uppercats'])
|
||||
.' ('.
|
||||
l10n_dec('%d new element',
|
||||
'%d new elements', $cat['img_count']).')'
|
||||
.'</li>';
|
||||
}
|
||||
$description .= '</ul>';
|
||||
|
||||
return $description;
|
||||
}
|
||||
|
||||
/**
|
||||
* explodes a MySQL datetime format (2005-07-14 23:01:37) in fields "year",
|
||||
* "month", "day", "hour", "minute", "second".
|
||||
*
|
||||
* @param string mysql datetime format
|
||||
* @return array
|
||||
*/
|
||||
function explode_mysqldt($mysqldt)
|
||||
{
|
||||
$date = array();
|
||||
list($date['year'],
|
||||
$date['month'],
|
||||
$date['day'],
|
||||
$date['hour'],
|
||||
$date['minute'],
|
||||
$date['second'])
|
||||
= preg_split('/[-: ]/', $mysqldt);
|
||||
|
||||
return $date;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns title about recently published elements grouped by post date
|
||||
* @param $date_detail: selected date computed by get_recent_post_dates function
|
||||
*/
|
||||
function get_title_recent_post_date($date_detail)
|
||||
{
|
||||
global $lang;
|
||||
|
||||
$date = $date_detail['date_available'];
|
||||
$exploded_date = explode_mysqldt($date);
|
||||
|
||||
$title = l10n_dec('%d new element', '%d new elements', $date_detail['nb_elements']);
|
||||
$title .= ' ('.$lang['month'][(int)$exploded_date['month']].' '.$exploded_date['day'].')';
|
||||
|
||||
return $title;
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user