aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2012-03-23 11:17:15 +0000
committerplegall <plg@piwigo.org>2012-03-23 11:17:15 +0000
commit2c61829ad73fb03a0562387c77bc71fd4e50eb8e (patch)
tree63b8b22f129f05894974f0c08270b16943b0fefe /admin
parent7ffddb84ee1a28d0409a56c67a39ce0392af517f (diff)
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
Diffstat (limited to '')
-rw-r--r--admin/album.php1
-rw-r--r--admin/album_notification.php202
-rw-r--r--admin/themes/default/template/album_notification.tpl40
3 files changed, 243 insertions, 0 deletions
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 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2012 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published by |
+// | the Free Software Foundation |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+ die ("Hacking attempt!");
+}
+
+include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
+include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok |
+// +-----------------------------------------------------------------------+
+
+check_status(ACCESS_ADMINISTRATOR);
+
+// +-----------------------------------------------------------------------+
+// | variable initialization |
+// +-----------------------------------------------------------------------+
+
+$page['cat'] = $category['id'];
+
+// +-----------------------------------------------------------------------+
+// | form submission |
+// +-----------------------------------------------------------------------+
+
+// info by email to an access granted group of category informations
+if (isset($_POST['submitEmail']) and !empty($_POST['group']))
+{
+ set_make_full_url();
+
+ /* TODO: if $category['representative_picture_id']
+ is empty find child representative_picture_id */
+ if (!empty($category['representative_picture_id']))
+ {
+ $query = '
+SELECT id, file, path, tn_ext
+ FROM '.IMAGES_TABLE.'
+ WHERE id = '.$category['representative_picture_id'].'
+;';
+
+ $result = pwg_query($query);
+ if (pwg_db_num_rows($result) > 0)
+ {
+ $element = pwg_db_fetch_assoc($result);
+
+ $img_url = '<a href="'.
+ make_picture_url(array(
+ 'image_id' => $element['id'],
+ 'image_file' => $element['file'],
+ 'category' => $category
+ ))
+ .'" class="thumblnk"><img src="'.get_thumbnail_url($element).'"></a>';
+ }
+ }
+
+ 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 @@
+<div class="titrePage">
+ <h2><span style="letter-spacing:0">{$CATEGORIES_NAV}</span> &#8250; {'Edit album'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<form action="{$F_ACTION}" method="post" id="categoryNotify">
+
+<fieldset id="emailCatInfo">
+ <legend>{'Send an information email to group members'|@translate}</legend>
+
+{if isset($group_mail_options)}
+
+ <p>
+ <strong>{'Group'|@translate}</strong>
+ <br>
+ <select name="group">
+ {html_options options=$group_mail_options}
+ </select>
+ </p>
+
+ <p>
+ <strong>{'Complementary mail content'|@translate}</strong>
+ <br>
+ <textarea cols="50" rows="5" name="mail_content" id="mail_content" class="description">{$MAIL_CONTENT}</textarea>
+ </p>
+
+ <p>
+ <input class="submit" type="submit" value="{'Send'|@translate}" name="submitEmail">
+ </p>
+
+{elseif isset($no_group_in_gallery) and $no_group_in_gallery}
+ <p>{'There is no group in this gallery.'|@translate} <a href="admin.php?page=group_list" class="externalLink">{'Group management'|@translate}</a></p>
+{else}
+ <p>
+ {'No group is permitted to see this private album'|@translate}.
+ <a href="{$permission_url}" class="externalLink">{'Permission management'|@translate}</a>
+ </p>
+{/if}
+</fieldset>
+
+</form>