Index: extensions/event_cats/admin/autolog_entries.inc.php
===================================================================
--- extensions/event_cats/admin/autolog_entries.inc.php	(revision 4402)
+++ extensions/event_cats/admin/autolog_entries.inc.php	(revision 4418)
@@ -38,5 +38,5 @@
 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
 
-global $template, $conf, $page, $ec_lists;
+global $template, $ec_conf, $page, $ec_lists;
 
 /****************************************************************************/
@@ -217,8 +217,10 @@
    'code_URL' => $code_URL,
    'log_OK'   => $log_OK,
+   'Comment'  => $ec_entry['comment'],
   );
 }
 
 $template->assign('ec_ap_ok',  defined('ADD_PAGES_TABLE'));
+$template->assign('comment_tooltip', (read_ec_conf('comment_display') == '0'));
 $template->assign('ec_ap_ok2', (count($ec_lists['add_pages']) > 0));
 $template->assign('code_list', $code_list);
Index: extensions/event_cats/admin/evntcats_admin.php
===================================================================
--- extensions/event_cats/admin/evntcats_admin.php	(revision 4402)
+++ extensions/event_cats/admin/evntcats_admin.php	(revision 4418)
@@ -141,4 +141,7 @@
    if (!change_ec_conf('unknown_code_ap_id', $_POST['ec_in_up_aps']))
     ec_end2(10);
+  if (isset($_POST['ec_comments']))
+   if (!change_ec_conf('comment_display', $_POST['ec_comments']))
+    ec_end2(11);
   $page['tab'] = 'config';
   $page['infos'][] = l10n('ec_config_saved');
Index: extensions/event_cats/admin/template/autolog_entries.tpl
===================================================================
--- extensions/event_cats/admin/template/autolog_entries.tpl	(revision 4402)
+++ extensions/event_cats/admin/template/autolog_entries.tpl	(revision 4418)
@@ -54,5 +54,12 @@
           <a id = "ec_url_id_{$code_line.id}" style = "display:none;" href = "{$code_line.code_URL}"></a>
         </td>
-        <td><label for = "selection-{$code_line.id}" id = "ec_table_code_{$code_line.id}">{$code_line.Code}</label></td>
+        <td>
+          <label for = "selection-{$code_line.id}" id = "ec_table_code_{$code_line.id}"
+             {if $comment_tooltip} title = "{$code_line.Comment}" {/if}
+          >
+            {$code_line.Code}
+            {if !$comment_tooltip and $code_line.Comment != ''}<br />{$code_line.Comment}{/if}
+          </label>
+        </td>
         <td><label for = "selection-{$code_line.id}" id = "ec_table_usr_{$code_line.id}">{$code_line.Username}</label></td>
         <td><label for = "selection-{$code_line.id}">{$code_line.Action}</label></td>
Index: extensions/event_cats/admin/template/autolog_new.js
===================================================================
--- extensions/event_cats/admin/template/autolog_new.js	(revision 4402)
+++ extensions/event_cats/admin/template/autolog_new.js	(revision 4418)
@@ -16,4 +16,5 @@
 var ec_selected_img             = '';
 var ec_new_code_text            = '';
+var ec_new_comment_text         = '';
 var ec_new_user_text            = '';
 var ec_new_psd_text             = '';
@@ -44,4 +45,5 @@
     ec_lists['arg2']            = new Array();
     ec_lists['forced']          = new Array();
+    ec_lists['comment']         = new Array();
 var d                           = document;
 
@@ -71,4 +73,6 @@
   if (ec_id == '-1') de('ec_in_up_entry_list_id').selectedIndex = '-1';
   else {
+    ec_new_comment_text = ec_lists['comment'][ec_id];
+    de('ec_in_up_comment_id').value = ec_new_comment_text;
     de('ec_in_up_entry_list_id').value = ec_id;
     de('ec_act2_id').value = ec_id;
@@ -142,4 +146,5 @@
           de('ec_in_up_code_list_id').selectedIndex = '-1';
           de('ec_in_up_code_id').value              = ec_new_code_text;
+          de('ec_in_up_comment_id').value           = ec_new_comment_text;
           de('ec_in_up_grp_txt_id').value           = ec_new_grp_text;
           de('ec_in_up_newgroup_id').checked        =
@@ -148,4 +153,6 @@
         break;
         case 'ec_sel_code_old':
+          ec_new_comment_text = ec_lists['comment'][ec_selected_old_code];
+          de('ec_in_up_comment_id').value    = ec_new_comment_text;
           de('ec_act1_id').value             = 'duplicate_entry_submit';
           de('ec_act2_id').value             = ec_selected_old_code;
@@ -674,4 +681,5 @@
     ec_lists['arg2'][t[0]] = t[5];
     ec_lists['forced'][t[0]] = t[6];
+    ec_lists['comment'][t[0]] = t[7];
   }
 }
@@ -684,4 +692,5 @@
   ec_selected_img                                 = '';
   ec_new_code_text                                = '';
+  ec_new_comment_text                             = '';
   ec_new_user_text                                = '';
   ec_new_psd_text                                 = '';
@@ -697,4 +706,5 @@
   de('ec_act1_id').value                          = ec_default_action;
   de('ec_act2_id').value                          = '';
+  de('ec_in_up_comment_id').value                 = '';
   de('ec_in_up_usr_txt_id').value                 = '';
   de('ec_in_up_psd_txt_id').value                 = '';
Index: extensions/event_cats/admin/template/autolog_new.tpl
===================================================================
--- extensions/event_cats/admin/template/autolog_new.tpl	(revision 4402)
+++ extensions/event_cats/admin/template/autolog_new.tpl	(revision 4418)
@@ -84,4 +84,8 @@
              id = "ec_in_up_code_id" onblur = "ec_check_code_text(this.value);"
             />
+            &nbsp;&#151;&nbsp;
+            <input type = "text" name = "ec_in_up_comment" maxlength = "100" size = "50" id = "ec_in_up_comment_id"
+              onchange = "ec_new_comment_text = this.value;" title = "{'Comment'|@translate}"
+            />
           </li>
         </li>
@@ -95,7 +99,12 @@
           <select name = "ec_in_up_code_list" id = "ec_in_up_code_list_id" onchange = "ec_change_code_list(this.value);" {$ec_hidden_when_no_code} >
             {foreach from=$ec_lists.duplicable_codes.codes key=ec_key item=ec_val}
-              <option value = "{$ec_val.id}">{$ec_key}</option>
+              <option value = "{$ec_val.id}">
+                {$ec_key}
+                {if $ec_val.comment != ''}
+                  &nbsp;&#151;&nbsp;{$ec_val.comment}
+                {/if}
+              </option>
             {/foreach}
-          </select><br />
+          </select>
         </li>
         
@@ -107,7 +116,16 @@
           <select name = "ec_in_up_entry_list" id = "ec_in_up_entry_list_id" onchange = "ec_mark_entry(this.value);">
             {foreach from=$ec_lists.ec_table item=ec_val}
-              <option value = "{$ec_val.id}">{$ec_val.id} : {$ec_val.code}</option>
+              <option value = "{$ec_val.id}">
+                {$ec_val.id} : {$ec_val.code}
+                {if $ec_val.comment != ''}
+                  &nbsp;&#151;&nbsp;{$ec_val.comment}
+                {/if}
+              </option>
             {/foreach}
           </select>
+          &nbsp;&#151;&nbsp;
+          <input type = "text" name = "ec_in_up_comment" maxlength = "100" size = "50" id = "ec_in_up_comment_id"
+            onchange = "ec_new_comment_text = this.value;" title = "{'Comment'|@translate}"
+          />
         </li>
         
@@ -144,5 +162,5 @@
            id = "ec_submit_gen_user_id" onclick = "ec_gen_user();"
           />
-        </label><br />
+        </label>
         <li style = "padding-left: 30px;">
           <label class = "ec_block" onclick = "return ec_mark_user('ec_sel_user_new');">{'New username'|@translate}<br />
@@ -233,5 +251,5 @@
          size = "10" onblur = "ec_selected_img = this.value; ec_check_img_text();" onfocus = "return ec_mark_action('ec_input_action_img');"
         /><br />
-        <span id = "ec_in_up_imgs_warn"></span>
+        <span id = "ec_in_up_imgs_warn">&nbsp;</span><br />
       </label>
       
@@ -289,5 +307,6 @@
   {/if}
   {foreach from=$ec_lists.ec_table item=ec_val name=listloop}
-    ec_lists_temp[{$smarty.foreach.listloop.index}] = "{$ec_val.id};{$ec_val.code};{$ec_val.user_id};{$ec_val.action};{$ec_val.arg1};{$ec_val.arg2};{$ec_val.forced}";
+    ec_lists_temp[{$smarty.foreach.listloop.index}] =
+     "{$ec_val.id};{$ec_val.code};{$ec_val.user_id};{$ec_val.action};{$ec_val.arg1};{$ec_val.arg2};{$ec_val.forced};{$ec_val.comment}";
   {/foreach}
   ec_build_ec_lists();
Index: extensions/event_cats/admin/template/config.tpl
===================================================================
--- extensions/event_cats/admin/template/config.tpl	(revision 4402)
+++ extensions/event_cats/admin/template/config.tpl	(revision 4418)
@@ -113,4 +113,27 @@
   </table>
   
+  {* <!-- Other --> *}
+  <h4>{'Other'|@translate}</h4>
+  <table>
+    <tr>
+      <td style = "text-align:right; font-weight:bold;">
+        {'Comments display'|@translate}&nbsp;&nbsp;
+      </td>
+      <td>
+        <label for = "ec_comments_0_id">
+          <input type = "radio" name = "ec_comments" value = "0" id = "ec_comments_0_id"
+            {if $ec_conf.comment_display == '0'} checked = "checked" {/if}
+          />
+          {'As tooltip'|@translate}
+        </label><br />
+        <label for = "ec_comments_1_id">
+          <input type = "radio" name = "ec_comments" value = "1" id = "ec_comments_1_id"
+            {if $ec_conf.comment_display == '1'} checked = "checked" {/if}
+          />
+          {'In a row'|@translate}
+        </label>
+    <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
+  </table>
+  
   <div style = "text-align:center;">
     <input class = "submit" type = "submit" name = "ec_conf_submit" value = "{'Submit'|@translate}" />
Index: extensions/event_cats/include/ec_conf.inc.php
===================================================================
--- extensions/event_cats/include/ec_conf.inc.php	(revision 4402)
+++ extensions/event_cats/include/ec_conf.inc.php	(revision 4418)
@@ -79,4 +79,7 @@
   'unknown_code_ap_id'    // the id of the Additional Page which must be used
     => '0',               // in case of usage of an unknow code, several vals.
+                          // 
+  'comment_display'       // the way the comment is displayed in "entries"
+    => '0',               // tab : 0, as tooltip ; 1, on a line under code
 );
 
@@ -89,5 +92,6 @@
                                 '16', '20', '24', '25', '30', '32'),
   'unknown_code'       => array('0', '1', '2'),
-  'unknown_code_ap_id' => array()
+  'unknown_code_ap_id' => array(),
+  'comment_display'    => array('0', '1')
 );
 
Index: extensions/event_cats/include/evntcats_admin_funcs.inc.php
===================================================================
--- extensions/event_cats/include/evntcats_admin_funcs.inc.php	(revision 4402)
+++ extensions/event_cats/include/evntcats_admin_funcs.inc.php	(revision 4418)
@@ -97,4 +97,14 @@
   // This function assumes that the validity of the different indexes of
   // $_POST it uses, have already been checked.
+  
+  // Check if a category id has been posted, and if yes if this category is
+  // private.
+  /* $cat_assoc_needed = (
+  ); */
+  
+  // Check if an add. p. id has been posted, and if yes if this add. p. is
+  // private.
+  /* $ap_assoc_needed = (
+  ); */
   
   // User creation, as generic
@@ -161,4 +171,76 @@
       $_POST['login'], $_POST['groupname']
     );
+    
+    // If a category id has been posted, the newly created group must be
+    // allowed to navigate in this category
+    
+    /*
+    
+    if (isset($_POST['ec_in_up_cat'])) {
+      if (mysql_num_rows(pwg_query("
+        SELECT `id`
+        FROM `".CATEGORIES_TABLE."`
+        WHERE `id` = '".$_POST['ec_in_up_cat']."';
+      ")) == 0) return ec_end1('ec_in_up_cat', 'Category doesn\'t exist : ');
+      else {
+    
+  $query = '
+SELECT id
+  FROM '.CATEGORIES_TABLE.'
+  WHERE id IN ('.implode(',', get_uppercat_ids(array($page['cat']))).')
+  AND status = \'private\'
+;';
+  $private_uppercats = array_from_query($query, 'id');
+
+  // We must not reinsert already existing lines in group_access table
+  $granteds = array();
+  foreach ($private_uppercats as $cat_id)
+  {
+    $granteds[$cat_id] = array();
+  }
+  
+  $query = '
+SELECT group_id, cat_id
+  FROM '.GROUP_ACCESS_TABLE.'
+  WHERE cat_id IN ('.implode(',', $private_uppercats).')
+    AND group_id IN ('.implode(',', $_POST['grant_groups']).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_array($result))
+  {
+    array_push($granteds[$row['cat_id']], $row['group_id']);
+  }
+
+  $inserts = array();
+  
+  foreach ($private_uppercats as $cat_id)
+  {
+    $group_ids = array_diff($_POST['grant_groups'], $granteds[$cat_id]);
+    foreach ($group_ids as $group_id)
+    {
+      array_push($inserts, array('group_id' => $group_id,
+                                 'cat_id' => $cat_id));
+    }
+  }
+
+  mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $inserts);
+    
+    
+      }
+    }
+    
+    */
+    
+    // If an add. p. id has been posted, the newly created group must be
+    // allowed to navigate in this additional page
+  }
+  else {
+    // If a category id has been posted, the newly created user must be
+    // allowed to navigate in this category
+    
+    // If an add. p. id has been posted, the newly created user must be
+    // allowed to navigate in this additional page => not possible to
+    // allow individually => must give a warning message
+    
   }
   return $ec_user_id;
@@ -191,4 +273,6 @@
       $ec_lists['duplicable_codes']['codes'][$ec_entry['code']]['id'] =
        $ec_entry['id'];
+      $ec_lists['duplicable_codes']['codes'][$ec_entry['code']]['comment'] =
+       $ec_entry['comment'];
       $ec_lists['duplicable_codes']['codes'][$ec_entry['code']]['user_id'] =
        $ec_entry['user_id'];
@@ -198,4 +282,6 @@
     $ec_lists['duplicable_codes']['ids'][$ec_id] =
      $ec_lists['duplicable_codes']['codes'][$ec_code]['id'];
+    $ec_lists['duplicable_codes']['comment'][$ec_id] =
+     $ec_lists['duplicable_codes']['codes'][$ec_code]['comment'];
   }
   
@@ -235,7 +321,8 @@
   $action = 'ec_ok';
   $del_other = false;
+  $comment = '';
   switch ($_POST['ec_act1']) {
     
-    // This "switch" command is a little bit tricky... it has been a pain to
+    // This "switch" statement is a little bit tricky... it has been a pain to
     // debug, and I wish to nobody to have to modify it :-\ !
     // Its principle is that it manages checks for four occurrences of
@@ -321,4 +408,5 @@
       $arg1       = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['arg1'];
       $arg2       = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['arg2'];
+      $comment    = $ec_lists['ec_table'][$_POST['ec_entry_sel']]['comment'];
       if (empty($arg1)) $arg1 = 'NULL';
       if (empty($arg2)) $arg2 = 'NULL';
@@ -385,4 +473,8 @@
      return ec_end1('ec_in_up_forced', 'Bad argument : ');
     
+    // Preparation of $comment
+    $comment = (isset($_POST['ec_in_up_comment'])) ?
+     $_POST['ec_in_up_comment'] : $comment;
+    
     // User and eventually group creation, if needed
     if ($_POST['ec_act1'] != 'duplicate_entry_submit')
@@ -405,4 +497,5 @@
       AND `arg2`       ".$arg2p."
       AND `forced`  = '".$forced."'
+      AND `comment` = '".$comment."'
   "))) !== false) { // print("<pre>$arg1 $arg2<br>$q</pre>");
     $page['errors'][] = sprintf(l10n('ec_entry_already_exists'), $t1[0]);
@@ -440,4 +533,5 @@
     'arg2p' => $arg2p,
     'forced' => $forced,
+    'comment' => $comment,
   );
   
@@ -451,5 +545,5 @@
           `user_id`,
           `action`,
-          `arg1`, `arg2`, `forced`
+          `arg1`, `arg2`, `forced`, `comment`
         )
         VALUES (
@@ -457,5 +551,5 @@
            ".$ec_user_id.",
           '".$action."',
-          ".$arg1.", ".$arg2.", '".$forced."'
+          ".$arg1.", ".$arg2.", '".$forced."', '".$comment."'
         );
       ") === false
@@ -487,5 +581,6 @@
           `arg1`    =  ".$arg1.",
           `arg2`    =  ".$arg2.",
-          `forced`  = '".$forced."'
+          `forced`  = '".$forced."',
+          `comment` = '".$comment."'
         WHERE `id`  = '".$_POST['ec_entry_sel']."'
       ") === false
Index: extensions/event_cats/language/fr_FR/description.txt
===================================================================
--- extensions/event_cats/language/fr_FR/description.txt	(revision 4418)
+++ extensions/event_cats/language/fr_FR/description.txt	(revision 4418)
@@ -0,0 +1,1 @@
+Permet l'identification dans une galerie sans donner ni compte ni mot de passe, et permet la création d'un compte ayant immédiatement accès à du contenu privé.
Index: extensions/event_cats/language/fr_FR/help.html
===================================================================
--- extensions/event_cats/language/fr_FR/help.html	(revision 4402)
+++ extensions/event_cats/language/fr_FR/help.html	(revision 4418)
@@ -43,7 +43,7 @@
     &nbsp;&nbsp;&nbsp;&nbsp;Cet onglet permet de créer les entrées dans la base de données. Une entrée associe un code à un utilisateur et à une page affichée. Il est possible qu'un même code soit utilisé plusieurs fois, dans le cas où il serait pratique de donner accès à des pages différentes, à un même compte. Mais un même code ne peut bien sûr être associé qu'à un seul compte.<br />
     <br />
-    &nbsp;&nbsp;&nbsp;&nbsp;Comme la page à afficher est mentionnée dans l'URL (avec les paramètres <span style = "font-weight:bold;">&#38;cat=<span style = "font-style:italic;">&#139;identifiant catégorie&#155;</span></span>, <span style = "font-weight:bold;">&#38;img=<span style = "font-style:italic;">&#139;identifiant image&#155;</span></span>, <span style = "font-weight:bold;">&#38;ap=<span style = "font-style:italic;">&#139;identifiant add. p.&#155;</span></span>, voir ci-dessus), l'utilisateur a la possibilité de changer la page affichée en modifiant l'URL. Si le compte associé au code n'est pas autorisé à afficher cette page, Piwigo ne l'affichera pas&nbsp;&#151; pas de danger. Mais pour éviter l'affichage du message "Vous n'êtes pas autorisé sur la page demandée", vous pouvez demander à ce que la page affichée soit "forcée", c'est-à-dire que Event Cats redirige l'utilisateur vers la page prévue par vous lors de la création de l'entrée, quels que soient les éventuels paramètres <span style = "font-weight:bold;">&#38;cat</span>, <span style = "font-weight:bold;">&#38;img</span>, et/ou <span style = "font-weight:bold;">&#38;ap</span> présent(s) dans l'URL utilisé par les visiteurs.<br />
+    &nbsp;&nbsp;&nbsp;&nbsp;Lors de la création d'une entrée, il est possible de créer aussi le compte utilisé dans cette entrée. Les comptes créés par Event Cats sont des comptes génériques, c'est-à-dire prévus pour être utilisés par plusieurs visiteurs différents. Le nom du compte peut être généré par Event Cats, si une page à afficher a été sélectionnée, car c'est l'intitulé de la page affichée qui est utilisée pour créer le nom du compte. Event Cats peut aussi créer un groupe, qui sera associé à la catégorie sélectionnée le cas échéant, et Comme le code aussi peut être généré par Event Cats, il est possible de créer une entrée dans Event Cats simplement en sélectionnant une page à afficher puis en appuyant sur "Tout automatique".<br />
     <br />
-    &nbsp;&nbsp;&nbsp;&nbsp;Lors de la création d'une entrée, il est possible de créer aussi le compte utilisé dans cette entrée. Les comptes créés par Event Cats sont des comptes génériques, c'est-à-dire prévus pour être utilisés par plusieurs visiteurs différents. Le nom du compte peut être généré par Event Cats, si une page à afficher a été sélectionnée, car c'est l'intitulé de la page affichée qui est utilisée pour créer le nom du compte. Comme le code aussi peut être généré par Event Cats, il est possible de créer une entrée dans Event Cats simplement en sélectionnant une page à afficher puis en appuyant sur "Tout automatique (sélectionnez d'abord une page à afficher)".
+    &nbsp;&nbsp;&nbsp;&nbsp;Comme la page à afficher est mentionnée dans l'URL (avec les paramètres <span style = "font-weight:bold;">&#38;cat=<span style = "font-style:italic;">&#139;identifiant catégorie&#155;</span></span>, <span style = "font-weight:bold;">&#38;img=<span style = "font-style:italic;">&#139;identifiant image&#155;</span></span>, <span style = "font-weight:bold;">&#38;ap=<span style = "font-style:italic;">&#139;identifiant add. p.&#155;</span></span>, voir ci-dessus), l'utilisateur a la possibilité de changer la page affichée en modifiant l'URL. Si le compte associé au code n'est pas autorisé à afficher cette page, Piwigo ne l'affichera pas&nbsp;&#151; pas de danger. Mais pour éviter l'affichage du message "Vous n'êtes pas autorisé sur la page demandée", vous pouvez demander à ce que la page affichée soit "forcée", c'est-à-dire que Event Cats redirige l'utilisateur vers la page prévue par vous lors de la création de l'entrée, quels que soient les éventuels paramètres <span style = "font-weight:bold;">&#38;cat</span>, <span style = "font-weight:bold;">&#38;img</span>, et/ou <span style = "font-weight:bold;">&#38;ap</span> présent(s) dans l'URL utilisé par les visiteurs.
   </p>
   
@@ -54,24 +54,24 @@
     &nbsp;&nbsp;&nbsp;&nbsp;Vous disposez des outils suivants dans cette page :
     <ul>
-      <li>
-        <img src = "plugins/event_cats/icon/disable.png" alt = "Icône rendre l'entrée périmée" />&nbsp;<span style = "font-weight:bold;">Rendre l'entrée périmée</span>&nbsp;: cet outil permet de faire en sorte que le code de l'entrée sélectionnée soit reconnu par Event Cats, mais que le visiteur ne soit <span style = "font-weight:bold;">pas</span> identifié.<br />Lorsque vous cliquez sur cet outil, si le plugin Additional Pages est utilisable, c'est l'onglet <a href = "#autolog_modif">Modification autolog</a> qui est affiché&nbsp;; sinon, l'entrée est directement modifiée avec comme page affichée "Accès refusé" (après confirmation de votre part). Cela vous permet de ne laisser un code actif qu'un certain temps, après quoi les "retardataires" sont redirigés vers la page que vous aurez choisie. En effet, l'identification automatique peut permettre à des personnes non autorisées de visualiser un contenu privé, aussi peut-il être pratique de ne prendre ce risque que pendant un temps limité. Un excellent outil pour prévenir que vous prévoyez de rendre périmée une identification automatique, est le plugin <a href = "http://fr.piwigo.org/ext/extension_view.php?eid=190" title = "Naviguer vers le plugin PWG Suffs" onClick = "window.open(this.href);return false;">PWG Suffs</a>.
+      <li style = "list-style-image:url(plugins/event_cats/icon/disable.png);">
+        <span style = "font-weight:bold;">Rendre l'entrée périmée</span>&nbsp;: cet outil permet de faire en sorte que le code de l'entrée sélectionnée soit reconnu par Event Cats, mais que le visiteur ne soit <span style = "font-weight:bold;">pas</span> identifié.<br />Lorsque vous cliquez sur cet outil, si le plugin Additional Pages est utilisable, c'est l'onglet <a href = "#autolog_modif">Modification autolog</a> qui est affiché&nbsp;; sinon, l'entrée est directement modifiée avec comme page affichée "Accès refusé" (après confirmation de votre part). Cela vous permet de ne laisser un code actif qu'un certain temps, après quoi les "retardataires" sont redirigés vers la page que vous aurez choisie. En effet, l'identification automatique peut permettre à des personnes non autorisées de visualiser un contenu privé, aussi peut-il être pratique de ne prendre ce risque que pendant un temps limité. Un excellent outil pour prévenir que vous prévoyez de rendre périmée une identification automatique, est le plugin <a href = "http://fr.piwigo.org/ext/extension_view.php?eid=190" title = "Naviguer vers le plugin PWG Suffs" onClick = "window.open(this.href);return false;">PWG Suffs</a>.
       </li>
-      <li>
-        <img src = "plugins/event_cats/icon/forced.png" alt = "Icône ne plus forcer" />&nbsp;<span style = "font-weight:bold;">Ne plus rendre l'entrée forcée</span>&nbsp;: cet outil revient à décocher la case "Forcé" dans l'onglet <a href = "#autolog_modif">Modification autolog</a>. Vous aurez ainsi la possibilité de créer d'autres entrées avec le même code&nbsp;; et les utilisateurs de cet URL pourront tenter de le modifier (voir <a href = "#autolog_new">Création autolog</a> ci-dessus).
+      <li style = "list-style-image:url(plugins/event_cats/icon/forced.png);">
+        <span style = "font-weight:bold;">Ne plus rendre l'entrée forcée</span>&nbsp;: cet outil revient à décocher la case "Forcé" dans l'onglet <a href = "#autolog_modif">Modification autolog</a>. Vous aurez ainsi la possibilité de créer d'autres entrées avec le même code&nbsp;; et les utilisateurs de cet URL pourront tenter de le modifier (voir <a href = "#autolog_new">Création autolog</a> ci-dessus).
       </li>
-      <li>
-        <img src = "plugins/event_cats/icon/nforced.png" alt = "Icône forcer" />&nbsp;<span style = "font-weight:bold;">Forcer l'entrée</span>&nbsp;: cet outil permet de forcer la page affichée pour une entrée (voir <a href = "#autolog_new">Création autolog</a> ci-dessus).
+      <li style = "list-style-image:url(plugins/event_cats/icon/nforced.png);">
+        <span style = "font-weight:bold;">Forcer l'entrée</span>&nbsp;: cet outil permet de forcer la page affichée pour une entrée (voir <a href = "#autolog_new">Création autolog</a> ci-dessus).
       </li>
-      <li>
-        <img src = "plugins/event_cats/icon/duplicate.png" alt = "Icône recopieer une entrée" />&nbsp;<span style = "font-weight:bold;">Recopier l'entrée</span>&nbsp;: cet outil permet d'afficher l'onglet <a href = "#autolog_new">Création autolog</a> en y ayant sélectionné directement l'entrée à recopier, afin de créer une nouvelle entrée utilisant le même code (et donc le même compte identifié), mais en changeant la page affichée.
+      <li style = "list-style-image:url(plugins/event_cats/icon/duplicate.png);">
+        <span style = "font-weight:bold;">Recopier l'entrée</span>&nbsp;: cet outil permet d'afficher l'onglet <a href = "#autolog_new">Création autolog</a> en y ayant sélectionné directement l'entrée à recopier, afin de créer une nouvelle entrée utilisant le même code (et donc le même compte identifié), mais en changeant la page affichée.
       </li>
-      <li>
-        <img src = "plugins/event_cats/icon/url2.png" alt = "Icône tester" />&nbsp;<span style = "font-weight:bold;">Tester l'URL</span>&nbsp;: cet outil permet de vérifier que l'URL fonctionne bien comme prévu. Attention&nbsp;: en cliquant sur ce lien, vous terminez évidemment votre session d'administration sur votre site.
+      <li style = "list-style-image:url(plugins/event_cats/icon/url2.png);">
+        <span style = "font-weight:bold;">Tester l'URL</span>&nbsp;: cet outil permet de vérifier que l'URL fonctionne bien comme prévu. Attention&nbsp;: en cliquant sur ce lien, vous terminez évidemment votre session d'administration sur votre site.
       </li>
-      <li>
-        <img src = "plugins/event_cats/icon/delete.png" alt = "Icône supprimer" />&nbsp;<span style = "font-weight:bold;">Supprimer l'entrée</span>&nbsp;: cet outil permet de supprimer l'entrée.<br />A savoir que si un visiteur utilise un URL comportant un code "autolog" qui n'existe pas dans la base de données (donc par exemple un code que vous auriez fourni à un moment, puis supprimé), vous pouvez choisir dans l'onglet <a href = "#config">Configuration générale</a> vers quelle page il sera redirigé.
+      <li style = "list-style-image:url(plugins/event_cats/icon/delete.png);">
+        <span style = "font-weight:bold;">Supprimer l'entrée</span>&nbsp;: cet outil permet de supprimer l'entrée.<br />A savoir que si un visiteur utilise un URL comportant un code "autolog" qui n'existe pas dans la base de données (donc par exemple un code que vous auriez fourni à un moment, puis supprimé), vous pouvez choisir dans l'onglet <a href = "#config">Configuration générale</a> vers quelle page il sera redirigé.
       </li>
-      <li>
-        <img src = "plugins/event_cats/icon/modify.png" alt = "Icône modifier" />&nbsp;<span style = "font-weight:bold;">Modifier l'entrée</span>&nbsp;: cet outil permet d'afficher l'onglet <a href = "#autolog_modif">Modification autolog</a> avec l'entrée directement sélectionnée.
+      <li style = "list-style-image:url(plugins/event_cats/icon/modify.png);">
+        <span style = "font-weight:bold;">Modifier l'entrée</span>&nbsp;: cet outil permet d'afficher l'onglet <a href = "#autolog_modif">Modification autolog</a> avec l'entrée directement sélectionnée.
       </li>
     </ul>
@@ -79,5 +79,5 @@
   <h4><a name = "autolog_modif">Modification autolog</a></h4>
   <p>
-    &nbsp;&nbsp;&nbsp;&nbsp;Cet onglet
+    &nbsp;&nbsp;&nbsp;&nbsp;Cet onglet permet de modifier une entrée (si si...). Contrairement au moment de la création d'une entrée, vous pouvez rendre là l'entrée "périmée", en choisissant "Utilisateur identifié"&nbsp;: "Aucun" ou "Page affichée"&nbsp;: "Accès refusé". Si "Aucun" est sélectionné pour "Utilisateur identifié", et que le plugin Additional Pages est utilisable, il est possible de choisir une page Additional Pages comme page affichée.
   </p>
   <h4><a name = "duplication">Duplication</a></h4>
Index: extensions/event_cats/language/fr_FR/plugin.lang.php
===================================================================
--- extensions/event_cats/language/fr_FR/plugin.lang.php	(revision 4402)
+++ extensions/event_cats/language/fr_FR/plugin.lang.php	(revision 4418)
@@ -52,9 +52,10 @@
 $lang['Full auto']                 = 'Tout automatique (sélectionnez d\'abord une page à afficher)';
 $lang['New code']                  = 'Nouveau code :';
-$lang['Auto code button']          = 'Générer un code automatiquement';
+$lang['Auto code button']          = 'Générer un code';
 $lang['Auto code mid']             = 'de';
 $lang['Auto code min']             = ' (min)';
 $lang['Auto code max']             = ' (max)';
 $lang['Auto code end']             = 'caractères';
+$lang['Comment']                   = 'Commentaire';
 $lang['Existing code']             = 'Code existant :';
 $lang['Identified user']           = 'Utilisateur identifié';
@@ -65,5 +66,5 @@
 $lang['Confirm password']          = 'Confirmez :';
 $lang['New group']                 = 'Nouveau groupe';
-$lang['Generate username']         = 'Générer un nom d\'utilisateur d\'après l\'action choisie';
+$lang['Generate username']         = 'Générer un nom d\'utilisateur (sélectionnez d\'abord une page à afficher)';
 $lang['Existing user']             = 'Utilisateur existant :';
 $lang['Displayed page']            = 'Page affichée';
@@ -100,4 +101,8 @@
 $lang['Unknown code']              = 'Code inconnu';
 $lang['Page for unknown code']     = 'Page affichée pour un code "autolog" inconnu';
+$lang['Other']                     = 'Autres';
+$lang['Comments display']          = 'Affichage des commentaires';
+$lang['As tooltip']                = 'En info-bulle';
+$lang['In a row']                  = 'Dans une ligne';
 
 // JS messages
Index: extensions/event_cats/main.inc.php
===================================================================
--- extensions/event_cats/main.inc.php	(revision 4402)
+++ extensions/event_cats/main.inc.php	(revision 4418)
@@ -3,9 +3,9 @@
 /*
 Plugin Name: Event Cats
-Version: 1.0.0
+Version: auto
 Description: A single URL can be enough to be identified, and a user can duplicate his account to create a new one getting immediately the same properties. / On peut être identifié grâce à un simple URL, et on peut dupliquer son compte pour créer un nouveau compte ayant immédiatement les mêmes propriétés.
 Plugin URI: http://piwigo.org/svn/extensions/event_cats
-Author: P@t, LucMorizur
-Author URI: http://www.gauchon.fr, http://lucmorizur.free.fr
+Author: LucMorizur
+Author URI: http://lucmorizur.free.fr
 */
 
Index: extensions/event_cats/maintain.inc.php
===================================================================
--- extensions/event_cats/maintain.inc.php	(revision 4402)
+++ extensions/event_cats/maintain.inc.php	(revision 4418)
@@ -60,9 +60,11 @@
       `arg2`    SMALLINT(5)             UNSIGNED          DEFAULT NULL ,
       `forced`  ENUM('true', 'false')            NOT NULL DEFAULT 'false' ,
+      `comment` VARCHAR(100)                              DEFAULT NULL ,
       PRIMARY KEY (`id`),
       KEY `code` (`code`),
       KEY `user_id` (`user_id`)
     )
-    DEFAULT CHARACTER SET utf8;
+    DEFAULT CHARACTER SET utf8
+    TYPE=MyISAM;
   ") !== false);
 
