From 2c61829ad73fb03a0562387c77bc71fd4e50eb8e Mon Sep 17 00:00:00 2001 From: plegall Date: Fri, 23 Mar 2012 11:17:15 +0000 Subject: [PATCH] feature 2561: notification on album was moved to a dedicated tab on the "Edit album" screen. git-svn-id: http://piwigo.org/svn/trunk@13668 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/album.php | 1 + admin/album_notification.php | 202 ++++++++++++++++++ .../default/template/album_notification.tpl | 40 ++++ language/en_UK/admin.lang.php | 2 + language/fr_FR/admin.lang.php | 2 + 5 files changed, 247 insertions(+) create mode 100644 admin/album_notification.php create mode 100644 admin/themes/default/template/album_notification.tpl diff --git a/admin/album.php b/admin/album.php index cb434e061..8609da9f5 100644 --- a/admin/album.php +++ b/admin/album.php @@ -65,6 +65,7 @@ $tabsheet = new tabsheet(); $tabsheet->add('properties', l10n('Properties'), $admin_album_base_url.'-properties'); $tabsheet->add('sort_order', l10n('Manage photo ranks'), $admin_album_base_url.'-sort_order'); $tabsheet->add('permissions', l10n('Permissions'), $admin_album_base_url.'-permissions'); +$tabsheet->add('notification', l10n('Notification'), $admin_album_base_url.'-notification'); $tabsheet->select($page['tab']); $tabsheet->assign(); diff --git a/admin/album_notification.php b/admin/album_notification.php new file mode 100644 index 000000000..8d4dbca1b --- /dev/null +++ b/admin/album_notification.php @@ -0,0 +1,202 @@ + 0) + { + $element = pwg_db_fetch_assoc($result); + + $img_url = ''; + } + } + + if (!isset($img_url)) + { + $img_url = ''; + } + + // TODO Mettre un array pour traduction subjet + pwg_mail_group( + $_POST['group'], + get_str_email_format(true), /* TODO add a checkbox in order to choose format*/ + get_l10n_args('[%s] Visit album %s', + array($conf['gallery_title'], $category['name'])), + 'cat_group_info', + array + ( + 'IMG_URL' => $img_url, + 'CAT_NAME' => $category['name'], + 'LINK' => make_index_url( + array( + 'category' => array( + 'id' => $category['id'], + 'name' => $category['name'], + 'permalink' => $category['permalink'] + ))), + 'CPL_CONTENT' => empty($_POST['mail_content']) + ? '' : stripslashes($_POST['mail_content']) + ), + '' /* TODO Add listbox in order to choose Language selected */); + + unset_make_full_url(); + + $query = ' +SELECT + name + FROM '.GROUPS_TABLE.' + WHERE id = '.$_POST['group'].' +;'; + list($group_name) = pwg_db_fetch_row(pwg_query($query)); + + array_push( + $page['infos'], + sprintf( + l10n('An information email was sent to group "%s"'), + $group_name + ) + ); +} + +// +-----------------------------------------------------------------------+ +// | template initialization | +// +-----------------------------------------------------------------------+ + +$template->set_filename('album_notification', 'album_notification.tpl'); + +$template->assign( + array( + 'CATEGORIES_NAV' => + get_cat_display_name_from_id( + $page['cat'], + 'admin.php?page=album-' + ), + 'F_ACTION' => $admin_album_base_url.'-notification', + 'PWG_TOKEN' => get_pwg_token(), + ) + ); + +// +-----------------------------------------------------------------------+ +// | form construction | +// +-----------------------------------------------------------------------+ + +$query = ' +SELECT + id AS group_id + FROM '.GROUPS_TABLE.' +;'; +$all_group_ids = array_from_query($query, 'group_id'); + +if (count($all_group_ids) == 0) +{ + $template->assign('no_group_in_gallery', true); +} +else +{ + if ('private' == $category['status']) + { + $query = ' +SELECT + group_id + FROM '.GROUP_ACCESS_TABLE.' + WHERE cat_id = '.$category['id'].' +;'; + $group_ids = array_from_query($query, 'group_id'); + + if (count($group_ids) == 0) + { + $template->assign('permission_url', $admin_album_base_url.'-permissions'); + } + } + else + { + $group_ids = $all_group_ids; + } + + if (count($group_ids) > 0) + { + $query = ' +SELECT + id, + name + FROM '.GROUPS_TABLE.' + WHERE id IN ('.implode(',', $group_ids).') + ORDER BY name ASC +;'; + $template->assign( + 'group_mail_options', + simple_hash_from_query($query, 'id', 'name') + ); + } +} + +// +-----------------------------------------------------------------------+ +// | sending html code | +// +-----------------------------------------------------------------------+ + +$template->assign_var_from_handle('ADMIN_CONTENT', 'album_notification'); +?> diff --git a/admin/themes/default/template/album_notification.tpl b/admin/themes/default/template/album_notification.tpl new file mode 100644 index 000000000..32aa8e414 --- /dev/null +++ b/admin/themes/default/template/album_notification.tpl @@ -0,0 +1,40 @@ +
+

{$CATEGORIES_NAV} › {'Edit album'|@translate} {$TABSHEET_TITLE}

+
+ +
+ +
+ {'Send an information email to group members'|@translate} + +{if isset($group_mail_options)} + +

+ {'Group'|@translate} +
+ +

+ +

+ {'Complementary mail content'|@translate} +
+ +

+ +

+ +

+ +{elseif isset($no_group_in_gallery) and $no_group_in_gallery} +

{'There is no group in this gallery.'|@translate} {'Group management'|@translate}

+{else} +

+ {'No group is permitted to see this private album'|@translate}. + {'Permission management'|@translate} +

+{/if} +
+ +
diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index e1a518b8b..79f16b331 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -875,4 +875,6 @@ $lang['Select users...'] = 'Select users...'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u users have automatic permission because they belong to a granted group.'; $lang['include photos with lower privacy level'] = 'include photos with lower privacy level'; $lang['custom']='Custom'; +$lang['No group is permitted to see this private album'] = 'No group is permitted to see this private album'; +$lang['Permission management'] = 'Permission management'; ?> \ No newline at end of file diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 1634d6b3f..981fd4ec5 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -889,4 +889,6 @@ $lang['Permission granted for users'] = 'Permission accordée pour les utilisate $lang['Select users...'] = 'Sélectionnez les utilisateurs...'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u utilisateurs ont automatiquement la permission car ils appartiennent à un groupe autorisé.'; $lang['include photos with lower privacy level'] = 'inclure les photos d\'un niveau de confidentialité inférieur'; +$lang['No group is permitted to see this private album'] = 'Aucun groupe n\'est autorisé à voir cet album privé'; +$lang['Permission management'] = 'Gestion des permissions'; ?> \ No newline at end of file