Index: /trunk/admin/album.php
===================================================================
--- /trunk/admin/album.php	(revision 13667)
+++ /trunk/admin/album.php	(revision 13668)
@@ -66,4 +66,5 @@
 $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();
Index: /trunk/admin/album_notification.php
===================================================================
--- /trunk/admin/album_notification.php	(revision 13668)
+++ /trunk/admin/album_notification.php	(revision 13668)
@@ -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');
+?>
Index: /trunk/admin/themes/default/template/album_notification.tpl
===================================================================
--- /trunk/admin/themes/default/template/album_notification.tpl	(revision 13668)
+++ /trunk/admin/themes/default/template/album_notification.tpl	(revision 13668)
@@ -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>
Index: /trunk/language/en_UK/admin.lang.php
===================================================================
--- /trunk/language/en_UK/admin.lang.php	(revision 13667)
+++ /trunk/language/en_UK/admin.lang.php	(revision 13668)
@@ -876,3 +876,5 @@
 $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';
 ?>
Index: /trunk/language/fr_FR/admin.lang.php
===================================================================
--- /trunk/language/fr_FR/admin.lang.php	(revision 13667)
+++ /trunk/language/fr_FR/admin.lang.php	(revision 13668)
@@ -890,3 +890,5 @@
 $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';
 ?>
