Index: /extensions/NBC_UserAdvManager/tags/2.13.3/ConfirmMail.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/ConfirmMail.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/ConfirmMail.php	(revision 4552)
@@ -0,0 +1,77 @@
+<?php
+//----------------------------------------------------------- include
+define('PHPWG_ROOT_PATH','./../../');
+include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
+include_once (NBC_UserAdvManager_PATH.'include/constants.php');
+include_once (NBC_UserAdvManager_PATH.'include/functions_UserAdvManager.inc.php');
+
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok                      |
+// +-----------------------------------------------------------------------+
+//check_status(ACCESS_NONE);
+load_language('plugin.lang', NBC_UserAdvManager_PATH);
+
+if (isset($_GET['key']))
+{
+
+  if (VerifyConfirmMail($_GET['key']))
+    $template->assign(
+			array(
+				'CONFIRM_MAIL_MESSAGE' => l10n('confirm_mail_ok'),
+			)
+		);
+  else  
+    $template->assign(
+			array(
+				'CONFIRM_MAIL_MESSAGE' => l10n('confirm_mail_bad'),
+			)
+		);        
+//    redirect(make_index_url());
+}
+
+/**
+ * set in ./language/en_UK.iso-8859-1/local.lang.php (maybe to create)
+ * for example for clear theme:
+  $lang['Theme: clear'] = 'This is the clear theme based on yoga template. '.
+  ' A standard template/theme of PhpWebgallery.';
+ *
+ * Don't forget php tags !!!
+ *
+ * Another way is to code it thru the theme itself in ./themeconf.inc.php
+ */
+
+$title= l10n('confirm_mail_page_title');
+$page['body_id'] = 'theAboutPage';
+include(PHPWG_ROOT_PATH.'include/page_header.php');
+
+@include(PHPWG_ROOT_PATH.'template/'.$user['template'].
+  '/theme/'.$user['theme'].'/themeconf.inc.php');
+
+/* $template->set_filenames(array('confirm_mail' => realpath(NBC_UserAdvManager_PATH . 'ConfirmMail.tpl')));*/
+$template->set_filenames(
+  array(
+  	'confirm_mail'=>NBC_UserAdvManager_PATH.'ConfirmMail.tpl',
+	)
+);
+if ( isset($lang['Theme: '.$user['theme']]) )
+{
+  $template->assign(
+  	'THEME_ABOUT',l10n('Theme: '.$user['theme'])
+  );
+}
+
+if ( isset($conf['gallery_url']) )
+	{
+	$template->assign(
+		array(
+    	'GALLERY_URL' =>
+      		isset($page['gallery_url']) ?
+          		$page['gallery_url'] : $conf['gallery_url'],
+		)
+	);
+}
+
+
+$template->pparse('confirm_mail');
+include(PHPWG_ROOT_PATH.'include/page_tail.php');
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/ConfirmMail.tpl
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/ConfirmMail.tpl	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/ConfirmMail.tpl	(revision 4552)
@@ -0,0 +1,22 @@
+{* $Id: ConfirmMail.tpl $ *}
+<div id="content" class="content">
+  <div class="titrePage">
+    <ul class="categoryActions">
+      <li>
+      {if isset($GALLERY_URL) }
+        <a href="{$GALLERY_URL}" title="{'return to homepage'|@translate}">
+          <img src="{$ROOT_URL}{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}">
+        </a>
+      {else}
+        <a href="{$U_HOME}" title="{'return to homepage'|@translate}">
+          <img src="{$ROOT_URL}{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}">
+        </a>
+      {/if}
+      </li>
+    </ul>
+    <h2>{'title_confirm_mail'|@translate}</h2>
+  </div>
+  <ul>
+  {$CONFIRM_MAIL_MESSAGE}
+  </ul>
+</div>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/UserAdvManager_admin.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/UserAdvManager_admin.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/UserAdvManager_admin.php	(revision 4552)
@@ -0,0 +1,1562 @@
+<?php
+
+global $user, $lang, $conf, $errors;
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok                      |
+// +-----------------------------------------------------------------------+
+check_status(ACCESS_ADMINISTRATOR);
+
+//ini_set('error_reporting', E_ALL);
+//ini_set('display_errors', true);
+
+include_once (PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
+include_once (PHPWG_ROOT_PATH.'/include/constants.php');
+$my_base_url = get_admin_plugin_menu_link(__FILE__);
+
+load_language('plugin.lang', NBC_UserAdvManager_PATH);
+
+$page['global'] = array();
+$error = array();
+$UserAdvManager_Password_Test_Score = 0;
+$pattern = '/;/';
+$replacement = '.';
+
+$UserAdvManager_MailInfo_Error_Txt = false;
+$UserAdvManager_ConfirmMail_Error_Txt = false;
+$UserAdvManager_Reminder_Error_Txt = false;
+$UserAdvManager_ConfirmMail_Error_Txt1 = false;
+$UserAdvManager_ConfirmMail_Error_Txt2 = false;
+$UserAdvManager_Exclusionlist_Error = false;
+
+// +-----------------------------------------------------------------------+
+// |                            Tabssheet                                  |
+// +-----------------------------------------------------------------------+
+if (!isset($_GET['tab']))
+	$page['tab'] = 'global';
+else
+  $page['tab'] = $_GET['tab'];
+
+//$conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+$tabsheet = new tabsheet();
+$tabsheet->add('global',
+               l10n('Tab_Global'),
+               $my_base_url.'&amp;tab=global');
+$tabsheet->add('confirmmail',
+               l10n('Tab_ConfirmMail'),
+               $my_base_url.'&amp;tab=confirmmail');
+//if (isset($conf_nbc_UserAdvManager[20]) and $conf_nbc_UserAdvManager[20]=='true')
+//{
+  $tabsheet->add('userlist',
+                 l10n('Tab_UserList'),
+                 $my_base_url.'&amp;tab=userlist');
+//}
+$tabsheet->add('usermanager',
+               l10n('Tab_UserManager'),
+               $my_base_url.'&amp;tab=usermanager');
+$tabsheet->add('ghosttracker',
+               l10n('Tab_GhostTracker'),
+               $my_base_url.'&amp;tab=ghosttracker');
+$tabsheet->select($page['tab']);
+$tabsheet->assign();
+
+// +-----------------------------------------------------------------------+
+// |                            Tabssheet select                           |
+// +-----------------------------------------------------------------------+
+
+switch ($page['tab'])
+{
+// *************************************************************************
+// +-----------------------------------------------------------------------+
+// |                           Global Config                               |
+// +-----------------------------------------------------------------------+
+// *************************************************************************
+  case 'global':
+	
+	if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_Mail_Info']) and isset($_POST['UserAdvManager_No_Casse']) and isset($_POST['UserAdvManager_Username_Char']) and isset($_POST['UserAdvManager_Confirm_Mail']) and isset($_POST['UserAdvManager_No_Comment_Anonymous']) and isset($_POST['UserAdvManager_Password_Enforced']) and isset($_POST['UserAdvManager_AdminPassword_Enforced']) and isset($_POST['UserAdvManager_GhostUser_Tracker']))
+  { 
+		$_POST['UserAdvManager_MailInfo_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_MailInfo_Text']));
+    
+		$_POST['UserAdvManager_ConfirmMail_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_Text']));
+
+    $_POST['UserAdvManager_GhostTracker_ReminderText'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_GhostTracker_ReminderText']));
+
+
+/* Control of semicolons - Replaced by dots - Warning message is displayed */    
+    if ((preg_match($pattern, $_POST['UserAdvManager_MailInfo_Text'])) or (preg_match($pattern, $_POST['UserAdvManager_GhostTracker_ReminderText'])) or (preg_match($pattern, $_POST['UserAdvManager_ConfirmMail_Text'])))
+    {
+      if (preg_match($pattern, $_POST['UserAdvManager_MailInfo_Text']))
+      {
+        $_POST['UserAdvManager_MailInfo_Text'] = preg_replace($pattern, $replacement, $_POST['UserAdvManager_MailInfo_Text']);
+        $UserAdvManager_MailInfo_Error_Txt = true;
+      }
+      
+      if (preg_match($pattern, $_POST['UserAdvManager_ConfirmMail_Text']))
+      {
+        $_POST['UserAdvManager_ConfirmMail_Text'] = preg_replace($pattern, $replacement, $_POST['UserAdvManager_ConfirmMail_Text']);
+        $UserAdvManager_ConfirmMail_Error_Txt = true;
+      }
+      
+      if (preg_match($pattern, $_POST['UserAdvManager_GhostTracker_ReminderText']))
+      {
+        $_POST['UserAdvManager_GhostTracker_ReminderText'] = preg_replace($pattern, $replacement, $_POST['UserAdvManager_GhostTracker_ReminderText']);
+        $UserAdvManager_Reminder_Error_Txt = true;
+      }
+      
+      array_push($page['errors'], l10n('mail_text_error'));
+    }
+
+    /* Check if CR-LF exist at begining and end of mail exclusion list - If yes, removes them */
+    if (preg_match('/^[\s]+/', $_POST['UserAdvManager_MailExclusion_List']))
+    {
+      array_push($page['errors'], l10n('mail_exclusionlist_error'));
+      $UserAdvManager_Exclusionlist_Error = true;
+    }
+		
+		$newconf_nbc_UserAdvManager = $_POST['UserAdvManager_Mail_Info'].';'.$_POST['UserAdvManager_No_Casse'].';'.$_POST['UserAdvManager_Confirm_Mail'].';'.(isset($_POST['UserAdvManager_No_Confirm_Group'])?$_POST['UserAdvManager_No_Confirm_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Group'])?$_POST['UserAdvManager_Validated_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Status'])?$_POST['UserAdvManager_Validated_Status']:'').';'.$_POST['UserAdvManager_No_Comment_Anonymous'].';'.$_POST['UserAdvManager_Username_Char'].';'.$_POST['UserAdvManager_Username_List'].';'.(isset($_POST['UserAdvManager_No_Confirm_Status'])?$_POST['UserAdvManager_No_Confirm_Status']:'').';'.$_POST['UserAdvManager_MailInfo_Text'].';'.$_POST['UserAdvManager_ConfirmMail_Text'].';'.$_POST['UserAdvManager_MailExclusion'].';'.$_POST['UserAdvManager_MailExclusion_List'].';'.$_POST['UserAdvManager_Password_Enforced'].';'.$_POST['UserAdvManager_Password_Score'].';'.$_POST['UserAdvManager_AdminPassword_Enforced'].';'.$_POST['UserAdvManager_GhostUser_Tracker'].';'.$_POST['UserAdvManager_GhostTracker_DayLimit'].';'.$_POST['UserAdvManager_GhostTracker_ReminderText'].';'.$_POST['UserAdvManager_Add_LastVisit_Column'];
+		
+		$conf['nbc_UserAdvManager'] = $newconf_nbc_UserAdvManager;
+		
+		$query = '
+	  	UPDATE '.CONFIG_TABLE.'
+	  	SET value="'.$newconf_nbc_UserAdvManager.'"
+	  	WHERE param="nbc_UserAdvManager"
+	  	LIMIT 1
+	  	;';
+		
+		pwg_query($query);
+		
+		array_push($page['infos'], l10n('UserAdvManager_save_config'));
+  }
+
+/* Testing password enforcement */
+  if (isset($_POST['PasswordTest']) and !is_adviser() and isset($_POST['UserAdvManager_Password_Test']) and !empty($_POST['UserAdvManager_Password_Test']))
+  {
+    $UserAdvManager_Password_Test_Score = testpassword($_POST['UserAdvManager_Password_Test']);
+  }
+  else if (isset($_POST['PasswordTest']) and !is_adviser() and empty($_POST['UserAdvManager_Password_Test']))
+  {
+    array_push($page['errors'], l10n('reg_err_login3'));
+  }
+	
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+	
+/* Group setting for unvalidated and validated users */
+  $groups[-1] = '---------';
+  $No_Valid = -1;
+  $Valid = -1;
+	
+/* Check groups list in database  */
+  $query = '
+SELECT id, name
+FROM '.GROUPS_TABLE.'
+ORDER BY name ASC
+;';
+	
+  $result = pwg_query($query);
+	
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $groups[$row['id']] = $row['name'];
+/* configuration value for unvalidated users */
+    if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == $row['id'])
+    {
+	  	$No_Valid = $row['id'];
+		}
+/* configuration value for validated users */
+    if (isset($conf_nbc_UserAdvManager[4]) and $conf_nbc_UserAdvManager[4] == $row['id'])
+		{
+	  	$Valid = $row['id'];
+		}
+  }
+	
+/* Template initialization for unvalidated users group */
+  $template->assign(
+    'No_Confirm_Group',
+   	array(
+	  	'group_options'=> $groups,
+	  	'group_selected' => $No_Valid
+			)
+ 		);
+/* Template initialization for validated users group */
+  $template->assign(
+    'Validated_Group',
+		array(
+      'group_options'=> $groups,
+      'group_selected' => $Valid
+			)
+  	);
+	
+/* Status setting for unvalidated and validated users */
+  $status_options[-1] = '------------';
+  $No_Valid_Status = -1;
+  $Valid_Status = -1;
+	
+/* Get status values */
+  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
+  {
+	  $status_options[$status] = l10n('user_status_'.$status);
+	  if (isset($conf_nbc_UserAdvManager[9]) and $conf_nbc_UserAdvManager[9] == $status)
+	  {
+	    $No_Valid_Status = $status;
+	  }
+	  
+/* Template initialization for unvalidated users group */
+      $template->assign(
+        'No_Confirm_Status',
+        array(
+					'Status_options' => $status_options,
+		  		'Status_selected' => $No_Valid_Status
+					)
+	  		);
+  }
+  
+/* Get status values */
+  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
+  {
+	  $status_options[$status] = l10n('user_status_'.$status);
+	  if (isset($conf_nbc_UserAdvManager[5]) and $conf_nbc_UserAdvManager[5] == $status)
+		{
+		  $Valid_Status = $status;
+		}
+		
+/* Template initialization for unvalidated users group */
+      $template->assign(
+	    'Confirm_Status',
+	    array(
+		    'Status_options' => $status_options,
+		    'Status_selected' => $Valid_Status
+		    )
+	    );
+	}
+	
+  $template->assign(
+    array(
+		'UserAdvManager_MAIL_INFO_TRUE'           => $conf_nbc_UserAdvManager[0]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_MAIL_INFO_FALSE'          => $conf_nbc_UserAdvManager[0]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_MAILINFO_TEXT'            => $conf_nbc_UserAdvManager[10],
+		'UserAdvManager_NO_CASSE_TRUE'            => $conf_nbc_UserAdvManager[1]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_NO_CASSE_FALSE'           => $conf_nbc_UserAdvManager[1]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_USERNAME_CHAR_TRUE'       => $conf_nbc_UserAdvManager[7]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_USERNAME_CHAR_FALSE'      => $conf_nbc_UserAdvManager[7]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_USERNAME_CHAR_LIST'       => $conf_nbc_UserAdvManager[8],
+		'UserAdvManager_CONFIRM_MAIL_TRUE'        => $conf_nbc_UserAdvManager[2]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_CONFIRM_MAIL_FALSE'       => $conf_nbc_UserAdvManager[2]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_CONFIRMMAIL_TEXT'         => $conf_nbc_UserAdvManager[11],
+		'UserAdvManager_No_Confirm_Group'         => $conf_nbc_UserAdvManager[3],
+		'UserAdvManager_Validated_Group'          => $conf_nbc_UserAdvManager[4],
+		'UserAdvManager_No_Confirm_Status'        => $conf_nbc_UserAdvManager[9],
+		'UserAdvManager_Validated_Status'         => $conf_nbc_UserAdvManager[5],
+		'UserAdvManager_NO_COMMENT_ANO_TRUE'      => $conf_nbc_UserAdvManager[6]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_NO_COMMENT_ANO_FALSE'     => $conf_nbc_UserAdvManager[6]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_MAILEXCLUSION_TRUE'       => $conf_nbc_UserAdvManager[12]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_MAILEXCLUSION_FALSE'      => $conf_nbc_UserAdvManager[12]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_MAILEXCLUSION_LIST'       => $conf_nbc_UserAdvManager[13],
+		'UserAdvManager_PASSWORDENF_TRUE'         => $conf_nbc_UserAdvManager[14]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_PASSWORDENF_FALSE'        => $conf_nbc_UserAdvManager[14]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_PASSWORD_SCORE'           => $conf_nbc_UserAdvManager[15],
+    'UserAdvManager_ADMINPASSWENF_TRUE'       => $conf_nbc_UserAdvManager[16]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_ADMINPASSWENF_FALSE'      => $conf_nbc_UserAdvManager[16]=='false' ?  'checked="checked"' : '' ,
+    'UserAdvManager_GHOSTRACKER_TRUE'         => $conf_nbc_UserAdvManager[17]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_GHOSTRACKER_FALSE'        => $conf_nbc_UserAdvManager[17]=='false' ?  'checked="checked"' : '' ,
+    'UserAdvManager_GHOSTRACKER_DAYLIMIT'     => $conf_nbc_UserAdvManager[18],
+    'UserAdvManager_GHOSTRACKER_REMINDERTEXT' => $conf_nbc_UserAdvManager[19],
+    'UserAdvManager_ADDLASTVISIT_TRUE'        => $conf_nbc_UserAdvManager[20]=='true' ?  'checked="checked"' : '' ,
+    'UserAdvManager_ADDLASTVISIT_FALSE'       => $conf_nbc_UserAdvManager[20]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_PASSWORD_TEST_SCORE'      => $UserAdvManager_Password_Test_Score,
+    'UserAdvManager_ERROR_REPORTS1'           => $UserAdvManager_MailInfo_Error_Txt,
+    'UserAdvManager_ERROR_REPORTS2'           => $UserAdvManager_ConfirmMail_Error_Txt,
+    'UserAdvManager_ERROR_REPORTS3'           => $UserAdvManager_Reminder_Error_Txt,
+    'UserAdvManager_ERROR_REPORTS4'           => $UserAdvManager_Exclusionlist_Error,
+    )
+  );
+	
+
+  if (isset($_POST['audit']))
+	{
+		$msg_error1 = '';
+		
+/* username insensible a la casse */
+    if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == 'true')
+	  {
+			$query = "
+SELECT ".$conf['user_fields']['username']."
+  FROM ".USERS_TABLE." p1
+WHERE EXISTS(
+  SELECT ".$conf['user_fields']['username']."
+	 FROM ".USERS_TABLE." p2
+	WHERE p1.".$conf['user_fields']['id']." <> p2.".$conf['user_fields']['id']."
+	 AND LOWER(p1.".$conf['user_fields']['username'].") = LOWER(p2.".$conf['user_fields']['username'].")
+	)
+;";
+			  
+		  $result = pwg_query($query);
+			
+		  while($row = mysql_fetch_assoc($result))
+	  	{
+				$msg_error1 .= (($msg_error1 <> '') ? '<br/>' : '') . l10n('Err_audit_no_casse').stripslashes($row['username']);
+			}
+		}
+
+		$msg_error2 = '';
+		
+/* Username without forbidden keys */
+    if ( isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' )
+	  {
+			$query = "
+SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
+  FROM ".USERS_TABLE."
+;";
+			  
+			$result = pwg_query($query);
+			
+			while($row = mysql_fetch_assoc($result))
+			{
+				if (!ValidateUsername(stripslashes($row['username'])))
+					$msg_error2 .= (($msg_error2 <> '') ? '<br/>' : '') . l10n('Err_audit_username_char').stripslashes($row['username']);
+			}
+		}
+
+		$msg_error3 = '';
+		
+/* Email without forbidden domain */
+    if ( isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' )
+	  {
+			$query = "
+SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
+  FROM ".USERS_TABLE."
+;";
+			  
+		  $result = pwg_query($query);
+			
+		  while($row = mysql_fetch_assoc($result))
+		  {
+			  $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
+			  for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
+			  {
+					$pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
+				  if (preg_match($pattern, $row['mail_address']))
+				  {
+						$msg_error3 .=  (($msg_error3 <> '') ? '<br/>' : '') . l10n('Err_audit_email_forbidden').stripslashes($row['username']).' ('.$row['mail_address'].')';
+					}
+				}
+			}
+		}
+		
+    if ($msg_error1 <> '')
+			$errors[] = $msg_error1.'<br/><br/>';
+		
+		if ($msg_error2 <> '')
+			$errors[] = $msg_error2.'<br/><br/>';
+		
+		if ($msg_error3 <> '')
+	  	$errors[] = $msg_error3.'<br/><br/>';
+		
+		if ($msg_error1 <> '' or $msg_error2 <> '' or $msg_error3 <> '')
+	  	array_push($page['errors'], l10n('Err_audit_advise'));
+		else
+    	array_push($page['infos'], l10n('UserAdvManager_audit_ok'));
+	}
+
+
+// +-----------------------------------------------------------------------+
+// |                             errors display                            |
+// +-----------------------------------------------------------------------+
+  if (isset ($errors) and count($errors) != 0)
+  {
+	  $template->assign('errors',array());
+	  foreach ($errors as $error)
+	  {
+		  array_push($page['errors'], $error);
+		}
+	}  
+
+// +-----------------------------------------------------------------------+
+// |                           templates display                           |
+// +-----------------------------------------------------------------------+
+  $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/global.tpl');
+  $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+  break;
+
+// *************************************************************************
+// +-----------------------------------------------------------------------+
+// |                           ConfirmMail Config                          |
+// +-----------------------------------------------------------------------+
+// *************************************************************************
+  case 'confirmmail':
+	
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+	
+  if (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2]=='true')
+  {
+    if ( isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_ConfirmMail_TimeOut']) )
+		{
+	  	$_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1']));
+
+	  	$_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2']));
+
+/* Control of semicolons - Replaced by dots - Warning message displayed */
+    if ((preg_match($pattern, $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'])) or (preg_match($pattern, $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'])))
+    {
+      if ((preg_match($pattern, $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'])))
+      {
+        $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'] = preg_replace($pattern, $replacement, $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1']);
+        $UserAdvManager_ConfirmMail_Error_Txt1 = true;
+      }
+      
+      if ((preg_match($pattern, $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'])))
+      {
+        $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'] = preg_replace($pattern, $replacement, $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2']);
+        
+        $UserAdvManager_ConfirmMail_Error_Txt2 = true;
+      }
+      
+      array_push($page['errors'], l10n('mail_text_error'));
+    }
+   		  
+	  	$newconf_nbc_UserAdvManager_ConfirmMail = $_POST['UserAdvManager_ConfirmMail_TimeOut'].';'.$_POST['UserAdvManager_ConfirmMail_Delay'].';'.$_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'].';'.$_POST['UserAdvManager_ConfirmMail_Remail'].';'.$_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'];
+		  
+//NODO:Adding new option [Auto deletion : True | False] - No access to cron functionnalities
+
+	  	$conf['nbc_UserAdvManager_ConfirmMail'] = $newconf_nbc_UserAdvManager_ConfirmMail;
+		
+	  	$query = '
+	    	UPDATE '.CONFIG_TABLE.'
+				SET value="'.$newconf_nbc_UserAdvManager_ConfirmMail.'"
+				WHERE param="nbc_UserAdvManager_ConfirmMail"
+				LIMIT 1
+			;';
+		
+			pwg_query($query);
+		
+			array_push($page['infos'], l10n('UserAdvManager_save_config'));
+		}
+	
+		$conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();		
+
+	  $template->assign(
+	  array(
+		'UserAdvManager_CONFIRMMAIL_TIMEOUT_TRUE'		=> $conf_nbc_UserAdvManager_ConfirmMail[0]=='true' ?  'checked="checked"' : '' ,
+		'UserAdvManager_CONFIRMMAIL_TIMEOUT_FALSE'	=> $conf_nbc_UserAdvManager_ConfirmMail[0]=='false' ?  'checked="checked"' : '' ,
+		'UserAdvManager_CONFIRMMAIL_DELAY'					=> $conf_nbc_UserAdvManager_ConfirmMail[1],
+    'UserAdvManager_CONFIRMMAIL_REMAIL_TRUE'		=> $conf_nbc_UserAdvManager_ConfirmMail[3]=='true' ? 'checked="checked"' : '',
+    'UserAdvManager_CONFIRMMAIL_REMAIL_FALSE'		=> $conf_nbc_UserAdvManager_ConfirmMail[3]=='false' ? 'checked="checked"' : '',
+    'UserAdvManager_CONFIRMMAIL_REMAIL_TXT1'		=> $conf_nbc_UserAdvManager_ConfirmMail[2],
+    'UserAdvManager_CONFIRMMAIL_REMAIL_TXT2'		=> $conf_nbc_UserAdvManager_ConfirmMail[4],
+    'UserAdvManager_ERROR_REPORTS1'             => $UserAdvManager_ConfirmMail_Error_Txt1,
+    'UserAdvManager_ERROR_REPORTS2'             => $UserAdvManager_ConfirmMail_Error_Txt2,
+    	)
+	  );		
+
+// +-----------------------------------------------------------------------+
+// |                             errors display                            |
+// +-----------------------------------------------------------------------+
+		if ( isset ($errors) and count($errors) != 0)
+		{
+	  	$template->assign('errors',array());
+			foreach ($errors as $error)
+	  	{
+				array_push($page['errors'], $error);
+	  	}
+ 		}  
+
+// +-----------------------------------------------------------------------+
+// |                           templates display                           |
+// +-----------------------------------------------------------------------+
+		$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/confirmmail.tpl');
+    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');		
+  }
+  else
+  {
+		array_push($page['infos'], l10n('Err_ConfirmMail_Settings'));
+  }
+  break;
+
+
+// *************************************************************************
+// +-----------------------------------------------------------------------+
+// |                           Users list page                             |
+// +-----------------------------------------------------------------------+
+// *************************************************************************
+  case 'userlist':
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  
+  if (isset($conf_nbc_UserAdvManager[20]) and $conf_nbc_UserAdvManager[20]=='true')
+  {
+// +-----------------------------------------------------------------------+
+// |                           initialization                              |
+// +-----------------------------------------------------------------------+
+
+		if (!defined('PHPWG_ROOT_PATH'))
+    {
+    	die('Hacking attempt!');
+    }
+          
+    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok                      |
+// +-----------------------------------------------------------------------+
+		check_status(ACCESS_ADMINISTRATOR);
+
+
+// +-----------------------------------------------------------------------+
+// |                               user list                               |
+// +-----------------------------------------------------------------------+
+
+		$page['filtered_users'] = get_user_list();
+
+// +-----------------------------------------------------------------------+
+// |                           Template Init                               |
+// +-----------------------------------------------------------------------+
+		$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
+
+    if (isset($_GET['start']) and is_numeric($_GET['start']))
+    {
+      $start = $_GET['start'];
+    }
+    else
+    {
+      $start = 0;
+    }
+
+// +-----------------------------------------------------------------------+
+// |                            navigation bar                             |
+// +-----------------------------------------------------------------------+
+
+$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
+
+$navbar = create_navigation_bar(
+  $url,
+  count($page['filtered_users']),
+  $start,
+  $conf['users_page']
+  );
+
+$template->assign('NAVBAR', $navbar);
+
+// +-----------------------------------------------------------------------+
+// |                               user list                               |
+// +-----------------------------------------------------------------------+
+
+    $visible_user_list = array();
+    foreach ($page['filtered_users'] as $num => $local_user)
+    {
+/* simulate LIMIT $start, $conf['users_page'] */
+			if ($num < $start)
+      {
+        continue;
+      }
+      if ($num >= $start + $conf['users_page'])
+      {
+        break;
+      }
+
+      $visible_user_list[] = $local_user;
+		}
+
+		foreach ($visible_user_list as $local_user)
+    {
+      // dates formating and compare
+      $today = date("d-m-Y"); // Get today's date
+      list($day, $month, $year) = explode('-', $today); // explode date of today						 
+      $daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
+	  	
+      list($regdate, $regtime) = explode(' ', $local_user['lastvisit']); // Explode date and time from registration date
+      list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
+      $regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
+			
+      $deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps	
+      $deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
+      
+      if (isset($conf_nbc_UserAdvManager[17]) and $conf_nbc_UserAdvManager[17]=='true' and $conf_nbc_UserAdvManager[18] <> '')
+      {
+        if ($deltadays <= ($conf_nbc_UserAdvManager[18]/2))
+        {
+          $display = 'green';
+        }
+        
+        if (($deltadays > ($conf_nbc_UserAdvManager[18]/2)) and ($deltadays < $conf_nbc_UserAdvManager[18]))
+        {
+          $display = 'orange';
+        }
+        
+        if ($deltadays >= $conf_nbc_UserAdvManager[18])
+        {
+          $display = 'red';
+        }
+        
+      }
+
+   		$template->append(
+     		'users',
+       	array(
+       		'ID'         => $local_user['id'],
+         	'USERNAME'   => stripslashes($local_user['username']),
+					'EMAIL'      => get_email_address_as_display_text($local_user['email']),
+          'LASTVISIT'  => $local_user['lastvisit'],
+          'DAYS'       => $deltadays,
+          'DISPLAY'    => $display,
+				)
+			);
+		}
+// +-----------------------------------------------------------------------+
+// |                             errors display                            |
+// +-----------------------------------------------------------------------+
+		if ( isset ($errors) and count($errors) != 0)
+		{
+	  	$template->assign('errors',array());
+			foreach ($errors as $error)
+	  	{
+				array_push($page['errors'], $error);
+	  	}
+ 		}  
+
+// +-----------------------------------------------------------------------+
+// |                           templates display                           |
+// +-----------------------------------------------------------------------+
+		$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/userlist.tpl');
+    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');		
+  }
+  else
+  {
+		array_push($page['infos'], l10n('Err_Userlist_Settings'));
+  }
+  break;
+
+
+// *************************************************************************
+// +-----------------------------------------------------------------------+
+// |                           Users manager page                          |
+// +-----------------------------------------------------------------------+
+// *************************************************************************
+  case 'usermanager':
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
+	
+  if (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2]=='true' and ((isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] <> '-1') or (isset($conf_nbc_UserAdvManager[9]) and $conf_nbc_UserAdvManager[9] <> '-1')) and isset($conf_nbc_UserAdvManager_ConfirmMail[0]) and $conf_nbc_UserAdvManager_ConfirmMail[0]=='true')
+  {
+// +-----------------------------------------------------------------------+
+// |                           initialization                              |
+// +-----------------------------------------------------------------------+
+
+		if (!defined('PHPWG_ROOT_PATH'))
+    {
+    	die('Hacking attempt!');
+    }
+          
+    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok                      |
+// +-----------------------------------------------------------------------+
+		check_status(ACCESS_ADMINISTRATOR);
+
+// +-----------------------------------------------------------------------+
+// |                               user list                               |
+// +-----------------------------------------------------------------------+
+
+		$page['filtered_users'] = get_unvalid_user_list();
+
+// +-----------------------------------------------------------------------+
+// |                            selected users                             |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Del_Selected']))
+		{
+  		$collection = array();
+
+			switch ($_POST['target'])
+    	{
+    		case 'all' :
+      	{
+      		foreach($page['filtered_users'] as $local_user)
+        	{
+        		array_push($collection, $local_user['id']);
+        	}
+					break;
+				}
+      	case 'selection' :
+      	{
+      		if (isset($_POST['selection']))
+        	{
+        		$collection = $_POST['selection'];
+        	}
+        	break;
+      	}
+			}
+
+			if (count($collection) == 0)
+    	{
+    		array_push($page['errors'], l10n('Select at least one user'));
+   		}
+		}
+
+// +-----------------------------------------------------------------------+
+// |                             delete users                              |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Del_Selected']) and count($collection) > 0)
+  	{
+  		if (in_array($conf['guest_id'], $collection))
+   		{
+    		array_push($page['errors'], l10n('Guest cannot be deleted'));
+    	}
+    	if (($conf['guest_id'] != $conf['default_user_id']) and
+    		in_array($conf['default_user_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('Default user cannot be deleted'));
+    	}
+    	if (in_array($conf['webmaster_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('Webmaster cannot be deleted'));
+    	}
+    	if (in_array($user['id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('You cannot delete your account'));
+    	}
+
+			if (count($page['errors']) == 0)
+    	{
+    		foreach ($collection as $user_id)
+      	{
+      		delete_user($user_id);
+      	}
+     		array_push(
+      		$page['infos'],
+        	l10n_dec(
+        	'%d user deleted', '%d users deleted',
+        	count($collection)
+        	)
+      	);
+
+      	foreach ($page['filtered_users'] as $filter_key => $filter_user)
+      	{
+      		if (in_array($filter_user['id'], $collection))
+        	{
+        		unset($page['filtered_users'][$filter_key]);
+        	}
+     		}
+			}
+		}
+
+// +-----------------------------------------------------------------------+
+// |                 Resend new validation key to users                    |
+// +-----------------------------------------------------------------------+
+// +-----------------------------------------------------------------------+
+// |                            selected users                             |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Mail_With_Key']))
+		{
+  		$collection = array();
+
+			switch ($_POST['target'])
+    	{
+    		case 'all' :
+      	{
+      		foreach($page['filtered_users'] as $local_user)
+        	{
+        		array_push($collection, $local_user['id']);
+        	}
+        	break;
+				}
+      	case 'selection' :
+      	{
+      		if (isset($_POST['selection']))
+        	{
+        		$collection = $_POST['selection'];
+        	}
+        	break;
+      	}
+			}
+
+    	if (count($collection) == 0)
+    	{
+    		array_push($page['errors'], l10n('Select at least one user'));
+    	}
+		}
+// +-----------------------------------------------------------------------+
+// |                 Resend new validation key to users                    |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Mail_With_Key']) and count($collection) > 0)
+		{
+			if (in_array($conf['guest_id'], $collection))
+   		{
+    		array_push($page['errors'], l10n('No_validation_for_Guest'));
+    	}
+    	if (($conf['guest_id'] != $conf['default_user_id']) and
+    		in_array($conf['default_user_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_default_user'));
+    	}
+   		if (in_array($conf['webmaster_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_Webmaster'));
+    	}
+    	if (in_array($user['id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_your_account'));
+    	}
+
+    	if (count($page['errors']) == 0)
+    	{
+    		foreach ($collection as $user_id)
+      	{     	
+      		$typemail = 1;
+				  $query = "
+SELECT id, username, mail_address
+  FROM ".USERS_TABLE."
+WHERE id = '".$user_id."'
+;";
+					$data = mysql_fetch_assoc(pwg_query($query));
+				
+      		ResendMail2User($typemail,$user_id,stripslashes($data['username']),$data['mail_address'],true);
+      	}
+      	array_push(
+      		$page['infos'],
+        	l10n_dec(
+        		'%d_Mail_With_Key', '%d_Mails_With_Key',
+        	count($collection)
+        	)
+      	);
+      	
+				$page['filtered_users'] = get_unvalid_user_list();
+			}
+		}
+
+// +-----------------------------------------------------------------------+
+// |             Send reminder without new key to users                    |
+// +-----------------------------------------------------------------------+
+// +-----------------------------------------------------------------------+
+// |                            selected users                             |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Mail_Without_Key']))
+		{
+  		$collection = array();
+
+			switch ($_POST['target'])
+    	{
+    		case 'all' :
+      	{
+      		foreach($page['filtered_users'] as $local_user)
+        	{
+        		array_push($collection, $local_user['id']);
+        	}
+        	break;
+				}
+      	case 'selection' :
+      	{
+      		if (isset($_POST['selection']))
+        	{
+        		$collection = $_POST['selection'];
+        	}
+        	break;
+      	}
+			}
+
+    	if (count($collection) == 0)
+    	{
+    		array_push($page['errors'], l10n('Select at least one user'));
+    	}
+		}
+// +-----------------------------------------------------------------------+
+// |             Send reminder without new key to users                    |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Mail_Without_Key']) and count($collection) > 0)
+		{
+			if (in_array($conf['guest_id'], $collection))
+   		{
+    		array_push($page['errors'], l10n('No_validation_for_Guest'));
+    	}
+    	if (($conf['guest_id'] != $conf['default_user_id']) and
+    		in_array($conf['default_user_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_default_user'));
+    	}
+   		if (in_array($conf['webmaster_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_Webmaster'));
+    	}
+    	if (in_array($user['id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_your_account'));
+    	}
+
+    	if (count($page['errors']) == 0)
+    	{
+    		foreach ($collection as $user_id)
+      	{
+      		$typemail = 2;
+				  $query = "
+SELECT id, username, mail_address
+  FROM ".USERS_TABLE."
+WHERE id = '".$user_id."'
+;";
+					
+					$data = mysql_fetch_assoc(pwg_query($query));
+				
+      		ResendMail2User($typemail,$user_id,stripslashes($data['username']),$data['mail_address'],false);				
+      	}
+      	array_push(
+      		$page['infos'],
+        	l10n_dec(
+        		'%d_Reminder_Sent', '%d_Reminders_Sent',
+       		count($collection)
+        	)
+      	);
+        
+				$page['filtered_users'] = get_unvalid_user_list();
+			}
+		}
+
+// +-----------------------------------------------------------------------+
+// |             								Force validation					                 |
+// +-----------------------------------------------------------------------+
+// +-----------------------------------------------------------------------+
+// |                            selected users                             |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Force_Validation']))
+		{
+  		$collection = array();
+
+			switch ($_POST['target'])
+    	{
+    		case 'all' :
+      	{
+      		foreach($page['filtered_users'] as $local_user)
+        	{
+        		array_push($collection, $local_user['id']);
+        	}
+        	break;
+				}
+      	case 'selection' :
+      	{
+      		if (isset($_POST['selection']))
+        	{
+        		$collection = $_POST['selection'];
+        	}
+        	break;
+      	}
+			}
+
+    	if (count($collection) == 0)
+    	{
+    		array_push($page['errors'], l10n('Select at least one user'));
+    	}
+		}
+// +-----------------------------------------------------------------------+
+// |             								Force validation					                 |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Force_Validation']) and count($collection) > 0)
+		{
+			if (in_array($conf['guest_id'], $collection))
+   		{
+    		array_push($page['errors'], l10n('No_validation_for_Guest'));
+    	}
+    	if (($conf['guest_id'] != $conf['default_user_id']) and
+    		in_array($conf['default_user_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_default_user'));
+    	}
+   		if (in_array($conf['webmaster_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_Webmaster'));
+    	}
+    	if (in_array($user['id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_validation_for_your_account'));
+    	}
+
+    	if (count($page['errors']) == 0)
+    	{
+    		foreach ($collection as $user_id)
+      	{
+				  $query = "
+SELECT id, username, mail_address
+  FROM ".USERS_TABLE."
+WHERE id = '".$user_id."'
+;";
+					
+					$data = mysql_fetch_assoc(pwg_query($query));
+				
+      		ForceValidation($data['id']);				
+      	}
+      	array_push(
+      		$page['infos'],
+        	l10n_dec(
+        		'%d_Validated_User', '%d_Validated_Users',
+       		count($collection)
+        	)
+      	);
+
+				$page['filtered_users'] = get_unvalid_user_list();
+			}
+		}
+		
+
+// +-----------------------------------------------------------------------+
+// |                              groups list                              |
+// +-----------------------------------------------------------------------+
+
+		$groups[-1] = '------------';
+
+    $query = '
+SELECT id, name
+  FROM '.GROUPS_TABLE.'
+ORDER BY name ASC
+;';
+
+		$result = pwg_query($query);
+          
+    while ($row = mysql_fetch_assoc($result))
+    {
+      $groups[$row['id']] = $row['name'];
+    }
+
+// +-----------------------------------------------------------------------+
+// |                           Template Init                               |
+// +-----------------------------------------------------------------------+
+		$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
+
+    if (isset($_GET['start']) and is_numeric($_GET['start']))
+    {
+      $start = $_GET['start'];
+    }
+    else
+    {
+      $start = 0;
+    }
+
+/* Hide radio-button if not allow to assign adviser */
+		if ($conf['allow_adviser'])
+    	{
+      	$template->assign('adviser', true);
+    	}
+
+// +-----------------------------------------------------------------------+
+// |                            navigation bar                             |
+// +-----------------------------------------------------------------------+
+
+$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
+
+$navbar = create_navigation_bar(
+  $url,
+  count($page['filtered_users']),
+  $start,
+  $conf['users_page']
+  );
+
+$template->assign('NAVBAR', $navbar);
+
+// +-----------------------------------------------------------------------+
+// |                               user list                               |
+// +-----------------------------------------------------------------------+
+
+		$profile_url = get_root_url().'admin.php?page=profile&amp;user_id=';
+		$perm_url = get_root_url().'admin.php?page=user_perm&amp;user_id=';
+
+    $visible_user_list = array();
+    foreach ($page['filtered_users'] as $num => $local_user)
+    {
+/* simulate LIMIT $start, $conf['users_page'] */
+			if ($num < $start)
+      {
+        continue;
+      }
+      if ($num >= $start + $conf['users_page'])
+      {
+        break;
+      }
+
+      $visible_user_list[] = $local_user;
+		}
+
+		foreach ($visible_user_list as $local_user)
+    {
+      $groups_string = preg_replace(
+      	'/(\d+)/e',
+        "\$groups['$1']",
+        implode(
+        	', ',
+            $local_user['groups']
+         )
+			);
+
+      $query = '
+SELECT user_id, reminder
+FROM '.USER_CONFIRM_MAIL_TABLE.'
+WHERE user_id = '.$local_user['id'].'
+;';
+      $result = pwg_query($query);
+      
+      $row = mysql_fetch_assoc($result);
+    
+      if (isset($row['reminder']) and $row['reminder'] == 'true')
+      {
+        $reminder = l10n('Reminder_Sent_OK');
+      }
+      else if ((isset($row['reminder']) and $row['reminder'] == 'false') or !isset($row['reminder']))
+      {
+        $reminder = l10n('Reminder_Sent_NOK');
+      }
+
+
+	  	if (isset($_POST['pref_submit'])
+    		and isset($_POST['selection'])
+      	and in_array($local_user['id'], $_POST['selection']))
+	  	{
+				$checked = 'checked="checked"';
+	  	}
+			else
+    	{
+    		$checked = '';
+    	}
+
+    	$properties = array();
+    	if ( $local_user['level'] != 0 )
+			{
+    		$properties[] = l10n( sprintf('Level %d', $local_user['level']) );
+			}
+    	$properties[] =
+    		(isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true'))
+      		? l10n('is_high_enabled') : l10n('is_high_disabled');
+
+			$expiration = expiration($local_user['id']);
+              
+   		$template->append(
+     		'users',
+       	array(
+       		'ID'               => $local_user['id'],
+         	'CHECKED'          => $checked,
+         	'U_PROFILE'        => $profile_url.$local_user['id'],
+         	'U_PERM'           => $perm_url.$local_user['id'],
+         	'USERNAME'         => stripslashes($local_user['username'])
+                                  .($local_user['id'] == $conf['guest_id']
+                                  ? '<BR>['.l10n('is_the_guest').']' : '')
+                                  .($local_user['id'] == $conf['default_user_id']
+                                  ? '<BR>['.l10n('is_the_default').']' : ''),
+                                  'STATUS' => l10n('user_status_'
+                                  .$local_user['status']).(($local_user['adviser'] == 'true')
+                                  ? '<BR>['.l10n('adviser').']' : ''),
+					'EMAIL'            => get_email_address_as_display_text($local_user['email']),
+         	'GROUPS'           => $groups_string,
+         	'REGISTRATION'     => $local_user['registration_date'],
+          'REMINDER'         => $reminder,    
+         	'EXPIRATION'       => $expiration,
+				)
+			);
+		}
+
+// +-----------------------------------------------------------------------+
+// |                             errors display                            |
+// +-----------------------------------------------------------------------+
+		if ( isset ($errors) and count($errors) != 0)
+		{
+	  	$template->assign('errors',array());
+			foreach ($errors as $error)
+	  	{
+				array_push($page['errors'], $error);
+	  	}
+		}  
+
+// +-----------------------------------------------------------------------+
+// |                           templates display                           |
+// +-----------------------------------------------------------------------+
+		$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/usermanager.tpl');
+    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');		
+	}
+  else
+  {
+		array_push($page['infos'], l10n('Err_UserManager_Settings'));
+  }
+  break;
+
+
+// *************************************************************************
+// +-----------------------------------------------------------------------+
+// |                           Ghost Tracker page                          |
+// +-----------------------------------------------------------------------+
+// *************************************************************************
+  case 'ghosttracker':
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+	
+  if (isset($conf_nbc_UserAdvManager[17]) and $conf_nbc_UserAdvManager[17]=='true')
+  {
+// +-----------------------------------------------------------------------+
+// |                           initialization                              |
+// +-----------------------------------------------------------------------+
+
+		if (!defined('PHPWG_ROOT_PATH'))
+    {
+    	die('Hacking attempt!');
+    }
+          
+    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok                      |
+// +-----------------------------------------------------------------------+
+		check_status(ACCESS_ADMINISTRATOR);
+
+// +-----------------------------------------------------------------------+
+// |                               user list                               |
+// +-----------------------------------------------------------------------+
+
+		$page['filtered_users'] = get_ghost_user_list();
+
+// +-----------------------------------------------------------------------+
+// |                            selected users                             |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Del_Selected']))
+		{
+  		$collection = array();
+
+			switch ($_POST['target'])
+    	{
+    		case 'all' :
+      	{
+      		foreach($page['filtered_users'] as $local_user)
+        	{
+        		array_push($collection, $local_user['id']);
+        	}
+					break;
+				}
+      	case 'selection' :
+      	{
+      		if (isset($_POST['selection']))
+        	{
+        		$collection = $_POST['selection'];
+        	}
+        	break;
+      	}
+			}
+
+			if (count($collection) == 0)
+    	{
+    		array_push($page['errors'], l10n('Select at least one user'));
+   		}
+		}
+
+// +-----------------------------------------------------------------------+
+// |                             delete users                              |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Del_Selected']) and count($collection) > 0)
+  	{
+  		if (in_array($conf['guest_id'], $collection))
+   		{
+    		array_push($page['errors'], l10n('Guest cannot be deleted'));
+    	}
+    	if (($conf['guest_id'] != $conf['default_user_id']) and
+    		in_array($conf['default_user_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('Default user cannot be deleted'));
+    	}
+    	if (in_array($conf['webmaster_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('Webmaster cannot be deleted'));
+    	}
+    	if (in_array($user['id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('You cannot delete your account'));
+    	}
+
+			if (count($page['errors']) == 0)
+    	{
+    		foreach ($collection as $user_id)
+      	{
+      		delete_user($user_id);
+      	}
+     		array_push(
+      		$page['infos'],
+        	l10n_dec(
+        	'%d user deleted', '%d users deleted',
+        	count($collection)
+        	)
+      	);
+
+      	foreach ($page['filtered_users'] as $filter_key => $filter_user)
+      	{
+      		if (in_array($filter_user['id'], $collection))
+        	{
+        		unset($page['filtered_users'][$filter_key]);
+        	}
+     		}
+			}
+		}
+
+// +-----------------------------------------------------------------------+
+// |                          Send ghost reminder                          |
+// +-----------------------------------------------------------------------+
+// +-----------------------------------------------------------------------+
+// |                            selected users                             |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Reminder_Email']))
+		{
+  		$collection = array();
+
+			switch ($_POST['target'])
+    	{
+    		case 'all' :
+      	{
+      		foreach($page['filtered_users'] as $local_user)
+        	{
+        		array_push($collection, $local_user['id']);
+        	}
+        	break;
+				}
+      	case 'selection' :
+      	{
+      		if (isset($_POST['selection']))
+        	{
+        		$collection = $_POST['selection'];
+        	}
+        	break;
+      	}
+			}
+
+    	if (count($collection) == 0)
+    	{
+    		array_push($page['errors'], l10n('Select at least one user'));
+    	}
+		}
+// +-----------------------------------------------------------------------+
+// |                         Send ghost reminder                           |
+// +-----------------------------------------------------------------------+
+		if (isset($_POST['Reminder_Email']) and count($collection) > 0)
+		{
+			if (in_array($conf['guest_id'], $collection))
+   		{
+    		array_push($page['errors'], l10n('No_reminder_for_Guest'));
+    	}
+    	if (($conf['guest_id'] != $conf['default_user_id']) and
+    		in_array($conf['default_user_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_reminder_for_default_user'));
+    	}
+   		if (in_array($conf['webmaster_id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_reminder_for_Webmaster'));
+    	}
+    	if (in_array($user['id'], $collection))
+    	{
+    		array_push($page['errors'], l10n('No_reminder_for_your_account'));
+    	}
+
+    	if (count($page['errors']) == 0)
+    	{
+    		foreach ($collection as $user_id)
+      	{
+				  $query = "
+SELECT id, username, mail_address
+  FROM ".USERS_TABLE."
+WHERE id = '".$user_id."'
+;";
+					
+					$data = mysql_fetch_assoc(pwg_query($query));
+				
+      		ghostreminder($user_id,stripslashes($data['username']),$data['mail_address']);				
+      	}
+      	array_push(
+      		$page['infos'],
+        	l10n_dec(
+        		'%d_Reminder_Sent', '%d_Reminders_Sent',
+       		count($collection)
+        	)
+      	);
+      	
+				$page['filtered_users'] = get_ghost_user_list();
+			}
+		}
+    
+    if (isset($_POST['GhostTracker_Init']))
+    {
+      /* Reset is only allowed for admins ! */
+      if (is_admin() and !is_adviser())
+      {
+        $query1 = '
+SELECT *
+  FROM '.USER_LASTVISIT_TABLE.';';
+
+        $count = mysql_num_rows(pwg_query($query1));
+
+        if ($count <> 0)
+        {
+          $query = '
+SELECT DISTINCT u.id,
+                ui.status AS status
+FROM '.USERS_TABLE.' AS u
+  INNER JOIN '.USER_INFOS_TABLE.' AS ui
+    ON u.id = ui.user_id
+WHERE u.id NOT IN (SELECT user_id FROM '.USER_LASTVISIT_TABLE.')
+  AND status != "webmaster"
+  AND status != "guest"
+  AND status != "admin"
+ORDER BY u.id ASC
+;';
+
+          $result = pwg_query($query);
+          
+          while ($row = mysql_fetch_assoc($result))
+          {
+            list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+            
+            $query = "
+INSERT INTO ".USER_LASTVISIT_TABLE." (user_id, lastvisit, reminder)
+VALUES ('".$row['id']."','".$dbnow."','false')
+;";
+            pwg_query($query);
+          }
+        }
+        else if ($count == 0)
+        {
+          $query = '
+SELECT DISTINCT u.id,
+                ui.status AS status
+FROM '.USERS_TABLE.' AS u
+  INNER JOIN '.USER_INFOS_TABLE.' AS ui
+    ON u.id = ui.user_id
+WHERE status != "webmaster"
+  AND status != "guest"
+  AND status != "admin"
+ORDER BY u.id ASC
+;';
+
+          $result = pwg_query($query);
+          
+          while($row = mysql_fetch_assoc($result))
+          {
+            list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+            
+            $query = "
+INSERT INTO ".USER_LASTVISIT_TABLE." (user_id, lastvisit, reminder)
+VALUES ('".$row['id']."','".$dbnow."','false')
+;";
+            pwg_query($query);
+          }
+        }
+        
+        array_push($page['infos'], l10n('GhostTracker_Init_OK'));
+      }
+    }
+
+// +-----------------------------------------------------------------------+
+// |                           Template Init                               |
+// +-----------------------------------------------------------------------+
+		$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
+
+    if (isset($_GET['start']) and is_numeric($_GET['start']))
+    {
+      $start = $_GET['start'];
+    }
+    else
+    {
+      $start = 0;
+    }
+
+/* Hide radio-button if not allow to assign adviser */
+		if ($conf['allow_adviser'])
+    	{
+      	$template->assign('adviser', true);
+    	}
+
+// +-----------------------------------------------------------------------+
+// |                            navigation bar                             |
+// +-----------------------------------------------------------------------+
+
+$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
+
+$navbar = create_navigation_bar(
+  $url,
+  count($page['filtered_users']),
+  $start,
+  $conf['users_page']
+  );
+
+$template->assign('NAVBAR', $navbar);
+
+// +-----------------------------------------------------------------------+
+// |                               user list                               |
+// +-----------------------------------------------------------------------+
+
+    $visible_user_list = array();
+    foreach ($page['filtered_users'] as $num => $local_user)
+    {
+/* simulate LIMIT $start, $conf['users_page'] */
+			if ($num < $start)
+      {
+        continue;
+      }
+      if ($num >= $start + $conf['users_page'])
+      {
+        break;
+      }
+
+      $visible_user_list[] = $local_user;
+		}
+
+    $reminder = '';
+    
+    if (isset($local_user['reminder']) and $local_user['reminder'] == 'true')
+    {
+      $reminder = l10n('Reminder_Sent_OK');
+    }
+    else if (isset($local_user['reminder']) and $local_user['reminder'] == 'false')
+    {
+      $reminder = l10n('Reminder_Sent_NOK');
+    }
+
+		foreach ($visible_user_list as $local_user)
+    {
+	  	if (isset($_POST['pref_submit'])
+    		and isset($_POST['selection'])
+      	and in_array($local_user['id'], $_POST['selection']))
+	  	{
+				$checked = 'checked="checked"';
+	  	}
+			else
+    	{
+    		$checked = '';
+    	}
+
+   		$template->append(
+     		'users',
+       	array(
+       		'ID'         => $local_user['id'],
+         	'CHECKED'    => $checked,
+         	'USERNAME'   => stripslashes($local_user['username']),
+					'EMAIL'      => get_email_address_as_display_text($local_user['email']),
+          'LASTVISIT'  => $local_user['lastvisit'],
+          'REMINDER'   => $reminder,
+				)
+			);
+		}
+
+// +-----------------------------------------------------------------------+
+// |                             errors display                            |
+// +-----------------------------------------------------------------------+
+		if ( isset ($errors) and count($errors) != 0)
+		{
+	  	$template->assign('errors',array());
+			foreach ($errors as $error)
+	  	{
+				array_push($page['errors'], $error);
+	  	}
+		}  
+
+// +-----------------------------------------------------------------------+
+// |                           templates display                           |
+// +-----------------------------------------------------------------------+
+		$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/ghosttracker.tpl');
+    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');		
+	}
+  else
+  {
+		array_push($page['infos'], l10n('Err_GhostTracker_Settings'));
+  }
+
+  break;
+}
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/confirmmail.tpl
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/confirmmail.tpl	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/confirmmail.tpl	(revision 4552)
@@ -0,0 +1,56 @@
+<div class="titrePage">
+  <h2>{'Title_Tab2'|@translate}</h2>
+</div>
+
+<form method="post" action="{$UserAdvManager_F_ACTION}" class="general">
+  <fieldset>
+  	<legend>{'ConfirmMail_Title'|@translate}</legend>
+    <ul>
+    	<li><label>{'UserAdvManager_ConfirmMail_Info'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_CONFIRMMAIL_TIMEOUT_TRUE} name="UserAdvManager_ConfirmMail_TimeOut"> {'UserAdvManager_ConfirmMail_TimeOut_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_CONFIRMMAIL_TIMEOUT_FALSE} name="UserAdvManager_ConfirmMail_TimeOut"> {'UserAdvManager_ConfirmMail_TimeOut_false'|@translate}<br><br>
+    	</li>
+      
+		<li><label>{'UserAdvManager_ConfirmMail_Delay_Info'|@translate}</label><input type="text" name="UserAdvManager_ConfirmMail_Delay" value="{$UserAdvManager_CONFIRMMAIL_DELAY}" size="5" style="text-align: center;"><br><br>
+		</li>
+    
+    <li><label>{'UserAdvManager_ConfirmMail_Remail'|@translate}</label><br>
+    	<input type="radio" value="true" {$UserAdvManager_CONFIRMMAIL_REMAIL_TRUE} name="UserAdvManager_ConfirmMail_Remail"> {'UserAdvManager_ConfirmMail_Remail_true'|@translate}<br>
+      <input type="radio" value="false" {$UserAdvManager_CONFIRMMAIL_REMAIL_FALSE} name="UserAdvManager_ConfirmMail_Remail"> {'UserAdvManager_ConfirmMail_Remail_false'|@translate}<br><br>
+    </li>
+    
+{if $UserAdvManager_CONFIRMMAIL_REMAIL_TRUE}
+  {if $UserAdvManager_ERROR_REPORTS1}
+		<li><label>{'UserAdvManager_ConfirmMail_ReMail_Txt1'|@translate}</label><br>
+		<textarea name="UserAdvManager_ConfirmMail_ReMail_Txt1" id="UserAdvManager_ConfirmMail_ReMail_Txt1" rows="10" cols="80" style="color: red" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_REMAIL_TXT1}</textarea><br><br>
+	  </li>
+  {else}
+		<li><label>{'UserAdvManager_ConfirmMail_ReMail_Txt1'|@translate}</label><br>
+		<textarea name="UserAdvManager_ConfirmMail_ReMail_Txt1" id="UserAdvManager_ConfirmMail_ReMail_Txt1" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_REMAIL_TXT1}</textarea><br><br>
+	  </li>
+  {/if}
+{else}
+		<li><label>{'UserAdvManager_ConfirmMail_ReMail_Txt1'|@translate}</label><br>
+		<textarea  name="UserAdvManager_ConfirmMail_ReMail_Txt1" id="UserAdvManager_ConfirmMail_ReMail_Txt1" rows="10" cols="80" readonly{$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_REMAIL_TXT1}</textarea><br><br>
+	  </li>
+{/if}
+
+{if $UserAdvManager_CONFIRMMAIL_REMAIL_TRUE}
+  {if $UserAdvManager_ERROR_REPORTS2}
+    <li><label>{'UserAdvManager_ConfirmMail_ReMail_Txt2'|@translate}</label><br>
+		<textarea name="UserAdvManager_ConfirmMail_ReMail_Txt2" id="UserAdvManager_ConfirmMail_ReMail_Txt2" rows="10" cols="80" style="color: red" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_REMAIL_TXT2}</textarea><br>
+	  </li>
+  {else}		
+    <li><label>{'UserAdvManager_ConfirmMail_ReMail_Txt2'|@translate}</label><br>
+		<textarea name="UserAdvManager_ConfirmMail_ReMail_Txt2" id="UserAdvManager_ConfirmMail_ReMail_Txt2" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_REMAIL_TXT2}</textarea><br>
+	  </li>
+  {/if}
+{else}
+    <li><label>{'UserAdvManager_ConfirmMail_ReMail_Txt2'|@translate}</label><br>
+		<textarea name="UserAdvManager_ConfirmMail_ReMail_Txt2" id="UserAdvManager_ConfirmMail_ReMail_Txt2" rows="10" cols="80" readonly {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_REMAIL_TXT2}</textarea><br>
+	  </li>
+{/if}
+    </ul>
+        <p><input class="submit" type="submit" value="{'submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}></p>
+  </fieldset>
+</form>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/ghosttracker.tpl
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/ghosttracker.tpl	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/ghosttracker.tpl	(revision 4552)
@@ -0,0 +1,63 @@
+﻿<div class="titrePage">
+  <h2>{'Title_Tab4'|@translate}</h2>
+</div>
+
+<form method="post" action="{$UserAdvManager_F_ACTION}" class="general">
+  <fieldset>
+  	<legend>{'GhostTracker_Title'|@translate}</legend>
+    <ul>
+		<li><label>{'UserAdvManager_GhostTracker_Init'|@translate}</label><br><br>
+
+<p>
+  <input class="submit" type="submit" value="{'GT_Reset'|@translate}" name="GhostTracker_Init" >
+</p>
+<br><br>
+
+		<li><label>{'UserAdvManager_GhostTracker_User_List'|@translate}</label><br><br>
+<div class="navigationBar">{$NAVBAR}</div>
+		<table class="table2" width="97%" summary="">
+  			<thead>
+    			<tr class="throw">
+      			<td>&nbsp;</td>
+      			<td>{'Username'|@translate}</td>
+      			<td>{'Email address'|@translate}</td>
+            <td>{'LastVisit_Date'|@translate}</td>
+            <td>{'Reminder'|@translate}</td>
+    			</tr>
+  			</thead>
+
+			{foreach from=$users item=user name=users_loop}
+  				<tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}">
+    			<td><input type="checkbox" name="selection[]" value="{$user.ID}" {$user.CHECKED} id="selection-{$user.ID}" ></td>
+    			<td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td>
+    			<td>{$user.EMAIL}</td>
+{if $user.REMINDER == l10n('Reminder_Sent_NOK')}
+          <td style="color:orange;text-align:center;">{$user.LASTVISIT}</td>
+          <td style="color:orange;text-align:center;">{$user.REMINDER}</td>
+{else $user.REMINDER == l10n('Reminder_Sent_OK')}
+          <td style="color:red;text-align:center;">{$user.LASTVISIT}</td>
+          <td style="color:red;text-align:center;">{$user.REMINDER}</td>
+{/if}
+    			{foreach from=$user.plugin_columns item=data}
+    			<td>{$data}</td>
+    			{/foreach}    			
+  			</tr>
+  		{/foreach}
+		</table>
+<div class="navigationBar">{$NAVBAR}</div>
+    	<br>
+	    </li>
+    </ul>
+
+<p>
+  {'target'|@translate}
+  <label><input type="radio" name="target" value="all" > {'all'|@translate}</label>
+  <label><input type="radio" name="target" value="selection" checked="checked" > {'selection'|@translate}</label>
+</p>
+
+<p>
+  <input class="submit" type="submit" value="{'Delete_selected'|@translate}" name="Del_Selected" >
+  <input class="submit" type="submit" value="{'Reminder_Email'|@translate}" name="Reminder_Email" >
+</p>
+  </fieldset>
+</form>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/global.tpl
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/global.tpl	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/global.tpl	(revision 4552)
@@ -0,0 +1,173 @@
+<div class="titrePage">
+  <h2>{'Title_Tab1'|@translate}</h2>
+</div>
+
+<form method="post" action="{$UserAdvManager_F_ACTION}" class="general">
+  <fieldset>
+  	<legend>{'UserAdvManager_Title1'|@translate}</legend>
+    <ul>
+    	<li><label>{'UserAdvManager_No_Casse'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_NO_CASSE_TRUE} name="UserAdvManager_No_Casse">{'UserAdvManager_No_Casse_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_NO_CASSE_FALSE} name="UserAdvManager_No_Casse">{'UserAdvManager_No_Casse_false'|@translate}<br>
+    	<br>
+   		</li>
+    	<li><label>{'UserAdvManager_Username_Char'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_USERNAME_CHAR_TRUE} name="UserAdvManager_Username_Char">{'UserAdvManager_Username_Char_true'|@translate}
+        <input type="text" name="UserAdvManager_Username_List" value="{$UserAdvManager_USERNAME_CHAR_LIST}" size="20" style="text-align: center;"><br>
+        <input type="radio" value="false" {$UserAdvManager_USERNAME_CHAR_FALSE} name="UserAdvManager_Username_Char">{'UserAdvManager_Username_Char_false'|@translate}<br><br>
+    	</li>
+      
+    	<li><label>{'UserAdvManager_Password_Enforced'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_PASSWORDENF_TRUE} name="UserAdvManager_Password_Enforced">{'UserAdvManager_Password_Enforced_true'|@translate}
+        <input type="text" name="UserAdvManager_Password_Score" value="{$UserAdvManager_PASSWORD_SCORE}" size="5" style="text-align: center;"><br><br>
+
+{if $UserAdvManager_PASSWORDENF_TRUE}        
+        <label>{'UserAdvManager_Password_Enforced_Info'|@translate}</label><br><br>
+        {'UserAdvManager_PasswordTest'|@translate}<input type="text" name="UserAdvManager_Password_Test" value="{$UserAdvManager_PASSWORD_TEST}" size="50" style="text-align: left;">&nbsp;&nbsp;&nbsp;
+        <input class="submit" type="submit" value="{'PasswordTest'|@translate}" name="PasswordTest" >&nbsp;&nbsp;&nbsp;
+        {'UserAdvManager_ScoreTest'|@translate}{$UserAdvManager_PASSWORD_TEST_SCORE}<br><br>
+{/if}        
+        <input type="radio" value="false" {$UserAdvManager_PASSWORDENF_FALSE} name="UserAdvManager_Password_Enforced">{'UserAdvManager_Password_Enforced_false'|@translate}<br><br>
+    	</li>
+
+        <li><label>{'UserAdvManager_AdminPassword_Enforced'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_ADMINPASSWENF_TRUE} name="UserAdvManager_AdminPassword_Enforced">{'UserAdvManager_AdminPassword_Enforced_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_ADMINPASSWENF_FALSE} name="UserAdvManager_AdminPassword_Enforced">{'UserAdvManager_AdminPassword_Enforced_false'|@translate}<br><br>
+
+    	<li><label>{'UserAdvManager_No_Comment_Anonymous'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_NO_COMMENT_ANO_TRUE} name="UserAdvManager_No_Comment_Anonymous">{'UserAdvManager_No_Comment_Anonymous_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_NO_COMMENT_ANO_FALSE} name="UserAdvManager_No_Comment_Anonymous">{'UserAdvManager_No_Comment_Anonymous_false'|@translate}<br><br>
+    	</li>
+      
+    	<li><label>{'UserAdvManager_MailExclusion'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_MAILEXCLUSION_TRUE} name="UserAdvManager_MailExclusion">{'UserAdvManager_MailExclusion_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_MAILEXCLUSION_FALSE} name="UserAdvManager_MailExclusion">{'UserAdvManager_MailExclusion_false'|@translate}<br><br>
+    	</li>
+
+{if $UserAdvManager_MAILEXCLUSION_TRUE}
+  {if $UserAdvManager_ERROR_REPORTS4}     
+    	<li><label>{'UserAdvManager_MailExclusion_List'|@translate}</label><br>
+        <textarea name="UserAdvManager_MailExclusion_List" id="UserAdvManager_MailExclusion_List" rows="3" cols="80" style="color: red" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILEXCLUSION_LIST}</textarea><br><br>
+    	</li>
+  {else}
+    	<li><label>{'UserAdvManager_MailExclusion_List'|@translate}</label><br>
+        <textarea name="UserAdvManager_MailExclusion_List" id="UserAdvManager_MailExclusion_List" rows="3" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILEXCLUSION_LIST}</textarea><br><br>
+    	</li>
+  {/if}
+{else}
+    	<li><label>{'UserAdvManager_MailExclusion_List'|@translate}</label><br>
+        <textarea name="UserAdvManager_MailExclusion_List" id="UserAdvManager_MailExclusion_List" rows="3" cols="80" readonly {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILEXCLUSION_LIST}</textarea><br><br>
+    	</li>
+{/if}
+
+    	<li><label>{'UserAdvManager_GhostTracker'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_GHOSTRACKER_TRUE} name="UserAdvManager_GhostUser_Tracker">{'UserAdvManager_GhostTracker_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_GHOSTRACKER_FALSE} name="UserAdvManager_GhostUser_Tracker">{'UserAdvManager_GhostTracker_false'|@translate}<br><br>
+    	</li>
+{if $UserAdvManager_GHOSTRACKER_TRUE}
+    	<br>
+			<div style="text-align: left; color: green;"><b>{'UserAdvManager_GhostTracker_Notice'|@translate}</b></div>
+			<br>
+{/if}
+    	<li><label>{'UserAdvManager_GhostTracker_DayLimit'|@translate}</label><br>
+        <input type="text" name="UserAdvManager_GhostTracker_DayLimit" value="{$UserAdvManager_GHOSTRACKER_DAYLIMIT}" size="5" style="text-align: center;"><br><br>
+      </li>
+      
+{if $UserAdvManager_GHOSTRACKER_TRUE}
+  {if $UserAdvManager_ERROR_REPORTS3}
+    	<li><label>{'UserAdvManager_GhostTracker_ReminderText'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_GhostTracker_ReminderText" id="UserAdvManager_GhostTracker_ReminderText" rows="10" cols="80" style="color: red" {$TAG_INPUT_ENABLED}>{$UserAdvManager_GHOSTRACKER_REMINDERTEXT}</textarea><br><br>
+    	</li>
+  {else}
+    	<li><label>{'UserAdvManager_GhostTracker_ReminderText'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_GhostTracker_ReminderText" id="UserAdvManager_GhostTracker_ReminderText" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_GHOSTRACKER_REMINDERTEXT}</textarea><br><br>
+    	</li>
+  {/if}
+{else}
+    	<li><label>{'UserAdvManager_GhostTracker_ReminderText'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_GhostTracker_ReminderText" id="UserAdvManager_GhostTracker_ReminderText" rows="10" cols="80" readonly {$TAG_INPUT_ENABLED}>{$UserAdvManager_GHOSTRACKER_REMINDERTEXT}</textarea><br><br>
+    	</li>
+{/if}
+
+    	<li><label>{'UserAdvManager_Add_LastVisit_Column'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_ADDLASTVISIT_TRUE} name="UserAdvManager_Add_LastVisit_Column">{'UserAdvManager_Add_LastVisit_Column_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_ADDLASTVISIT_FALSE} name="UserAdvManager_Add_LastVisit_Column">{'UserAdvManager_Add_LastVisit_Column_false'|@translate}<br><br>
+    	</li>
+    </ul>
+    
+  	<p><input class="submit" type="submit" value="{'submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED} >&nbsp;<input class="submit" type="submit" value="{'audit'|@translate}" name="audit"></p>
+  </fieldset>
+
+    <fieldset>
+    <legend>{'UserAdvManager_Title2'|@translate}</legend>
+    <ul>
+    	<li><label>{'UserAdvManager_Mail_Info'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_MAIL_INFO_TRUE} name="UserAdvManager_Mail_Info">{'UserAdvManager_Mail_Info_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_MAIL_INFO_FALSE} name="UserAdvManager_Mail_Info">{'UserAdvManager_Mail_Info_false'|@translate}<br><br>
+    	</li>
+
+{if $UserAdvManager_MAIL_INFO_TRUE}
+  {if $UserAdvManager_ERROR_REPORTS1}      
+    	<li><label>{'UserAdvManager_MailInfo_Text'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_MailInfo_Text" id="UserAdvManager_MailInfo_Text" rows="10" cols="80" style="color: red"  {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILINFO_TEXT}</textarea><br><br>
+    	</li>
+  {else}
+    	<li><label>{'UserAdvManager_MailInfo_Text'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_MailInfo_Text" id="UserAdvManager_MailInfo_Text" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILINFO_TEXT}</textarea><br><br>
+    	</li>
+  {/if}
+{else}
+    	<li><label>{'UserAdvManager_MailInfo_Text'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_MailInfo_Text" id="UserAdvManager_MailInfo_Text" rows="10" cols="80" readonly {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILINFO_TEXT}</textarea><br><br>
+    	</li>
+{/if}
+
+    	<li><label>{'UserAdvManager_Confirm_Mail'|@translate}</label><br>
+        <input type="radio" value="true" {$UserAdvManager_CONFIRM_MAIL_TRUE} name="UserAdvManager_Confirm_Mail">{'UserAdvManager_Confirm_Mail_true'|@translate}<br>
+        <input type="radio" value="false" {$UserAdvManager_CONFIRM_MAIL_FALSE} name="UserAdvManager_Confirm_Mail">{'UserAdvManager_Confirm_Mail_false'|@translate}<br><br>
+    	</li>
+
+{if $UserAdvManager_CONFIRM_MAIL_TRUE}
+  {if $UserAdvManager_ERROR_REPORTS2}     
+    	<li><label>{'UserAdvManager_ConfirmMail_Text'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_ConfirmMail_Text" id="UserAdvManager_ConfirmMail_Text" rows="10" cols="80" style="color: red" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_TEXT}</textarea><br><br>
+    	</li>
+  {else}
+    	<li><label>{'UserAdvManager_ConfirmMail_Text'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_ConfirmMail_Text" id="UserAdvManager_ConfirmMail_Text" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_TEXT}</textarea><br><br>
+    	</li>
+  {/if}
+{else}
+    	<li><label>{'UserAdvManager_ConfirmMail_Text'|@translate}</label><br><br>
+        <textarea name="UserAdvManager_ConfirmMail_Text" id="UserAdvManager_ConfirmMail_Text" rows="10" cols="80" readonly {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_TEXT}</textarea><br><br>
+    	</li>
+{/if}
+
+    	<br>
+			<div style="text-align: center; font-size: 1.1em; color: red;"><b>{'UserAdvManager_Confirm_Group_Notice'|@translate}</b></div>
+			<br>
+      
+    	<li><label>{'UserAdvManager_No_Confirm_Group'|@translate}</label><br>
+		{html_options name="UserAdvManager_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected}<br><br>
+    	</li>
+      
+    	<li><label>{'UserAdvManager_Validated_Group'|@translate}</label><br>
+		{html_options name="UserAdvManager_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected}<br><br>
+    	</li>
+      
+    	<br>
+			<div style="text-align: center; font-size: 1.1em; color: red;"><b>{'UserAdvManager_Confirm_Status_Notice'|@translate}</b></div>
+			<br>
+      
+    	<li><label>{'UserAdvManager_No_Confirm_Status'|@translate}</label><br>
+		{html_options name="UserAdvManager_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected}<br><br>
+    	</li>
+      
+    	<li><label>{'UserAdvManager_Validated_Status'|@translate}</label><br>
+		{html_options name="UserAdvManager_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected}<br><br>
+    	</li>
+    </ul>
+    
+  	<p><input class="submit" type="submit" value="{'submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED} >&nbsp;<input class="submit" type="submit" value="{'audit'|@translate}" name="audit"></p>
+  </fieldset>
+</form>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/userlist.tpl
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/userlist.tpl	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/userlist.tpl	(revision 4552)
@@ -0,0 +1,46 @@
+﻿<div class="titrePage">
+  <h2>{'Title_Tab5'|@translate}</h2>
+</div>
+
+<form method="post" action="{$UserAdvManager_F_ACTION}" class="general">
+  <fieldset>
+  	<legend>{'UserList_Title'|@translate}</legend>
+    <ul>
+		<li><label>{'UserAdvManager_User_List'|@translate}</label><br><br>
+<div class="navigationBar">{$NAVBAR}</div>
+		<table class="table2" width="97%" summary="">
+  			<thead>
+    			<tr class="throw">
+      			<td>{'Username'|@translate}</td>
+      			<td>{'Email address'|@translate}</td>
+            <td>{'LastVisit_Date'|@translate}</td>
+            <td>{'Nb_Days'|@translate}</td>
+    			</tr>
+  			</thead>
+
+			{foreach from=$users item=user name=users_loop}
+  				<tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}">
+    			<td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td>
+    			<td>{$user.EMAIL}</td>
+          <td style="text-align:center;">{$user.LASTVISIT}</td>
+{if $user.DISPLAY == 'green'}
+          <td style="color:lime;text-align:center;">{$user.DAYS}</td>
+{elseif $user.DISPLAY == 'orange'}
+          <td style="color:orange;text-align:center;">{$user.DAYS}</td>
+{elseif $user.DISPLAY == 'red'}
+          <td style="color:red;text-align:center;">{$user.DAYS}</td>
+{else}
+          <td style="text-align:center;">{$user.DAYS}</td>
+{/if}
+    			{foreach from=$user.plugin_columns item=data}
+    			<td>{$data}</td>
+    			{/foreach}    			
+  			</tr>
+  		{/foreach}
+		</table>
+<div class="navigationBar">{$NAVBAR}</div>
+    	<br>
+	    </li>
+    </ul>
+  </fieldset>
+</form>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/admin/usermanager.tpl
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/admin/usermanager.tpl	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/admin/usermanager.tpl	(revision 4552)
@@ -0,0 +1,58 @@
+﻿<div class="titrePage">
+  <h2>{'Title_Tab3'|@translate}</h2>
+</div>
+
+<form method="post" action="{$UserAdvManager_F_ACTION}" class="general">
+  <fieldset>
+  	<legend>{'UserManager_Title'|@translate}</legend>
+    <ul>
+		<li><label>{'UserAdvManager_ConfirmMail_User_List'|@translate}</label><br>
+      <br>
+<div class="navigationBar">{$NAVBAR}</div>
+		<table class="table2" width="97%" summary="">
+  			<thead>
+    			<tr class="throw">
+      			<td>&nbsp;</td>
+      			<td>{'Username'|@translate}</td>
+      			<td>{'user_status'|@translate}</td>
+      			<td>{'Email address'|@translate}</td>
+      			<td>{'Groups'|@translate}</td>
+      			<td>{'Registration_Date'|@translate}</td>
+            <td>{'Reminder'|@translate}</td>
+    			</tr>
+  			</thead>
+
+			{foreach from=$users item=user name=users_loop}
+  				<tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}">
+    			<td><input type="checkbox" name="selection[]" value="{$user.ID}" {$user.CHECKED} id="selection-{$user.ID}" ></td>
+    			<td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td>
+    			<td>{$user.STATUS}</td>
+    			<td>{$user.EMAIL}</td>
+    			<td>{$user.GROUPS}</td>
+					<td {if $user.EXPIRATION == True}style="color:red;text-align:center;"{else}style="color:lime;text-align:center;"{/if}>{$user.REGISTRATION}</td>
+          <td style="text-align:center;">{$user.REMINDER}</td>
+    			{foreach from=$user.plugin_columns item=data}
+    			<td>{$data}</td>
+    			{/foreach}    			
+  			</tr>
+  		{/foreach}
+		</table>
+<div class="navigationBar">{$NAVBAR}</div>
+    	<br>
+	    </li>
+    </ul>
+
+<p>
+  {'target'|@translate}
+  <label><input type="radio" name="target" value="all" > {'all'|@translate}</label>
+  <label><input type="radio" name="target" value="selection" checked="checked" > {'selection'|@translate}</label>
+</p>
+
+<p>
+  <input class="submit" type="submit" value="{'Delete_selected'|@translate}" name="Del_Selected">
+  <input class="submit" type="submit" value="{'Mail_without_key'|@translate}" name="Mail_Without_Key">
+  <input class="submit" type="submit" value="{'Mail_with_key'|@translate}" name="Mail_With_Key">
+  <input class="submit" type="submit" value="{'Force_Validation'|@translate}" name="Force_Validation">
+</p>
+  </fieldset>
+</form>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/changelog.txt.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/changelog.txt.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/changelog.txt.php	(revision 4552)
@@ -0,0 +1,125 @@
+<?php
+/*
+Plugin Name: NBC_UserAdvManager
+** Change log **
+***** Plugin history (branch 2.10)*****
+
+-- 2.10.0-beta : Initial beta release for Piwigo compatibility
+-- 2.10.1-beta : Small correction on generated path
+-- 2.10.2-beta : Bug resolved on register validation page
+
+-- 2.10.3 : Final and fully functional release
+						Bug resolved on plugin activation
+
+-- 2.10.4 : Bug fixed on profiles update
+
+-- 2.10.5 : Improved code on profiles update
+
+-- 2.10.6 : Old language packs (iso) deleted (forget from PWG 1.7.x version)
+
+-- 2.10.7 : Bug fixed on user's validation email sending
+
+-- 2.10.8 : ConfirmMail page looks better (Sylvia theme only)
+						Improved code for checking author on guest comments
+
+-- 2.10.9 : Bug fixed - Missing english translation
+						Bug fixed - Notice on forbidden characters function use
+						Bug fixed - Audit on forbidden characters in username didn't work
+						Adding of email provider exclusion (like *@hotmail.com) - Warning ! -> Known bug : This feature doesn't work on user profile page. So, already registered users can change their email address to a forbiden one.
+
+-- 2.10.9a : Email provider exclusion is no longer case sensitive
+
+-- 2.10.9b : Bug fixed - Home icon wasn't linked to gallery url in ConfirmMail page. If GALLERY_URL is not set, Home icon gets the pwg root path.
+
+-- 2.10.9c : Bug fixed - If Email provider exclusion is set off, new registered user will have a PHP notice on "Undefined variable: ncsemail"
+
+-- 2.10.9d : Code simplification - need no more ""template"" sub-directory in plugin directory for enhance "back link" icon in ConfirMail.tpl
+
+-- 2.10.9e : Compatibility improvement with PHP 5.3 - Some old functions will be deprecated like :
+							ereg replaced by preg_match
+							eregi replace by preg_match with "i" moderator
+							split replace by preg_split
+				
+-- 2.10.9f : Compatibility bug fixed when used with DynamicRecentPeriod plugin
+
+
+***** Plugin history (branch 2.11)***** 
+
+-- 2.11.0 : New tabsheet menu to manage ConfirMail functions (setting a timeout without validation, Cleanup expired user's accounts, Force confirmation, Renew validation key, list unvalidated users,...)
+						Beautify plugin's main admin panel
+						
+-- 2.11.1 : Bug fixed with install and upgrade functions
+						Language files correction
+
+-- 2.11.2 : Bug fixed on bad query for unvalidated users display in unvalidated users list
+						Bug fixed : Sql syntax error on plugin activation
+
+-- 2.11.3 : On Patricia's request (french forum and bug 1173), the unvalidated users management tab shows users according with the settings of unvalidated group and / or unvalidated status.
+						Feature 1172 added : Email providers exclusion list can be set with CR/LF between each entry. The comma seperator (,) is still mandatory.
+						Bug 1175 fixed : Bad translation tag in french language file.
+						Improvement of unvalidated users management tab (feature 1174)- Expired users are displayed in red color text.
+
+-- 2.11.4 : Bug 1177 fixed : Width of excluded email providers list reset to ancient value (80 col)
+						Bug 1179 fixed : Adding a notice in plugin inline documentation for use of validation groups and status. A default group must be set in Piwigo's groups settings and the "Guest" (or another user) must be set as default for status values.
+						Bug 1182 fixed : Language tag missing in confirmation email generation 
+
+-- 2.11.5 : Bug 1195 fixed : Registration displays the good title
+
+
+***** Plugin history (branch 2.12)*****
+
+-- 2.12.0 : Bug 1206 fixed : All plugin functionnalities work in user's profile page
+            Plugin's core code and admin panel refactoring
+            Password control and enforcement : A complexity score is computed on user registration. If this score is less than the goal set by admin, the password choosen is rejected.
+            Feature 1194 "Ghost Tracker" added : New plugin tab displays users who don't comes back to the gallery since x days. Ability to send email reminders and to delete reminded but "dead" users. It's the reason why this feature is called "Ghost Tracker".
+
+-- 2.12.1 : Rollback on admin panel improvement (it was a bad idea)
+
+-- 2.12.2 : Bug 1221 fixed - Adding of a new funtion to populate the lastvisit table on Ghost Tracker activation
+            Bug 1224 fixed - Error in database after plugin activation
+            Bug 1225 fixed - "Reminder" status don't change from "false" to "true" after the sent of a reminder email
+            Some code beautify (SQL requests and HTML 4 strict for tpl)
+
+-- 2.12.3 : Bug 1226 fixed - "duplicate key error" when lastvisit table is not empty and on using Ghost Tracker init function
+
+-- 2.12.4 : Adding a password field control for SendMail2User - Neighborhood plugin compatibility improvement 
+            Bug 1229 fixed - Email was no longer mandatory when plugin was active, even if Piwigo's email madatory option was set. 
+
+-- 2.12.5 : Bug 1233 fixed -  "duplicate key error" when a user wants to register with an existing username. In fact, all standard Piwigo's register controls didn't work when plugin was activated. That fixes this too.
+            Adding DE, ES and IT languages. All translations are not finalized and could be improved.
+            Adding of description.txt file in language directories.
+
+-- 2.12.6 : Bug 1236 fixed -  Admins was unable to add a new user in the user_list page.
+            Beginning of IT translations
+            
+-- 2.12.7 : Bug 1238 fixed - Simple custom email text wasn't send when Extended Description plugin wasn't set
+            Bug 1245 fixed - Semicolons (;) are no longer allowed in text areas (mail info text, ConfirmMail text, reminder text,...). They'll be replaced by dots (.).
+            Bug 1248 fixed - Php notice on user registration with a forbidden email domain
+            Bug 1250 fixed - Email provider didn't work after the third exclusion in list
+            Escaping all special characters typed in login name and recover them
+
+
+***** Plugin history (branch 2.13)*****
+ 
+-- 2.13.0 : Bug 1246 fixed - Extended Description tags are working again ! Caution : The language used and saved in database is the one configured by default in the visitor's browser and not the language given by Language Switch.
+            Evolution 1239 - New option to add a new tab that shows the number of days since their last visit for each registered user.
+            Bug 1257 fixed - If email exclusion list begins with a CR-LF, an informative warning message is displayed (I was unable to delete automatically this CR-LF).
+            Bug 1259 fixed - PHP notice on user addition by admin in user_list page.
+            Bug 1260 fixed - Username case sensitivity is now fully functionnal in all users entries (user registration and admin panel)
+            Evolution 1273 - Adding of reminder field in advanced user management tab. This allows to see if a reminder have already been send.
+            Evolution 1292 - Adding of navigation bar in tabs where users are listed (when more than 1 page is needed to display users).
+            Code refactory and improvements.
+            Translations improvements.
+
+-- 2.13.1 : Bug 1302 fixed - Re-coded double email check on registration.
+            Bug 1304 fixed - Adding of plugin version in plugin admin panel title.
+
+-- 2.13.2 : Bug 1308 fixed - Reminder emails have the good translated subject.
+
+-- 2.13.3 : Bug 1309 fixed - Forbidden characters in login name work fine again.
+            Bug 1340 fixed - Explanation improvement for option "Nickname is mandatory for comments" 
+            Bug 1342 fixed - Calculation between last visit and today is ok and displays the good color in user list.
+            Italian language improvement (thx to Rio)
+
+*/
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/include/constants.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/include/constants.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/include/constants.php	(revision 4552)
@@ -0,0 +1,5 @@
+<?php
+global $prefixeTable;
+define('USER_CONFIRM_MAIL_TABLE', $prefixeTable.'user_confirm_mail');
+define('USER_LASTVISIT_TABLE', $prefixeTable.'user_lastvisit_check');
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/include/functions_UserAdvManager.inc.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/include/functions_UserAdvManager.inc.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/include/functions_UserAdvManager.inc.php	(revision 4552)
@@ -0,0 +1,1049 @@
+<?php
+include_once (NBC_UserAdvManager_PATH.'include/constants.php');
+load_language('plugin.lang', NBC_UserAdvManager_PATH);
+
+/* Function called from main.inc.php to send validation email */
+function SendMail2User($typemail, $id, $username, $password, $email, $confirm)
+{
+  global $conf;
+  load_language('plugin.lang', NBC_UserAdvManager_PATH);
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  
+	include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
+  
+	$infos1_perso = "";
+  $infos2_perso = "";
+
+/* We have to get the user's language in database */
+  $query ='
+SELECT user_id, language
+FROM '.USER_INFOS_TABLE.'
+WHERE user_id = '.$id.'
+;';
+  $data = mysql_fetch_assoc(pwg_query($query));
+  $language = $data['language'];
+/* And switch gallery to this language before using personalized and multilangual contents */
+  switch_lang_to($data['language']);
+
+  switch($typemail)
+  {
+    case 1:
+      $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Add of %s', stripslashes($username)));
+      $password = $password <> '' ? $password : l10n('UserAdvManager_empty_pwd');
+      
+      if (isset($conf_nbc_UserAdvManager[10]) and $conf_nbc_UserAdvManager[10] <> '')
+      {
+        if (function_exists('get_user_language_desc'))
+        {
+          $infos1_perso = get_user_language_desc($conf_nbc_UserAdvManager[10])."\n\n";
+        }
+        else $infos1_perso = l10n($conf_nbc_UserAdvManager[10])."\n\n"; 
+      }
+      
+      break;
+      
+    case 2:
+      $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Update of %s', stripslashes($username)));
+      $password = $password <> '' ? $password : l10n('UserAdvManager_empty_pwd');
+
+      break;
+        
+    case 3:
+      $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Update of %s', stripslashes($username)));
+      $password = $password <> '' ? $password : l10n('UserAdvManager_no_update_pwd');
+
+      break;
+  }
+
+  if (isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true')
+  {
+    $infos1 = array(
+      get_l10n_args('infos_mail %s', stripslashes($username)),
+      get_l10n_args('User: %s', stripslashes($username)),
+      get_l10n_args('Password: %s', $password),
+      get_l10n_args('Email: %s', $email),
+      get_l10n_args('', ''),
+    );
+  }
+
+
+  if ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true' and $confirm)
+  {
+    $infos2 = array
+    (
+      get_l10n_args('Link: %s', AddConfirmMail($id, $email)),
+      get_l10n_args('', ''),
+    );
+
+    if (isset($conf_nbc_UserAdvManager[11]) and $conf_nbc_UserAdvManager[11] <> '')
+    {
+      if (function_exists('get_user_language_desc'))
+      {
+        $infos2_perso = get_user_language_desc($conf_nbc_UserAdvManager[11])."\n\n";
+      }
+      else $infos2_perso = l10n($conf_nbc_UserAdvManager[11])."\n\n";
+    }
+  }
+
+/* Sending the email with subject and contents */
+  pwg_mail($email, array(
+    'subject' => $subject,
+    'content' => (isset($infos1) ? $infos1_perso.l10n_args($infos1)."\n\n" : "").(isset($infos2) ? $infos2_perso.l10n_args($infos2)."\n\n" : "").get_absolute_root_url(),
+  ));
+
+/* Switching back to default language */
+switch_lang_back();
+
+/* ********************** */
+/* Email sending debugger */
+/* This is only to trace  */
+/* the send of emails for */
+/* debugging              */
+/* ********************** */  
+//  MailLog($email,$subject, $content);
+/* ********************** */
+}
+
+
+/* Email sending debugger function */
+//function MailLog  ($to, $subject, $content)
+//{
+//   $fo=fopen (NBC_UserAdvManager_PATH.'admin/maillog.txt','a') ;
+//   fwrite($fo,"======================\n") ;
+//   fwrite($fo,'le ' . date('D, d M Y H:i:s') . "\r\n");
+//   fwrite($fo,$to . "\n" . $subject . "\r\n") ;
+//   fwrite($fo, "\n" . $content . "\r\n") ;
+   //fwrite($fo, 'Langue : '."\n" . $language . "\r\n") ;
+//   fclose($fo) ;
+   //return mail ($to,$subject) ;
+//}
+
+
+/* Function called from UserAdvManager_admin.php to resend validation email with or without new validation key */
+function ResendMail2User($typemail, $user_id, $username, $email, $confirm)
+{
+  global $conf;
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+	$conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
+  
+	include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
+  
+	$infos1_perso = "";
+  $infos2_perso = "";
+  
+/* We have to get the user's language in database */
+  $query ='
+SELECT user_id, language
+FROM '.USER_INFOS_TABLE.'
+WHERE user_id = '.$user_id.'
+;';
+  $data = mysql_fetch_assoc(pwg_query($query));
+  $language = $data['language'];
+/* And switch gallery to this language before using personalized and multilangual contents */
+  switch_lang_to($data['language']);
+
+  switch($typemail)
+  {
+    case 1:
+      $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Reminder_with_key_of_%s', $username));
+      
+      if (isset($conf_nbc_UserAdvManager_ConfirmMail[2]) and $conf_nbc_UserAdvManager_ConfirmMail[2] <> '' and isset($conf_nbc_UserAdvManager_ConfirmMail[3]) and $conf_nbc_UserAdvManager_ConfirmMail[3] == 'true' and $confirm)
+      {
+        if (function_exists('get_user_language_desc'))
+        {
+          $infos1 = get_user_language_desc($conf_nbc_UserAdvManager_ConfirmMail[2])."\n\n";
+        }
+				else $infos1 = l10n($conf_nbc_UserAdvManager_ConfirmMail[2])."\n\n";
+
+        $infos2 = array
+        (
+          get_l10n_args('Link: %s', ResetConfirmMail($user_id)),
+          get_l10n_args('', ''),
+        );        
+			}
+
+/* Set reminder true */      
+      $query = "
+UPDATE ".USER_CONFIRM_MAIL_TABLE."
+SET reminder = 'true'
+WHERE user_id = '".$user_id."'
+;";
+      pwg_query($query);
+      
+		break;
+      
+    case 2:
+      $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Reminder_without_key_of_%s',$username));
+      
+      if (isset($conf_nbc_UserAdvManager_ConfirmMail[2]) and $conf_nbc_UserAdvManager_ConfirmMail[2] <> '' and isset($conf_nbc_UserAdvManager_ConfirmMail[3]) and $conf_nbc_UserAdvManager_ConfirmMail[3] == 'true' and !$confirm)
+      {
+        if (function_exists('get_user_language_desc'))
+        {
+          $infos1 = get_user_language_desc($conf_nbc_UserAdvManager_ConfirmMail[2])."\n\n";
+        }
+        else $infos1 = l10n($conf_nbc_UserAdvManager_ConfirmMail[2])."\n\n";
+      }
+      
+/* Set reminder true */      
+      $query = "
+UPDATE ".USER_CONFIRM_MAIL_TABLE."
+SET reminder = 'true'
+WHERE user_id = '".$user_id."'
+;";
+      pwg_query($query);
+      
+    break;
+	}
+  
+  pwg_mail($email, array(
+    'subject' => $subject,
+    'content' => ($infos1."\n\n").(isset($infos2) ? l10n_args($infos2)."\n\n" : "").get_absolute_root_url(),
+  ));
+
+/* Switching back to default language */
+switch_lang_back();
+/* ********************** */
+/* Email sending debugger */
+/* This is only to trace  */
+/* the send of emails for */
+/* debugging              */
+/* ********************** */  
+//  MailLog($email,$subject);
+/* ********************** */
+}
+
+
+/* Function called from UserAdvManager_admin.php to send a reminder mail for ghost users */
+function ghostreminder($user_id, $username, $email)
+{
+  global $conf;
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  
+	include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
+  
+	$infos1_perso = "";
+
+/* We have to get the user's language in database */
+  $query ='
+SELECT user_id, language
+FROM '.USER_INFOS_TABLE.'
+WHERE user_id = '.$user_id.'
+;';
+  $data = mysql_fetch_assoc(pwg_query($query));
+  $language = $data['language'];
+/* And switch gallery to this language before using personalized and multilangual contents */
+  switch_lang_to($data['language']);
+
+  $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Ghost_remainder_of_%s', $username));
+      
+  if (isset($conf_nbc_UserAdvManager[19]) and $conf_nbc_UserAdvManager[19] <> '' and isset($conf_nbc_UserAdvManager[17]) and $conf_nbc_UserAdvManager[17] == 'true')
+  {
+    if (function_exists('get_user_language_desc'))
+    {
+      $infos1 = get_user_language_desc($conf_nbc_UserAdvManager[19])."\n\n";
+    }
+    else $infos1 = l10n($conf_nbc_UserAdvManager[19])."\n\n";
+    
+    resetlastvisit($user_id);
+  }
+
+  pwg_mail($email, array(
+    'subject' => $subject,
+    'content' => $infos1.get_absolute_root_url(),
+  ));
+
+/* Switching back to default language */
+switch_lang_back();
+/* ********************** */
+/* Email sending debugger */
+/* This is only to trace  */
+/* the send of emails for */
+/* debugging              */
+/* ********************** */  
+//  MailLog($email,$subject);
+/* ********************** */
+}
+
+
+/* Function called from functions AddConfirmMail and ResetConfirmMail for validation key generation */
+function FindAvailableConfirmMailID()
+{
+  while (true)
+  {
+    $id = generate_key(16);
+    $query = "
+SELECT COUNT(*)
+  FROM ".USER_CONFIRM_MAIL_TABLE."
+WHERE id = '".$id."'
+;";
+    list($count) = mysql_fetch_row(pwg_query($query));
+
+    if ($count == 0)
+      return $id;
+  }
+}
+
+
+/* Function called from functions SendMail2User to process unvalidated users and generate validation key link */
+function AddConfirmMail($user_id, $email)
+{
+  global $conf;
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  $Confirm_Mail_ID = FindAvailableConfirmMailID();
+
+  list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+  
+  if (isset($Confirm_Mail_ID))
+  {
+    $query = "
+SELECT status
+  FROM ".USER_INFOS_TABLE."
+WHERE user_id = '".$user_id."'
+;";
+    list($status) = mysql_fetch_row(pwg_query($query));
+    
+    $query = "
+INSERT INTO ".USER_CONFIRM_MAIL_TABLE."
+  (id, user_id, mail_address, status, date_check)
+VALUES
+  ('".$Confirm_Mail_ID."', '".$user_id."', '".$email."', '".$status."', null)
+;";
+    pwg_query($query);
+
+    $query = "
+DELETE FROM ".USER_GROUP_TABLE."
+WHERE user_id = '".$user_id."'
+  AND (
+    group_id = '".$conf_nbc_UserAdvManager[3]."'
+  OR 
+    group_id = '".$conf_nbc_UserAdvManager[4]."'
+  )
+;";
+    pwg_query($query);
+
+    if (!is_admin() and $conf_nbc_UserAdvManager[9] <> -1)
+    {
+      $query = "
+UPDATE ".USER_INFOS_TABLE."
+SET status = '".$conf_nbc_UserAdvManager[9]."'
+WHERE user_id = '".$user_id."'
+;";
+      pwg_query($query);
+    }
+
+    if ( $conf_nbc_UserAdvManager[3] <> -1 )
+    {
+      $query = "
+INSERT INTO ".USER_GROUP_TABLE."
+  (user_id, group_id)
+VALUES
+  ('".$user_id."', '".$conf_nbc_UserAdvManager[3]."')
+;";
+      pwg_query($query);
+    }
+    
+    return get_absolute_root_url().NBC_UserAdvManager_PATH.'ConfirmMail.php?key='.$Confirm_Mail_ID;
+  }
+}
+
+
+/* Function called from UserAdvManager_admin.php to reset validation key */
+function ResetConfirmMail($user_id)
+{
+  global $conf;
+  
+  $Confirm_Mail_ID = FindAvailableConfirmMailID();
+
+  list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+  
+  if (isset($Confirm_Mail_ID))
+  { 
+    $query = "
+UPDATE ".USER_CONFIRM_MAIL_TABLE."
+SET id = '".$Confirm_Mail_ID."'
+WHERE user_id = '".$user_id."'
+;";
+    pwg_query($query);
+
+		$query = "
+UPDATE ".USER_INFOS_TABLE."
+SET registration_date = '".$dbnow."'
+WHERE user_id = '".$user_id."'
+;";
+		pwg_query($query);
+    
+    return get_absolute_root_url().NBC_UserAdvManager_PATH.'ConfirmMail.php?key='.$Confirm_Mail_ID;
+  }
+}
+
+
+/* Function called from function_UserAdvManager.inc.php to reset last visit date after sending a reminder */
+function resetlastvisit($user_id)
+{
+  global $conf;
+
+  list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+
+  $query = "
+UPDATE ".USER_LASTVISIT_TABLE."
+SET lastvisit = '".$dbnow."', reminder = 'true'
+WHERE user_id = '".$user_id."'
+;";
+  pwg_query($query);
+}
+
+
+/* Function called from main.inc.php - Triggered on user deletion */
+function DeleteConfirmMail($user_id)
+{
+  $query = "
+DELETE FROM ".USER_CONFIRM_MAIL_TABLE."
+WHERE user_id = '".$user_id."'
+;";
+  pwg_query($query);
+}
+
+/* Function called from main.inc.php - Triggered on user deletion */
+function DeleteLastVisit($user_id)
+{
+  $query = "
+DELETE FROM ".USER_LASTVISIT_TABLE."
+WHERE user_id = '".$user_id."'
+;";
+  pwg_query($query);
+}
+
+/* Function called from ConfirmMail.php to verify validation key used by user according time limit */
+function VerifyConfirmMail($id)
+{
+  global $conf;
+
+  include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
+
+  $query = "
+SELECT COUNT(*)
+FROM ".USER_CONFIRM_MAIL_TABLE."
+WHERE id = '".$id."'
+;";
+  list($count) = mysql_fetch_row(pwg_query($query));
+
+  if ($count == 1)
+  {
+    $query = "
+SELECT user_id, status, date_check
+FROM ".USER_CONFIRM_MAIL_TABLE."
+WHERE id = '".$id."'
+;";
+    $data = mysql_fetch_assoc(pwg_query($query));
+        
+    if (!empty($data) and isset($data['user_id']) and !isset($data['date_check']))
+    {
+      $query = "
+SELECT registration_date
+FROM ".USER_INFOS_TABLE."
+WHERE user_id = '".$data['user_id']."'
+;";
+      list($registration_date) = mysql_fetch_row(pwg_query($query));
+
+/*              Time limit process              */
+/* ****************** begin ******************* */  
+      if (!empty($registration_date))
+      {
+				// Verify Confirmmail with time limit ON
+				if (isset ($conf_nbc_UserAdvManager_ConfirmMail[1]))
+				{
+					// dates formating and compare
+					$today = date("d-m-Y"); // Get today's date
+					list($day, $month, $year) = explode('-', $today); // explode date of today						 
+ 					$daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
+	  		
+	  			list($regdate, $regtime) = explode(' ', $registration_date); // Explode date and time from registration date
+					list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
+					$regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
+			
+					$deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps	
+					$deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
+
+					// Condition with the value set for time limit
+					if ($deltadays <= $conf_nbc_UserAdvManager_ConfirmMail[1]) // If Nb of days is less than the limit set
+					{
+						list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+
+						$query = '
+UPDATE '.USER_CONFIRM_MAIL_TABLE.'
+SET date_check="'.$dbnow.'"
+WHERE id = "'.$id.'"
+;';
+						pwg_query($query);
+      
+						if ($conf_nbc_UserAdvManager[3] <> -1) // Delete user from unvalidated users group
+						{
+							$query = "
+DELETE FROM ".USER_GROUP_TABLE."
+WHERE user_id = '".$data['user_id']."'
+  AND group_id = '".$conf_nbc_UserAdvManager[3]."'
+;";
+							pwg_query($query);
+						}
+	    
+						if ($conf_nbc_UserAdvManager[4] <> -1) // Add user to validated users group 
+						{
+							$query = "
+INSERT INTO ".USER_GROUP_TABLE."
+  (user_id, group_id)
+VALUES
+  ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
+;";
+							pwg_query($query);
+						}
+
+						if (($conf_nbc_UserAdvManager[5] <> -1 or isset($data['status']))) // Change user's status
+						{
+							$query = "
+UPDATE ".USER_INFOS_TABLE."
+SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
+WHERE user_id = '".$data['user_id']."'
+;";
+							pwg_query($query);
+						}
+						// Refresh user's category cache
+						invalidate_user_cache();
+  
+						return true;
+					}
+					elseif ($deltadays > $conf_nbc_UserAdvManager_ConfirmMail[1]) // If timelimit exeeds
+					{
+						return false;
+					}
+				}
+				// Verify Confirmmail with time limit OFF
+				else
+				{
+					list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+
+					$query = '
+UPDATE '.USER_CONFIRM_MAIL_TABLE.'
+SET date_check="'.$dbnow.'"
+WHERE id = "'.$id.'"
+;';
+					pwg_query($query);
+      
+					if ($conf_nbc_UserAdvManager[3] <> -1)
+					{
+						$query = "
+DELETE FROM ".USER_GROUP_TABLE."
+WHERE user_id = '".$data['user_id']."'
+AND group_id = '".$conf_nbc_UserAdvManager[3]."'
+;";
+						pwg_query($query);
+					}
+    
+					if ($conf_nbc_UserAdvManager[4] <> -1)
+					{
+						$query = "
+DELETE FROM ".USER_GROUP_TABLE."
+WHERE user_id = '".$data['user_id']."'
+AND group_id = '".$conf_nbc_UserAdvManager[4]."'
+;";
+						pwg_query($query);
+
+						$query = "
+INSERT INTO ".USER_GROUP_TABLE."
+  (user_id, group_id)
+VALUES
+  ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
+;";
+						pwg_query($query);
+					}
+
+					if (($conf_nbc_UserAdvManager[5] <> -1 or isset($data['status'])))
+					{
+						$query = "
+UPDATE ".USER_INFOS_TABLE."
+SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
+WHERE user_id = '".$data['user_id']."'
+;";
+						pwg_query($query);
+					}
+					// Refresh user's category cache
+					invalidate_user_cache();
+  
+					return true;
+				}
+			}
+		}
+	}
+  else
+    return false;
+}
+
+/* Function called from UserAdvManager_admin.php to force users validation by admin */
+function ForceValidation($id)
+{
+  global $conf;
+
+  include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+        
+  $query = "
+SELECT COUNT(*)
+  FROM ".USER_CONFIRM_MAIL_TABLE."
+WHERE user_id = '".$id."'
+;";
+  list($count) = mysql_fetch_row(pwg_query($query));
+
+  if ($count == 1)
+  {
+    $query = "
+SELECT user_id, status, date_check
+  FROM ".USER_CONFIRM_MAIL_TABLE."
+WHERE user_id = '".$id."'
+;";
+    $data = mysql_fetch_assoc(pwg_query($query));
+
+    if (!empty($data) and isset($data['user_id']) and !isset($data['date_check']))
+    {      
+			list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
+
+			$query = "
+UPDATE ".USER_CONFIRM_MAIL_TABLE."
+SET date_check='".$dbnow."'
+WHERE user_id = '".$data['user_id']."'
+;";
+			pwg_query($query);
+	     
+			if ($conf_nbc_UserAdvManager[3] <> -1)
+			{
+				$query = "
+DELETE FROM ".USER_GROUP_TABLE."
+WHERE user_id = '".$data['user_id']."'
+  AND group_id = '".$conf_nbc_UserAdvManager[3]."'
+;";
+				pwg_query($query);
+			}
+  
+			if ($conf_nbc_UserAdvManager[4] <> -1)
+			{
+				$query = "
+DELETE FROM ".USER_GROUP_TABLE."
+WHERE user_id = '".$data['user_id']."'
+  AND group_id = '".$conf_nbc_UserAdvManager[4]."'
+				;";
+				pwg_query($query);
+	
+				$query = "
+INSERT INTO ".USER_GROUP_TABLE."
+  (user_id, group_id)
+VALUES
+  ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
+;";
+				pwg_query($query);
+			}
+
+			if (($conf_nbc_UserAdvManager[5] <> -1 or isset($data['status'])))
+			{
+				$query = "
+UPDATE ".USER_INFOS_TABLE."
+SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
+WHERE user_id = '".$data['user_id']."'
+;";
+				pwg_query($query);
+			}
+			// Refresh user's category cache
+			invalidate_user_cache();
+			return true;
+		}
+	}
+}
+
+/* Function called from main.inc.php - Get username case insensitive */
+function NotSensibleSearchUsername($username)
+{
+  global $conf;
+  
+  if (isset($username))
+  {
+    $query = "
+SELECT ".$conf['user_fields']['username']."
+FROM ".USERS_TABLE."
+WHERE LOWER(".stripslashes($conf['user_fields']['username']).") = '".strtolower($username)."'
+;";
+    $users = mysql_num_rows(pwg_query($query));
+    if ($users > 0)
+    {
+      return true;
+    }
+    else
+    {
+      return false;
+    }
+  }
+}
+
+
+/* Function called from main.inc.php - Check if username matches forbidden caracters */
+function ValidateUsername($login)
+{
+  global $conf;
+
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+  if (isset($login) and isset($conf_nbc_UserAdvManager[8]) and $conf_nbc_UserAdvManager[8] <> '')
+  {
+    $conf_nbc_CharExclusion = preg_split("/,/",$conf_nbc_UserAdvManager[8]);
+    for ($i = 0 ; $i < count($conf_nbc_CharExclusion) ; $i++)
+    {
+      $pattern = '/'.$conf_nbc_CharExclusion[$i].'/i';
+      if (preg_match($pattern, $login))
+      {
+        return true;
+      }
+    }
+  }
+  else
+  {
+    return false;
+  }
+}
+
+
+/* Function called from main.inc.php - Check if user's email is in excluded email providers list */
+/* Doesn't work on call - Must be copied in main.inc.php to work */
+function ValidateEmailProvider($email)
+{
+  global $conf;
+
+	$conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  
+	if (isset($email) and isset($conf_nbc_UserAdvManager[13]) and $conf_nbc_UserAdvManager[13] <> '')
+	{
+		//$ncsemail = strtolower($email);
+		$conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
+		for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
+		{
+			$pattern = '/'.$conf_nbc_MailExclusion[$i].'/i';
+			if (preg_match($pattern, $email))
+      {
+        		return true;
+      }
+		}
+	}
+  else
+  {
+    return false;
+  }
+}
+
+
+/* Function called from UserAdvManager.php - Get unvalidated users according time limit */
+function get_unvalid_user_list()
+{
+	global $conf, $page;
+          
+	/* Get ConfirmMail configuration */
+	$conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
+          
+	/* Get UserAdvManager configuration */
+	$conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();  
+  
+  $users = array();
+
+	/* search users depending expiration date */
+  $query = '
+SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
+                u.'.$conf['user_fields']['username'].' AS username,
+                u.'.$conf['user_fields']['email'].' AS email,
+                ui.status,
+                ui.adviser,
+                ui.enabled_high,
+                ui.level,
+                ui.registration_date
+FROM '.USERS_TABLE.' AS u
+  INNER JOIN '.USER_INFOS_TABLE.' AS ui
+    ON u.'.$conf['user_fields']['id'].' = ui.user_id
+  LEFT JOIN '.USER_GROUP_TABLE.' AS ug
+    ON u.'.$conf['user_fields']['id'].' = ug.user_id
+WHERE u.'.$conf['user_fields']['id'].' >= 3
+  AND (TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) >= "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'"
+  OR TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) < "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'")';
+
+	if ($conf_nbc_UserAdvManager[3] <> '-1' and $conf_nbc_UserAdvManager[9] == '-1')
+  {
+    $query.= '
+  AND ug.group_id = '.$conf_nbc_UserAdvManager[3];
+  }
+  if ($conf_nbc_UserAdvManager[3] == '-1' and $conf_nbc_UserAdvManager[9] <> '-1')
+  {
+    $query.= '
+  AND ui.status = \''.$conf_nbc_UserAdvManager[9]."'";
+  }
+  if ($conf_nbc_UserAdvManager[3] <> '-1' and $conf_nbc_UserAdvManager[9] <> '-1')
+  {
+    $query.= '
+  AND ug.group_id = \''.$conf_nbc_UserAdvManager[3]."'";
+  }
+  $query.= '
+ORDER BY id ASC
+;';
+
+	$result = pwg_query($query);
+      
+  while ($row = mysql_fetch_assoc($result))
+  {
+  	$user = $row;
+    $user['groups'] = array();
+
+    array_push($users, $user);
+	}
+
+	/* add group lists */
+  $user_ids = array();
+  foreach ($users as $i => $user)
+  {
+  	$user_ids[$i] = $user['id'];
+	}
+	
+	$user_nums = array_flip($user_ids);
+
+  if (count($user_ids) > 0)
+  {
+  	$query = '
+SELECT user_id, group_id
+  FROM '.USER_GROUP_TABLE.'
+WHERE user_id IN ('.implode(',', $user_ids).')
+;';
+        
+		$result = pwg_query($query);
+        
+    while ($row = mysql_fetch_assoc($result))
+    {
+    	array_push(
+      	$users[$user_nums[$row['user_id']]]['groups'],
+        $row['group_id']
+			);
+		}
+	}
+
+	return $users;
+}
+
+
+/* Function called from UserAdvManager.php - Get ghost users */
+function get_ghost_user_list()
+{
+	global $conf, $page;
+          
+	/* Get UserAdvManager configuration */
+	$conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();  
+  
+  $users = array();
+
+	/* search users depending expiration date */
+  $query = '
+SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
+                u.'.$conf['user_fields']['username'].' AS username,
+                u.'.$conf['user_fields']['email'].' AS email,
+                lv.lastvisit,
+                lv.reminder
+FROM '.USERS_TABLE.' AS u
+  INNER JOIN '.USER_LASTVISIT_TABLE.' AS lv
+    ON u.'.$conf['user_fields']['id'].' = lv.user_id
+WHERE (TO_DAYS(NOW()) - TO_DAYS(lv.lastvisit) >= "'.$conf_nbc_UserAdvManager[18].'")
+ORDER BY id ASC;';
+
+	$result = pwg_query($query);
+      
+  while ($row = mysql_fetch_assoc($result))
+  {
+  	$user = $row;
+    $user['groups'] = array();
+
+    array_push($users, $user);
+	}
+
+	/* add group lists */
+  $user_ids = array();
+  foreach ($users as $i => $user)
+  {
+  	$user_ids[$i] = $user['id'];
+	}
+
+	return $users;
+}
+
+
+/* Function called from UserAdvManager.php - Get all users to display the number of days since their last visit */
+function get_user_list()
+{
+	global $conf, $page;
+  
+  $users = array();
+
+	/* search users depending expiration date */
+  $query = '
+SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
+                u.'.$conf['user_fields']['username'].' AS username,
+                u.'.$conf['user_fields']['email'].' AS email,
+                ug.lastvisit
+FROM '.USERS_TABLE.' AS u
+  INNER JOIN '.USER_LASTVISIT_TABLE.' AS ug
+    ON u.'.$conf['user_fields']['id'].' = ug.user_id
+WHERE u.'.$conf['user_fields']['id'].' >= 3
+ORDER BY lastvisit DESC
+;';
+
+	$result = pwg_query($query);
+      
+  while ($row = mysql_fetch_assoc($result))
+  {
+  	$user = $row;
+    $user['groups'] = array();
+
+    array_push($users, $user);
+	}
+
+	/* add group lists */
+  $user_ids = array();
+  foreach ($users as $i => $user)
+  {
+  	$user_ids[$i] = $user['id'];
+	}
+
+	return $users;
+}
+
+
+/* Function called from UserAdvManager.php - to determine who is expired or not and giving a different display color */
+function expiration($id)
+{
+	global $conf, $page;
+          
+	/* Get ConfirmMail configuration */
+	$conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
+          
+	/* Get UserAdvManager configuration */
+	$conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array(); 
+	
+	$query = "
+SELECT registration_date
+  FROM ".USER_INFOS_TABLE."
+WHERE user_id = '".$id."'
+;";
+	list($registration_date) = mysql_fetch_row(pwg_query($query));
+
+/*              Time limit process              */
+/* ****************** begin ******************* */  
+	if (!empty($registration_date))
+  {
+		// dates formating and compare
+		$today = date("d-m-Y"); // Get today's date
+		list($day, $month, $year) = explode('-', $today); // explode date of today						 
+ 		$daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
+	  	
+	  list($regdate, $regtime) = explode(' ', $registration_date); // Explode date and time from registration date
+		list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
+		$regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
+			
+		$deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps	
+		$deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
+
+		// Condition with the value set for time limit
+		if ($deltadays <= $conf_nbc_UserAdvManager_ConfirmMail[1]) // If Nb of days is less than the limit set
+		{
+			return false;
+		}
+		else
+		{
+			return True;
+		}
+	}
+}
+
+
+/**
+ * Returns a password's score for password complexity check
+ *
+ * @param password filled by user
+ * 
+ * Thanx to MathieuGut from http://m-gut.developpez.com
+ */
+function testpassword($password) // Le mot de passe passé en paramètre - $password given by user
+{
+
+  // Initialisation des variables - Variables initiation
+  $points = 0;
+  $point_lowercase = 0;
+  $point_uppercase = 0;
+  $point_numbers = 0;
+  $point_characters = 0;
+
+  // On récupère la longueur du mot de passe - Getting password lengh	
+  $length = strlen($password);
+  
+  // On fait une boucle pour lire chaque lettre - Loop to read password characters
+  for($i = 0; $i < $length; $i++)
+  {
+    // On sélectionne une à une chaque lettre - Select each letters
+    // $i étant à 0 lors du premier passage de la boucle - $i is 0 at first turn
+    $letters = $password[$i];
+
+    if ($letters>='a' && $letters<='z')
+    {
+      // On ajoute 1 point pour une minuscule - Adding 1 point to score for a lowercase
+		  $points = $points + 1;
+
+		  // On rajoute le bonus pour une minuscule - Adding bonus points for lowercase
+		  $point_lowercase = 1;
+    }
+    else if ($letters>='A' && $letters <='Z')
+    {
+      // On ajoute 2 points pour une majuscule - Adding 2 points to score for uppercase
+      $points = $points + 2;
+		
+      // On rajoute le bonus pour une majuscule - Adding bonus points for uppercase
+      $point_uppercase = 2;
+    }
+    else if ($letters>='0' && $letters<='9')
+    {
+      // On ajoute 3 points pour un chiffre - Adding 3 points to score for numbers
+      $points = $points + 3;
+		
+      // On rajoute le bonus pour un chiffre - Adding bonus points for numbers
+      $point_numbers = 3;
+    }
+    else
+    {
+      // On ajoute 5 points pour un caractère autre - Adding 5 points to score for special characters
+      $points = $points + 5;
+		
+      // On rajoute le bonus pour un caractère autre - Adding bonus points for special characters
+      $point_characters = 5;
+    }
+  }
+
+  // Calcul du coefficient points/longueur - calculating the coefficient points/length
+  $step1 = $points / $length;
+
+  // Calcul du coefficient de la diversité des types de caractères... - Calculation of the diversity of character types...
+  $step2 = $point_lowercase + $point_uppercase + $point_numbers + $point_characters;
+
+  // Multiplication du coefficient de diversité avec celui de la longueur - Multiplying the coefficient of diversity with that of the length
+  $score = $step1 * $step2;
+
+  // Multiplication du résultat par la longueur de la chaîne - Multiplying the result by the length of the chain
+  $finalscore = $score * $length;
+
+  return $finalscore;
+}
+
+/* Function called from maintain.inc.php - to check if database upgrade is needed */
+function table_exist($table)
+{
+  $query = 'DESC '.$table.';';
+  return (bool)($res=mysql_query($query));
+}
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/include/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/include/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/include/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/description.txt
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/description.txt	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/description.txt	(revision 4552)
@@ -0,0 +1,1 @@
+Stärkt die Möglichkeiten der User-Management
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/plugin.lang.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/plugin.lang.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/de_DE/plugin.lang.php	(revision 4552)
@@ -0,0 +1,249 @@
+<?php
+
+global $lang,$conf;
+
+$conf_UserAdvManager = isset($conf['UserAdvManager']) ? explode(";" , $conf['UserAdvManager']) : array();
+
+
+/* Global Configuration Tab */
+$lang['Tab_Global'] = 'Allgemeine Einstellungen';
+$lang['UserAdvManager_Mail_Info'] = ' Mail Informationen an den Benutzer';
+$lang['UserAdvManager_Mail_Info_true'] = ' Mail an den Benutzer durch die Übernahme der Verbindungsdaten bei der Registrierung oder ihr Profil aktualisieren.';
+$lang['UserAdvManager_Mail_Info_false'] = ' Schaltet die E-Mail senden. (Standard)';
+$lang['UserAdvManager_MailInfo_Text'] = ' Text zur Einführung der E-Mail an Benutzer ihm zu erlauben seine E-Mail-Adresse bestätigen<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNUNG !</b> <b style="color: red;">Text Änderung ist nur verfügbar wenn Mail-Informationsdienst Benutzer aktiviert ist. Verwenden Sie die Multi-Language-Tags aus Extended Description Plugin, wenn dieses Plugin aktiviert ist !!!)</b>';
+$lang['UserAdvManager_No_Casse'] = ' Benutzername Groß-und Kleinschreibung';
+$lang['UserAdvManager_No_Casse_false'] = ' Lassen Sie den Benutzer Groß-und Kleinschreibung. (Standard)';
+$lang['UserAdvManager_Username_Char'] = ' Limited Zeichen für den Benutzernamen';
+$lang['UserAdvManager_Username_Char_false'] = ' Verwenden Sie die Standard-Benutzernamen Zeichen Kontrolle. (Standard)';
+$lang['UserAdvManager_Confirm_Mail'] = 'E-Mail-Adresse Bestätigung:';
+$lang['UserAdvManager_Confirm_Mail_true'] = ' Senden Sie eine E-Mail an Benutzer damit er seine E-Mail und seine Registrierung zu bestätigen.';
+$lang['UserAdvManager_Confirm_Mail_false'] = ' Verwenden Sie die Standardeinstellung Piwigo Registrierungssystem (ohne Registrierung Validierung). (Standard)';
+$lang['UserAdvManager_ConfirmMail_Text'] = ' Text zur Einführung der E-Mail an Benutzer ihm zu erlauben seine E-Mail-Adresse bestätigen<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNUNG !</b> <b style="color: red;">Text Änderung ist nur verfügbar, wenn E-Mail-Adresse bestätigen aktiviert ist. Verwenden Sie die Multi-Language-Tags aus Extended Description Plugin, wenn dieses Plugin aktiviert ist !!!)</b>';
+$lang['UserAdvManager_Confirm_Group_Notice'] = 'WARNUNG : Mit der Validierung Gruppen erfordert, dass Sie mindestens einen Benutzer Gruppe angelegt haben und wird standardmäßig im User-Piwigo Gruppen-Management definiert.';
+$lang['UserAdvManager_No_Confirm_Group'] = 'Gruppe zur Verwendung für die Benutzer die nicht validiert die E-Mail-Adresse.';
+$lang['UserAdvManager_Validated_Group'] = 'Gruppe zur Verwendung für die Benutzer die ihre E-Mail-Adresse bestätigt haben.';
+$lang['UserAdvManager_Confirm_Status_Notice'] = 'WARNUNG : Die Verwendung des Status Validierung erfordert, dass Sie die "Gast"-Nutzer mit Standard-Einstellung (als Benutzer Vorlage) für neu registrierte gehalten haben. Hinweis: Sie können einem anderen Benutzer als neue Vorlage für registrierte gesetzt. Bitte beachten Sie die Dokumentation des Piwigo für weitere Informationen.';
+$lang['UserAdvManager_No_Confirm_Status'] = 'Status zur Verwendung für die Benutzer die nicht validiert die E-Mail-Adresse.';
+$lang['UserAdvManager_Validated_Status'] = 'Status zur Verwendung für die Benutzer die ihre E-Mail-Adresse bestätigt haben. Lassen ------- für die Verwendung von Standard-Werte Piwigo';
+$lang['UserAdvManager_No_Comment_Anonymous_true'] = ' Der Autor Feld müssen ausgefüllt werden, um einen Kommentar zu schicken.';
+$lang['UserAdvManager_No_Comment_Anonymous_false'] = 'Verwenden Sie die Standard-Einstellungen auf Piwigo Kommentare senden. (Standard)';
+$lang['UserAdvManager_MailExclusion'] = 'E-Mail-Anbieter Ausgrenzung:';
+$lang['UserAdvManager_MailExclusion_true'] = ' Legen Sie die E-Mail-Anbieter Ausgrenzung auf (zB: @hotmail.* oder @msn.*)';
+$lang['UserAdvManager_MailExclusion_false'] = ' Legen Sie die E-Mail-Anbieter Ausgrenzung aus. (Standard)';
+$lang['UserAdvManager_MailExclusion_List'] = ' Wenn E-Mail-Anbieter Ausgrenzung auf ON gesetzt ist, füllen Sie die E-Mail-Domänen auszuschließen unten. Sie müssen das folgende Format verwenden :<br>@[Domäne_name].[Domäne-Endung] - Beispiel : @hotmail.com<br>Trennen Sie die verschiedenen Bereiche mit einem Komma (,)<br>';
+
+
+/* ConfirmMail Configuration Tab */
+$lang['UserAdvManager_ConfirmMail_Info'] = 'Wenn Sie diese Option aktivieren, wählen Sie die gewünschte Zeit (x) in das untere Feld. Besucher, die sich dann x Tage Validierung ihrer Eintragung haben registrieren lassen. Nach Ablauf dieser Frist die Validierung Link haben sie per Post erhalten werden abgelaufen sein.<br>';
+$lang['UserAdvManager_ConfirmMail_TimeOut_true'] = 'Aktivieren Sie die Begrenzung der Anmeldeschluss.';
+$lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Deaktivieren Sie die Begrenzung der Anmeldeschluss. (Default)';
+$lang['UserAdvManager_ConfirmMail_TimeOut'] = 'Validation Verzögerung:';
+$lang['UserAdvManager_ConfirmMail_Delay_Info'] = 'Geben Sie die Anzahl der Tage vor Ablauf der Eintragung Validierung : ';
+$lang['UserAdvManager_ConfirmMail_Remail'] = 'Aktivieren oder Deaktivieren von E-Mail-Erinnerung an Unvalidierte Benutzer :';
+$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Aktivieren Sie per E-Mail-Erinnerung';
+$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Deaktivieren von E-Mail-Erinnerung. (Default)';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Custom Inhalt der Erinnerungs-Nachricht mit der Regeneration der Validierung Schlüssel. <br>Wenn leer, wird die Erinnerung per E-Mail nur den Bestätigungslink. Es wird daher dringend empfohlen, ein wenig erläuternden Text zu nehmen. (NB: Der Text Fertigpen bei der Plugin-Installation ist als ein Beispiel)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNUNG !</b> <b style="color: red;">Text Änderung ist nur verfügbar wenn Mail-Informationsdienst Benutzer aktiviert ist. Verwenden Sie die Multi-Language-Tags aus Extended Description Plugin, wenn dieses Plugin aktiviert ist !!!)</b>';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Custom Inhalt der Erinnerungs-Nachricht ohne Regeneration der Validierung Schlüssel. <br>Wenn leer, wird die Erinnerung per E-Mail nur den Bestätigungslink. Es wird daher dringend empfohlen, ein wenig erläuternden Text zu nehmen. (NB: Der Text Fertigpen bei der Plugin-Installation ist als ein Beispiel)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNUNG !</b> <b style="color: red;">Text Änderung ist nur verfügbar wenn Mail-Informationsdienst Benutzer aktiviert ist. Verwenden Sie die Multi-Language-Tags aus Extended Description Plugin, wenn dieses Plugin aktiviert ist !!!)</b>';
+
+
+/* UserManager Tab */
+$lang['Registration_Date'] = 'Anmeldedatum';
+
+
+/* Mailing */
+$lang['infos_mail %s'] = '%s, finden Sie hier Ihre Informationen um die Galerie Login:';
+$lang['User: %s'] = 'Benutzer : %s';
+$lang['Password: %s'] = 'Passwort: %s';
+$lang['Add of %s'] = 'Hinzufügen von %s';
+$lang['Update of %s'] = 'Aktualisierung der %s';
+$lang['Link: %s'] = 'Klicken Sie bitte auf diesen Link bestätigen Sie Ihre Anmeldung: %s';
+$lang['Reminder_with_key_of_%s'] = '%s, Ihre Validierungs-Zahl wurde erneuert';
+$lang['Reminder_without_key_of_%s'] = '%s, Ihre Validierung Schlüssel abläuft';
+$lang['Ghost_remainder_of_%s'] = '%s, Dies ist eine Erinnerung per E-Mail';
+
+
+/* Email confirmation page */
+$lang['title_confirm_mail'] = 'Überprüfen Sie Ihre Registrierung';
+$lang['confirm_mail_page_title'] = 'Überprüfen Sie Ihre Registrierung';
+$lang['confirm_mail_ok'] = '<br><br><br>Wir danken Ihnen, Ihre E-Mail-Adresse bestätigt haben und Ihre Anmeldung auf der Galerie. Viel Spaß!<br><br><br><br>';
+$lang['confirm_mail_bad'] = '<br><br><br>Ihre Aktivierungs-Schlüssel ist falsch oder abgelaufen oder Sie haben bereits validiert Ihrem Konto. Wenden Sie sich bitte an den Webmaster, um dieses Problem zu beheben.<br><br><br><br>';
+
+
+/* Errors and Warnings */
+$lang['UserAdvManager_audit_ok'] = 'Audit OK';
+$lang['Err_audit_no_casse'] = '<b>Diese Konten sind identisch mit den Fall aufmerksam:</b> ';
+$lang['Err_audit_username_char'] = '<b>Dieses Konto verwendet eine oder mehrere der verbotenen Zeichen:</b> ';
+$lang['Err_audit_email_forbidden'] = '<b>Dieses Konto verwendet eine E-Mail-Anbieter sind untersagt:</b> ';
+$lang['Err_audit_advise'] = '<b>Sie müssen Korrekturen an mit neuen Regeln die Sie aktiviert haben, nachzukommen durchzuführen.<br>Verwenden Sie ein Datenbank-Management-Dienstprogramm, um Benutzer-Accounts direkt in der Tabelle richtig ###_USERS';
+$lang['UserAdvManager_Empty Author'] = 'Der Autor Feld müssen ausgefüllt werden um einen Kommentar zu schicken.';
+if ( isset($conf_UserAdvManager[1]) and $conf_UserAdvManager[1] == 'true' )
+	$lang['reg_err_login5'] = 'Benutzername bereits vorhanden, WARNUNG Name ist Groß-und Kleinschreibung.';
+$lang['reg_err_login6'] = 'Benutzername muss nicht die folgenden Zeichen übereinstimmen: ';
+$lang['reg_err_login7'] = 'Ihre E-Mail-Anbieter für die Registrierung ist verboten. Gebannten E-Mail-Anbieter sind: ';
+$lang['UserAdvManager_empty_pwd'] = '[leeren Passwort]';
+$lang['UserAdvManager_no_update_pwd'] = '[Profil aktualisiert ohne Passwort geändert]';
+$lang['invalid_pwd'] = 'Ungültiger Benutzername oder Passwort !';
+$lang['Err_ConfirmMail_Settings'] = 'Diese Seite wird nur verfügbar wenn "E-Mail-Adresse Bestätigung" ist aktiviert im "Allgemeine Einstellungen" seite.';
+$lang['Err_UserManager_Settings'] = 'Diese Seite ist nur verfügbar, wenn "Enable Begrenzung der Anmeldeschluss ist aktiviert in der "ConfirmMail Einstellungen" und ein Unvalidierte Benutzer Gruppe ist im "Allgemeine Einstellungen" seite gestellt.';
+$lang['No_validation_for_Guest'] = 'Der "Gast"-Konto ist nicht Gegenstand der Validierung';
+$lang['No_validation_for_default_user'] = 'Der Standard-Konto ist nicht Gegenstand der Validierung';
+$lang['No_validation_for_Webmaster'] = 'Der "Webmaster"-Konto ist nicht Gegenstand der Validierung';
+$lang['No_validation_for_your_account'] = 'Ihre personnal admin-Konto ist nicht Gegenstand der Validierung';
+$lang['Database_Error'] = '<b><u>Warnung! Integrität kritischer Fehler in der Datenbank.</u></b><br><br>Bitte überprüfen Sie die Integrität der #_user_confirm_mail Tabelle.';
+
+
+/* Processing messages */
+$lang['%d_Mail_With_Key'] = '%d Nachricht mit wichtigen Erneuerung gesendet wurde';
+$lang['%d_Mails_With_Key'] = '%d Nachrichten mit den wichtigsten Erneuerung geschickt wurden';
+$lang['%d_Reminder_Sent'] = '%d Erinnerung Nachricht wurde gesendet';
+$lang['%d_Reminders_Sent'] = '%d Erinnerung Nachrichten wurden gesendet';
+$lang['%d_Validated_User'] = '%d Benutzer manuell validiert';
+$lang['%d_Validated_Users'] = '%d Benutzer manuell validiert';
+
+
+/* Action button names */
+$lang['Delete_selected'] = 'Löschen';
+$lang['Mail_without_key'] = 'Erinnerung ohne Schlüssel';
+$lang['Mail_with_key'] = 'Erinnerung mit Schlüssel';
+$lang['Force_Validation'] = 'gezwungen Validierung';
+$lang['Reminder_Email'] = 'E-Mail-Erinnerung';
+
+
+
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.0 and 2.12.1
+/* Global Configuration Tab */
+$lang['UserAdvManager_Title1'] = 'Benutzer-Registrierung Verwaltung';
+$lang['UserAdvManager_Title2'] = 'Registrierung Validierung und Gruppen / Status Verwaltung';
+$lang['UserAdvManager_Password_Enforced'] = 'Stärkung Passwörter - die Aktivierung dieser Option wird die Beschlagnahme des Passworts für die Besucher eine Anmeldung erforderlich. Auch das Passwort das vom Besucher eingegebenen wird mit einem Ergebnis von Komplexität erfüllen (<b style="color: green;">aktivieren und Einstellungen speichern um mehr Informationen anzuzeigen</b>).';
+$lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Erläuterungen:</b> <b style="color: green;">Ein Passwort ist der Gäste zu den Parametern berechnet: Dauer, Art der verwendeten Zeichen (Buchstaben, Ziffern, Großbuchstaben, Kleinbuchstaben, Sonderzeichen). Wenn das Passwort des Benutzers nicht der Gäste erzielte der Gäste ist mit dem minimalen Partitur angezeigt zu erreichen und einen Hinweis auf den Ergebnis dieser Partitur zu erhöhen. Um Ihnen eine Idee, einen Ergebnis unter 100 wird als "geringe Komplexität". Zwischen 100 und 500, ist die Komplexität erhöht und Durchschnitt. Mehr als 500, das werd Fort Knox! ;-)<br>Sie können Ihre Passwörter Komplexität Tests durchführen indem Sie das unten stehende Feld. Dies ermöglicht Ihnen eine Vorstellung von der Partitur zu erhalten, um eine benutzerdefinierte Komplexität zu definieren.</b>';
+$lang['UserAdvManager_PasswordTest'] = 'Passwort testen : ';
+$lang['UserAdvManager_ScoreTest'] = 'Ergebnis : ';
+$lang['PasswordTest'] = 'Ergebnis Berechnung';
+$lang['UserAdvManager_Password_Enforced_true'] = ' Starkes Passwort erforderlich - Geben Sie die Mindestpunktzahl (Boden-Ergebnis) von Passwörtern Komplexität == ';
+$lang['UserAdvManager_Password_Enforced_false'] = ' Keine Passwörter zu stärken. (Standard)';
+$lang['UserAdvManager_AdminPassword_Enforced'] = 'Gelten auch die Passwörter Komplexität Kontrolle wenn ein Administrator einen Benutzer erstellen? Hinweis: Wenn der Benutzer wünscht, erstellt sein Passwort zu ändern und Passwörter für die Benutzer Stärkung aktiv ist, wird er unterliegt den Regeln festgelegt.';
+$lang['UserAdvManager_AdminPassword_Enforced_true'] = 'Aktivieren Stärkung Passwörter für Administratoren.';
+$lang['UserAdvManager_AdminPassword_Enforced_false'] = 'Deaktivieren Stärkung Passwörter für Administratoren. (Standard)';
+$lang['UserAdvManager_GhostTracker'] = 'Geist Tracker - Ermöglicht registrierten Nutzern zur Verwaltung nach ihrem letzten Besuch Datum :';
+$lang['UserAdvManager_GhostTracker_true'] = ' Aktivieren Geist Tracker.';
+$lang['UserAdvManager_GhostTracker_false'] = ' Deaktivieren Geist Tracker. (Default)';
+$lang['UserAdvManager_GhostTracker_DayLimit'] = ' Geben Sie hier die Obergrenze in Tagen, zwischen zwei Besuche eines Besuchers. Wenn dieser Grenzwert erreicht ist, wird diese Besucher in der Tabelle erscheinen auf "Geist Tracker" aus.';
+$lang['UserAdvManager_GhostTracker_ReminderText'] = ' Text in die E-Mail-Erinnerung verwendet geschickt zu fördern Besucher kommen zurück zur Galerie (Anm.: Der Text Fertigpen bei der Plugin-Installation ist als ein Beispiel).<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNUNG !</b> <b style="color: red;">Text Änderung ist nur verfügbar wenn Mail-Informationsdienst Benutzer aktiviert ist. Verwenden Sie die Multi-Language-Tags aus Extended Description Plugin, wenn dieses Plugin aktiviert ist !!!)</b>';
+/* Ghost Tracker Tab */
+$lang['GhostTracker_Title'] = 'Erweiterte Gespenst Besucher-Management';
+$lang['Title_Tab4'] = 'UserAdvManager - Geist Tracker';
+$lang['Tab_GhostTracker'] = 'Geist Tracker';
+$lang['LastVisit_Date'] = 'Letzter Besuch';
+$lang['Ghost_Reminder'] = 'E-Mail-Erinnerung';
+$lang['Reminder_Sent_OK'] = 'JA';
+$lang['Reminder_Sent_NOK'] = 'NEIN';
+/* Errors and Warnings */
+$lang['UserAdvManager_save_config'] ='Konfiguration gespeichert.';
+$lang['reg_err_login3'] = 'Sicherheit: Das Passwort ist obligatorisch !';
+$lang['reg_err_login4_%s'] = 'Sicherheit: Ein Steuer-System berechnet eine Partitur von der gewählten Passwörter Komplexität. Die Komplexität des Passworts zu niedrig ist (score = %s). Bitte wählen Sie ein neues Passwort zu mehr Sicherheit, indem Sie folgende Regeln:<br>
+- Verwenden Sie Buchstaben und Zahlen<br>
+- Verwenden Sie Groß-und Kleinschreibung<br>
+- Erhöhung ihrer Länge (Anzahl Zeichen)<br>
+Die minimale Passwörter der Gäste ist: ';
+$lang['No_reminder_for_Guest'] = 'Der "Gast"-Konto ist nicht zu empfangen Mahnungen Geist Tracker';
+$lang['No_reminder_for_default_user'] = 'Der Standard-Account ist nicht zu empfangen Mahnungen Geist Tracker';
+$lang['No_reminder_for_Webmaster'] = 'Der "Webmaster"-Konto ist nicht zu empfangen Mahnungen Geist Tracker';
+$lang['No_reminder_for_your_account'] = 'Sie personnal Admin-Konto ist nicht zu empfangen Mahnungen Geist Tracker';
+$lang['Err_GhostTracker_Settings'] = 'Diese Seite ist nur verfügbar, wenn "Geist Tracker" in der "Allgemeine Einstellungen" seite gestellt ist.';
+/* Action button names */
+$lang['audit'] = 'Audit-Einstellungen';
+$lang['submit'] = 'Einstellungen speichern';
+// --------- End: New or revised $lang ---- from version 2.12.0 and 2.12.1
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.2
+/* Global Configuration Tab */
+$lang['UserAdvManager_GhostTracker_Notice'] = 'Wenn der Geist Tracker-Funktion aktiviert ist, können Sie verwalten Ihre Besucher je nach der Häufigkeit ihrer Besuche. <b style="color: red;">WICHTIG: Wenn Sie diese Funktion zum ersten Mal ermöglichen oder Sie haben nach einem langen Zeitraum aus in dem neue Besucher registriert sind reaktiviert, besuchen Sie die Geist Tracker-Panel und folgen Sie den Anweisungen für Geist Tracker Initialisierung.</b>';
+/* Ghost Tracker Tab */
+$lang['UserAdvManager_GhostTracker_Init'] = 'Wenn Sie diese Funktion zum ersten Mal oder haben Sie nach einem langen Zeitraum aus, in dem neue Besucher registriert sind, müssen Sie initialisieren, oder setzen Sie den Ghost Tracker reaktiviert. Dieser Vorgang ist nur nach Aktivierung oder Reaktivierung von der Möglichkeit gemacht. Bitte klicken Sie <u>einmal</u> die Reset-Taste unten.';
+$lang['UserAdvManager_GhostTracker_User_List'] = 'Wenn Geist Tracker aktiviert ist und initialisiert wurde, finden Sie weiter unten die Liste der registrierten Besucher, die sich seit x Tagen zurückgegeben haben. "x" ist die Anzahl der Tage konfiguriert in der Allgemeine Einstellungen. Darüber hinaus finden Sie eine Spalte angibt, ob eine E-Mail-Erinnerung hat, um die angestrebten Besucher gesendet wurde. So können Sie auf einen Blick sehen und zu behandeln Besucher, die nicht wegen der Erinnerung genommen haben.<br><br>In dieser Ansicht können Sie:
+<br><br>
+- Löschen Sie manuell Konten <b>(manuell drain)</b>
+<br>
+- Generieren Sie per E-Mail-Erinnerung <b>mit dem Zurücksetzen der letzte Besuch date</b>. Dies erlaubt es, einen Platzhalter, um die angestrebten Besucher geben. Wenn der Besucher bereits eine Mahnung erhalten haben, durch nichts daran gehindert, eine neue Mail, die wieder zurückgesetzt werden, in der Tat übel, dem letzten Tag besuchen.
+<br>';
+/* Errors and Warnings */
+$lang['GhostTracker_Init_OK'] = 'Geist Tracker neu gehstellt !';
+/* Action button names */
+$lang['GT_Reset'] = 'Geist Tracker neu stellen';
+// --------- End: New or revised $lang ---- from version 2.12.2
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.6
+/* Global Configuration Tab */
+$lang['UserAdvManager_No_Casse_true'] = ' Stellen Sie das Benutzerkonto Groß-und Kleinschreibung bei der Registrierung und Identifizierung Schritt (USER = user = User = usER...).';
+// --------- End: New or revised $lang ---- from version 2.12.6
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.7
+/* Errors and Warnings */
+/* TODO */$lang['mail_text_error'] = '<b>Warning!</b> - Semicolons (;) are not allowed in addtionnal email text. This Character have been automatically replaced by a dot (.). For information, the amended text(s) is(are) shown in red in the corresponding field(s). Please, check it(them) out.';
+// --------- End: New or revised $lang ---- from version 2.12.7
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.8
+/* Errors and Warnings */
+/* TODO */$lang['mail_exclusionlist_error'] = 'Warning! You have entered a new line (CR-LF) at the begining of email exclusion list (shown in red below). Although this new line is not visible, it is still present and may cause malfunction of the plugin. Please re-type in your exclusion list in a manner that does not begin with a newline.';
+// --------- End: New or revised $lang ---- from version 2.12.8
+
+// --------- Starting below: New or revised $lang ---- from version 2.13.0
+/* Global Configuration Tab */
+$lang['UserAdvManager_Add_LastVisit_Column'] = ' View user monitoring record (date of last visit, time spent (in days) since their last visit ,...). Monitoring is purely informative for the administrator of the gallery.';
+$lang['UserAdvManager_Add_LastVisit_Column_true'] = ' Enable user monitoring list.';
+$lang['UserAdvManager_Add_LastVisit_Column_false'] = ' Disable user monitoring list (Default).';
+/* ConfirmMail Configuration Tab */
+$lang['ConfirmMail_Title'] = 'Erweiterte Einstellungen für die Validierung der Register';
+$lang['Tab_ConfirmMail'] = 'Register Validierung Einstellungen';
+/* UserList Tab */
+$lang['Title_Tab5'] = 'UserAdvManager - Nutzungshinweise';
+$lang['UserList_Title'] = 'Monitoring registrierte Benutzer';
+$lang['Tab_UserList'] = 'Monitoring Benutzer';
+$lang['UserAdvManager_User_List'] = 'Diese Seite gibt es zur Information an den Administrator. Es zeigt eine Liste von allen Nutzern auf der Galerie zeigt das Datum und die Anzahl der Tage seit dem letzten Besuch registriert. Die Liste ist in aufsteigender Reihenfolge der Anzahl der Tage sortiert.
+<br><br>
+Wenn der Geist Tracker aktiv ist, wird die Anzahl der Tage ohne einen Besuch wie der folgende Farbcode nach dem Maximum in der Ghost Tracker Optionen:
+<br>
+- <b style="color: lime;">Grün</b> : Wenn der Benutzer hat die Galerie <b style="color: lime;"><u>weniger als 50%</u></b> besucht der angegebene Höchstzahl in der Geist Tracker.<br>
+- <b style="color: orange;">Orange</b> : Wenn der Benutzer hat die Galerie <b style="color: orange;"><u>zwischen 50% und 99%</u></b> besucht der angegebene Höchstzahl in der Geist Tracker.<br>
+- <b style="color: red;">Red</b> : Wenn der Benutzer hat die Galerie <b style="color: red;"><u>für mehr als 100% </u></b> besucht der angegebene Höchstzahl in der Geist Tracker. <b><u>In diesem Fall muss der Benutzer sich auch in der Geist Tracker-Tabelle.</u></b><br>
+<br>
+Beispiel:
+<br>
+Die Höchstdauer von Geist Tracker ist so konfiguriert, dass 100 Tage.
+<br>
+Ein Benutzer wird in grün angezeigt, wenn er die Galerie für weniger als 50 Tagen besucht haben, in orange, wenn sein letzter Besuch stattgefunden hat zwischen 50 und 99 Tage und rot für 100 Tage und mehr.
+<br><br>
+<b>HINWEIS</b> : Die Liste wird nicht angezeigt, die nicht validiert ihrer Registrierung (falls die Möglichkeit der Validierung der Registrierung aktiviert ist). Diese Benutzer werden dann in besonderer Weise in der "Validation verwaltet.';
+$lang['Nb_Days'] = 'Anzahl der Tage seit<br>dem letzten Besuch';
+/* UserManager Tab */
+$lang['UserAdvManager_ConfirmMail_User_List'] = 'Wenn die Begrenzung der Frist für die Anmeldung aktiviert ist, finden Sie weiter unten die Liste der Benutzer, deren Validierung Eintragung erwartet wird, <b style="text-decoration: underline;"> ob oder nicht </b> sind sie in der Zeit zu überprüfen. <br><br>Das Datum der Eintragung wird in grün angezeigt, wenn der Benutzer betroffen ist unterhalb der Frist nach seiner Registrierung zu bestätigen. In diesem Fall ist die Validierung Schlüssel noch gültig ist, und wir können eine E-Mail mit oder ohne eine neue Validierung Schlüssel zu schicken. <br><br>Wenn das Datum der Eintragung in rot angezeigt wird, hat die Validierung abgelaufen. In diesem Fall müssen Sie eine E-Mail mit der Regeneration der Validierung Schlüssel senden, wenn Sie dem Benutzer die Möglichkeit, ihre Anmeldung bestätigen möchten. <br><br>In allen Fällen ist es möglich, manuell die Validierung Kraft. <br><br>In dieser Ansicht können Sie:
+<br><br>
+- Löschen Sie manuell Konten <b>(Handbuch Drain)</b>
+<br>
+- Generieren Sie per E-Mail-Erinnerung <b>ohne</b> erzeugt einen neuen Schlüssel. Warnung: Senden Sie eine E-Mail-Erinnerung für die angestrebten Besucher. Diese Funktion kann nicht zurückgesetzt dem Zeitpunkt der Eintragung des angestrebten Besucher und das Zeitlimit ist weiterhin gültig.
+<br>
+- Generieren Sie per E-Mail-Erinnerung <b>mit</b> erzeugt einen neuen Schlüssel. Warnung: Senden Sie eine E-Mail-Erinnerung für die angestrebten Besucher. Diese Funktion setzt auch den Zeitpunkt der Eintragung des angestrebten Besucher, die die Frist für die Validierung erweitern entspricht.
+<br>
+- Senden einer Registrierung erwartet Validierung von Hand, auch wenn das Ablaufdatum überschritten ist <b>(zwingen Validierung)</b>.
+<br>';
+$lang['UserManager_Title'] = 'Erweiterte Einstellungen von validierten registrierte Benutzer';
+$lang['Title_Tab3'] = 'UserAdvManager - Management der Registrierung Validierungen';
+$lang['Tab_UserManager'] = 'Validierungen Management';
+/* Ghost Tracker Tab */
+$lang['Reminder'] = 'Email Erinnerung';
+/* Errors and Warnings */
+$lang['Err_Userlist_Settings'] = 'Diese Seite ist nur verfügbar, wenn "Benutzer Monitoring" ist im "General Setup" aktiv ist.';
+// --------- End: New or revised $lang ---- from version 2.13.0
+// --------- Starting below: New or revised $lang ---- from version 2.13.1
+/* Global Configuration Tab */
+$lang['Title_Tab1'] = 'UserAdvManager 2.13.1 - Allgemeine Einstellungen';
+/* ConfirmMail Configuration Tab */
+$lang['Title_Tab2'] = 'UserAdvManager 2.13.1 - Registrieren Validierung Einstellungen';
+// --------- End: New or revised $lang ---- from version 2.13.1
+// --------- Starting below: New or revised $lang ---- from version 2.13.3
+/* Global Configuration Tab */
+$lang['UserAdvManager_Username_Char_true'] = ' Die folgenden Zeichen <b style="color: green;">(getrennte Werte durch Kommas ","!)</b> werden für den Benutzernamen Wahl verboten werden == ';
+$lang['UserAdvManager_No_Comment_Anonymous'] = 'Aliases sind für Kommentare obligatorisch. <b style="color: red;">Aktivieren Sie diese Einstellung, wenn die Behörde nicht eingetragene Besucher gegeben um Kommentare zu schreiben (Admin-Panel Piwigo> Einstellungen> Allgemein, Registerkarte "Kommentare"> "Kommentare für alle erlaubt")</b>';
+// --------- End: New or revised $lang ---- from version 2.13.3
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/description.txt
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/description.txt	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/description.txt	(revision 4552)
@@ -0,0 +1,1 @@
+Strengthens the possibilities of user management
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/plugin.lang.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/plugin.lang.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/en_UK/plugin.lang.php	(revision 4552)
@@ -0,0 +1,249 @@
+<?php
+
+global $lang,$conf;
+
+$conf_UserAdvManager = isset($conf['UserAdvManager']) ? explode(";" , $conf['UserAdvManager']) : array();
+
+
+/* Global Configuration Tab */
+$lang['Tab_Global'] = 'General Setup';
+$lang['UserAdvManager_Mail_Info'] = ' Mail information to user:';
+$lang['UserAdvManager_Mail_Info_true'] = ' Send mail to the user by taking over its connection information when registering or updating their profile.';
+$lang['UserAdvManager_Mail_Info_false'] = ' Turns off the mail sending. (default)';
+$lang['UserAdvManager_MailInfo_Text'] = ' Text used to introduce the email sent to user to allow him to validate his email address<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if Mail information user is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+$lang['UserAdvManager_No_Casse'] = ' User name case insensitive';
+$lang['UserAdvManager_No_Casse_false'] = ' Let the user case sensitive. (default)';
+$lang['UserAdvManager_Username_Char'] = ' Limited charset for username';
+$lang['UserAdvManager_Username_Char_false'] = ' Use the default username charset control. (default)';
+$lang['UserAdvManager_Confirm_Mail'] = 'Email address confirmation:';
+$lang['UserAdvManager_Confirm_Mail_true'] = ' Send an email to user to allow him to validate his email and his registration.';
+$lang['UserAdvManager_Confirm_Mail_false'] = ' Use the default Piwigo registration system (without registration validation). (default)';
+$lang['UserAdvManager_ConfirmMail_Text'] = ' Text used to introduce the email sent to user to allow him to validate his email address<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if Email address confirmation is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+$lang['UserAdvManager_Confirm_Group_Notice'] = 'WARNING : Using validation groups requires that you have created at least one user group and is defined "by default" in Piwigo\'s user groups management.';
+$lang['UserAdvManager_No_Confirm_Group'] = 'Group to use for the users who haven\'t validated their email address.';
+$lang['UserAdvManager_Validated_Group'] = 'Group to use for the users who have validated their email address.';
+$lang['UserAdvManager_Confirm_Status_Notice'] = 'WARNING : The use of status validation requires that you have kept the "Guest" user with default setting (as user template) for new registered. Note you can set any other user as a template for new registered. Please refer to the Piwigo\'s documentation for more details.';
+$lang['UserAdvManager_No_Confirm_Status'] = 'Status to use for the users who haven\'t validated their email address.';
+$lang['UserAdvManager_Validated_Status'] = 'Status to use for the users who have validated their email address. Let ------- for using default Piwigo values';
+$lang['UserAdvManager_No_Comment_Anonymous_true'] = ' The author field have to be filled to send a comment.';
+$lang['UserAdvManager_No_Comment_Anonymous_false'] = ' Use the default Piwigo settings on comments sending. (default)';
+$lang['UserAdvManager_MailExclusion'] = 'Email provider exclusion:';
+$lang['UserAdvManager_MailExclusion_true'] = ' Set the email provider exclusion ON (i.e. : @hotmail.* or @msn.*)';
+$lang['UserAdvManager_MailExclusion_false'] = ' Set the email provider exclusion OFF. (default)';
+$lang['UserAdvManager_MailExclusion_List'] = ' If email provider exclusion is set to ON, fill the email domains to exclude below. You have to use the following format :<br>@[domaine_name].[domaine_extension] - Example : @hotmail.com<br>Seperate the different domains with a comma (,)<br>';
+
+
+/* ConfirmMail Configuration Tab */
+$lang['UserAdvManager_ConfirmMail_Info'] = 'Time limitation for validation of registration :<br>If you enable this option, select the desired time (x) in the field below. Visitors who register will then have x days to validate their registration. After this period the validation link they have received by mail will be expired.<br>';
+$lang['UserAdvManager_ConfirmMail_TimeOut_true'] = 'Enable limiting the registration deadline.';
+$lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Disable limiting the registration deadline. (Default)';
+$lang['UserAdvManager_ConfirmMail_TimeOut'] = 'Validation delay :';
+$lang['UserAdvManager_ConfirmMail_Delay_Info'] = 'Enter the number of days before expiry of the registration validation : ';
+$lang['UserAdvManager_ConfirmMail_Remail'] = 'Enable or disable email reminder of unvalidated registers :';
+$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Enable email reminder';
+$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Disable email reminder. (Default)';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Custom content of the reminder message with regeneration of validation key.<br>If left blank, the reminder email will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled at the plugin installation is given as an example)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Custom content of the reminder message without regeneration of validation key.<br>If left blank, the reminder email will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled at the plugin installation is given as an example)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+
+
+/* UserManager Tab */
+$lang['Registration_Date'] = 'Registration date';
+
+
+/* Mailing */
+$lang['infos_mail %s'] = '%s, please find here your information to login the gallery :';
+$lang['User: %s'] = 'User : %s';
+$lang['Password: %s'] = 'Password: %s';
+$lang['Add of %s'] = 'Add of %s';
+$lang['Update of %s'] = 'Update of %s';
+$lang['Link: %s'] = 'Please, click on this link to confirm your registration : %s';
+$lang['Reminder_with_key_of_%s'] = '%s, your validation key has been renewed';
+$lang['Reminder_without_key_of_%s'] = '%s, your validation key will expire';
+$lang['Ghost_remainder_of_%s'] = '%s, this is a reminder email';
+
+
+/* Email confirmation page */
+$lang['title_confirm_mail'] = 'Validate your registration';
+$lang['confirm_mail_page_title'] = 'Validate your registration';
+$lang['confirm_mail_ok'] = '<br><br><br>Thank you to have confirmed your email address and your registration on the gallery. Have fun !<br><br><br><br>';
+$lang['confirm_mail_bad'] = '<br><br><br>Your activation key is incorrect or expired or you have already validated your account, please contact the webmaster to fix this problem.<br><br><br><br>';
+
+
+/* Errors and Warnings */
+$lang['UserAdvManager_audit_ok'] = 'Audit OK';
+$lang['Err_audit_no_casse'] = '<b>These accounts are identical to the case closely :</b> ';
+$lang['Err_audit_username_char'] = '<b>This account uses one or more forbidden characters :</b> ';
+$lang['Err_audit_email_forbidden'] = '<b>This account uses a forbidden email provider :</b> ';
+$lang['Err_audit_advise'] = '<b>you have to perform corrections to comply with new rules that you have activated.<br>Use a database management utility to correct user accounts directly in the table ### _USERS';
+$lang['UserAdvManager_Empty Author'] = 'The author field have to be filled to send a comment.';
+if ( isset($conf_UserAdvManager[1]) and $conf_UserAdvManager[1] == 'true' )
+	$lang['reg_err_login5'] = 'Username already exist, WARNING name is case insensitive (Shift = Tiny).';
+$lang['reg_err_login6'] = 'Username does not have to match the following characters: ';
+$lang['reg_err_login7'] = 'Your email provider is banned for registration. Banned email providers are: ';
+$lang['UserAdvManager_empty_pwd'] = '[empty password]';
+$lang['UserAdvManager_no_update_pwd'] = '[profile updated without password changed]';
+$lang['invalid_pwd'] = 'Invalid username or password !';
+$lang['Err_ConfirmMail_Settings'] = 'This page will be available only if "Email address confirmation" is activated in "General Setup" tab.';
+$lang['Err_UserManager_Settings'] = 'This page is available only if "Enable limiting the registration deadline" is active in the "ConfirmMail Settings" tab and an unvalidated users group is set in "General Setup" tab.';
+$lang['No_validation_for_Guest'] = 'The "Guest" account is not subject to validation';
+$lang['No_validation_for_default_user'] = 'The default account is not subject to validation';
+$lang['No_validation_for_Webmaster'] = 'The "Webmaster" account is not subject to validation';
+$lang['No_validation_for_your_account'] = 'Your personnal admin account is not subject to validation';
+$lang['Database_Error'] = '<b><u>Warning! Critical integrity error in your database.</u></b><br><br>Please check the integrity of the #_user_confirm_mail table.';
+
+
+/* Processing messages */
+$lang['%d_Mail_With_Key'] = '%d message with key renewal was sent';
+$lang['%d_Mails_With_Key'] = '%d messages with key renewal were sent';
+$lang['%d_Reminder_Sent'] = '%d reminder message was sent';
+$lang['%d_Reminders_Sent'] = '%d reminder messages were sent';
+$lang['%d_Validated_User'] = '%d User validated manually';
+$lang['%d_Validated_Users'] = '%d Users validated manually';
+
+
+/* Action button names */
+$lang['Delete_selected'] = 'Delete';
+$lang['Mail_without_key'] = 'Reminder without key';
+$lang['Mail_with_key'] = 'Reminder with key';
+$lang['Force_Validation'] = 'Forced validation';
+$lang['Reminder_Email'] = 'Email reminder';
+
+
+
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.0 and 2.12.1
+/* Global Configuration Tab */
+$lang['UserAdvManager_Title1'] = 'Users registration management';
+$lang['UserAdvManager_Title2'] = 'Registration validation and groups / status management';
+$lang['UserAdvManager_Password_Enforced'] = 'Strengthening passwords - Enabling this option makes the seizure of the password required for visitors registration. Also, the password entered by the visitor will meet with a score of complexity (<b style="color: green;">activate and save settings to display more informations</b>).';
+$lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Explanations:</b> <b style="color: green;">A password score is calculated on the basic parameters: length, type of characters used (letters, digits, uppercase, lowercase, special characters). If the password of the user does not score, the score reached is displayed with the minimal score to reach and an indication to increase the value of this score. To give you an idea, a score below 100 is considered "low complexity". Between 100 and 500, the complexity is increased and average. Beyond 500, that\'s Fort Knox! ;-)<br>You can do your passwords complexity tests by using the field below. This will allow you to get an idea of the score to define a custom complexity.</b>';
+$lang['UserAdvManager_PasswordTest'] = 'Password to test : ';
+$lang['UserAdvManager_ScoreTest'] = 'Score : ';
+$lang['PasswordTest'] = 'Score calculation';
+$lang['UserAdvManager_Password_Enforced_true'] = ' Strong password required - Enter the minimum score (floor value) of passwords complexity == ';
+$lang['UserAdvManager_Password_Enforced_false'] = ' Do not strengthen passwords. (default)';
+$lang['UserAdvManager_AdminPassword_Enforced'] = 'Apply also the passwords complexity control when an administrator create a user? Note: If the created user wishes to change his password and strengthening passwords for users is active, he will be subject to the rules set.';
+$lang['UserAdvManager_AdminPassword_Enforced_true'] = 'Enable strengthening passwords for admins.';
+$lang['UserAdvManager_AdminPassword_Enforced_false'] = 'Disable strengthening passwords for admins. (default)';
+$lang['UserAdvManager_GhostTracker'] = 'Ghost Tracker - Allows to manage registered users according their last visit date :';
+$lang['UserAdvManager_GhostTracker_true'] = ' Enable Ghost Tracker.';
+$lang['UserAdvManager_GhostTracker_false'] = ' Disable Ghost Tracker. (Default)';
+$lang['UserAdvManager_GhostTracker_DayLimit'] = ' Type in here the maximum limit, in days, between two visits of a visitor. When this limit is reached, this visitor will appear in the table on "Ghost Tracker" tab.';
+$lang['UserAdvManager_GhostTracker_ReminderText'] = ' Text used in the email reminder sent to encourage visitors to come back to the gallery (NB: The text pre-filled at the plugin installation is given as an example).<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if Ghost Tracker is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+/* Ghost Tracker Tab */
+$lang['GhostTracker_Title'] = 'Advanced ghost visitors management';
+$lang['Title_Tab4'] = 'UserAdvManager - Ghost Tracker';
+$lang['Tab_GhostTracker'] = 'Ghost Tracker';
+$lang['LastVisit_Date'] = 'Last visit';
+$lang['Ghost_Reminder'] = 'Email reminder';
+$lang['Reminder_Sent_OK'] = 'YES';
+$lang['Reminder_Sent_NOK'] = 'NO';
+/* Errors and Warnings */
+$lang['UserAdvManager_save_config'] ='Configuration saved.';
+$lang['reg_err_login3'] = 'Security : Password is mandatory !';
+$lang['reg_err_login4_%s'] = 'Security : A control system calculates a score on the chosen passwords complexity. The complexity of your password is too low (score = %s). Please, choose a new password more secure by following these rules:<br>
+- Use letters and numbers<br>
+- Use lowercase and uppercase<br>
+- Increase its length (number of characters)<br>
+The minimum passwords score required by the administrator is: ';
+$lang['No_reminder_for_Guest'] = 'The "Guest" account is not subject to receive reminders from GhostTracker';
+$lang['No_reminder_for_default_user'] = 'The default account is not subject to receive reminders from GhostTracker';
+$lang['No_reminder_for_Webmaster'] = 'The "Webmaster" account is not subject to receive reminders from GhostTracker';
+$lang['No_reminder_for_your_account'] = 'You personnal admin account is not subject to receive reminders from GhostTracker';
+$lang['Err_GhostTracker_Settings'] = 'This page is available only if "Ghost Tracker" is active in the "General Setup" tab.';
+/* Action button names */
+$lang['audit'] = 'Audit settings';
+$lang['submit'] = 'Save settings';
+// --------- End: New or revised $lang ---- from version 2.12.0 and 2.12.1
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.2
+/* Global Configuration Tab */
+$lang['UserAdvManager_GhostTracker_Notice'] = 'When the Ghost Tracker feature is enabled, you can manage your visitors depending on the frequency of their visits. <b style="color: red;">IMPORTANT : If you enable this feature for the first time or you have reactivated after a long period off during which new visitors are registered, visit the Ghost Tracker tab and follow the instructions for Ghost Tracker initialization.</b>';
+/* Ghost Tracker Tab */
+$lang['UserAdvManager_GhostTracker_Init'] = 'If you enable this feature for the first time or you have reactivated after a long period off during which new visitors are registered, you must initialize or reset the Ghost Tracker. This action is done only after activation or reactivation of the option. Please click <u>once</u> the reset button below.';
+$lang['UserAdvManager_GhostTracker_User_List'] = 'When Ghost Tracker is enabled and initialized, you will find below the list of registered visitors who have not returned since x days. "x" is the number of days configured in the General Setup tab. In addition, you will find a column indicating whether an email reminder has been sent to targeted visitors. So, you can see at a glance and treat visitors who have not taken account of the reminder.<br><br>In this view, you can:
+<br><br>
+- Manually delete accounts <b>(manual drain)</b>
+<br>
+- Generate email reminder <b>with resetting the last visit date</b>. This allows to give a wildcard to targeted visitors. If the visitor has already received a reminder, nothing prevents to resent a new mail which will reset again, in fact, the last visit date.
+<br>';
+/* Errors and Warnings */
+$lang['GhostTracker_Init_OK'] = 'Ghost Tracker reset done !';
+/* Action button names */
+$lang['GT_Reset'] = 'Reset Ghost Tracker';
+// --------- End: New or revised $lang ---- from version 2.12.2
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.6
+/* Global Configuration Tab */
+$lang['UserAdvManager_No_Casse_true'] = ' Make the user account case insensitive at the registration and the identification step (USER = user = User = usER...).';
+// --------- End: New or revised $lang ---- from version 2.12.6
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.7
+/* Errors and Warnings */
+$lang['mail_text_error'] = '<b>Warning!</b> - Semicolons (;) are not allowed in addtionnal email text. This Character have been automatically replaced by a dot (.). For information, the amended text(s) is(are) shown in red in the corresponding field(s). Please, check it(them) out.';
+// --------- End: New or revised $lang ---- from version 2.12.7
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.8
+/* Errors and Warnings */
+$lang['mail_exclusionlist_error'] = 'Warning! You have entered a new line (CR-LF) at the begining of email exclusion list (shown in red below). Although this new line is not visible, it is still present and may cause malfunction of the plugin. Please re-type in your exclusion list in a manner that does not begin with a newline.';
+// --------- End: New or revised $lang ---- from version 2.12.8
+
+// --------- Starting below: New or revised $lang ---- from version 2.13.0
+/* Global Configuration Tab */
+$lang['UserAdvManager_Add_LastVisit_Column'] = ' View user monitoring record (date of last visit, time spent (in days) since their last visit ,...). Monitoring is purely informative for the administrator of the gallery.';
+$lang['UserAdvManager_Add_LastVisit_Column_true'] = ' Enable user monitoring list.';
+$lang['UserAdvManager_Add_LastVisit_Column_false'] = ' Disable user monitoring list (Default).';
+/* ConfirmMail Configuration Tab */
+$lang['ConfirmMail_Title'] = 'Advanced settings for validation of registries';
+$lang['Tab_ConfirmMail'] = 'Register validation settings';
+/* UserList Tab */
+$lang['Title_Tab5'] = 'UserAdvManager - User Information';
+$lang['UserList_Title'] = 'Monitoring registered users';
+$lang['Tab_UserList'] = 'Monitor users';
+$lang['UserAdvManager_User_List'] = 'This page is for information to the administrator. It displays a list of all users registered on the gallery showing the date and number of days since their last visit. The list is sorted in ascending order of number of days.
+<br><br>
+When the Ghost Tracker is active, the number of days without a visit appears as the following color code, according to the maximum set in the Ghost Tracker options:
+<br>
+- <b style="color: lime;">Green</b> : When the user has visited the gallery <b style="color: lime;"><u>less than 50%</u></b> of the maximum indicated in the Ghost Tracker.<br>
+- <b style="color: orange;">Orange</b> : When the user has visited the gallery <b style="color: orange;"><u> between 50% and 99% </u></b> of the maximum indicated in the Ghost Tracker.<br>
+- <b style="color: red;">Red</b> : When the user has visited the gallery <b style="color: red;"><u>for more than 100%</u></b> of the maximum indicated in the Ghost Tracker. <b><u>In this case, the user must also appear in the Ghost Tracker table.</u></b><br>
+<br>
+Example :
+<br>
+The maximum period of Ghost Tracker is configured to 100 days.
+<br>
+A user will appear in green if he visited the gallery for less than 50 days, in orange if his last visit took place between 50 and 99 days and red for 100 days and above.
+<br><br>
+<b>NOTE</b> : The list does not display who have not validated their registration (if the option of validating the registration is activated). These users are then managed in a special way in the "Validation management".';
+$lang['Nb_Days'] = 'Number of days<br>since last visit';
+/* UserManager Tab */
+$lang['UserAdvManager_ConfirmMail_User_List'] = 'When limiting the deadline for registration is enabled, you will find below the list of users whose validation registration is expected, <b style="text-decoration: underline;">whether or not</b> they are in time to validate.<br><br>The registration date is displayed in green when the user concerned is below the time limit to validate his registration. In this case, the validation key is still valid and we can send an email with or without a new validation key.<br><br>When the registration date appears in red, the validation period has expired. In this case, you must send an email with regeneration of validation key if you want to enable the user to validate their registration. <br><br>In all cases, it is possible to manually force the validation.<br><br>In this view, you can:
+<br><br>
+- Manually delete accounts <b>(manual drain)</b>
+<br>
+- Generate email reminder <b>without</b> generating a new key. Warning: Send an email reminder to targeted visitors. This function does not reset the date of registration of targeted visitors and the timeout is still valid.
+<br>
+- Generate email reminder <b>with</b> generating a new key. Warning : Send an email reminder to targeted visitors. This function also resets the date of registration of targeted visitors which equates to extend the deadline for validation.
+<br>
+- Submit a registration awaiting validation manually even if the expiry date has passed <b>(forcing validation)</b>.
+<br>';
+$lang['UserManager_Title'] = 'Advanced management of unvalidated';
+$lang['Title_Tab3'] = 'UserAdvManager - Management of registration validations';
+$lang['Tab_UserManager'] = 'Validations management';
+/* Ghost Tracker Tab */
+$lang['Reminder'] = 'Email Reminder';
+/* Errors and Warnings */
+$lang['Err_Userlist_Settings'] = 'This page is available only if "Users monitoring" is active in the "General Setup" tab.';
+// --------- End: New or revised $lang ---- from version 2.13.0
+// --------- Starting below: New or revised $lang ---- from version 2.13.1
+/* Global Configuration Tab */
+$lang['Title_Tab1'] = 'UserAdvManager 2.13.1 - General Setup';
+/* ConfirmMail Configuration Tab */
+$lang['Title_Tab2'] = 'UserAdvManager 2.13.1 - Register validation settings';
+// --------- End: New or revised $lang ---- from version 2.13.1
+// --------- Starting below: New or revised $lang ---- from version 2.13.3
+/* Global Configuration Tab */
+$lang['UserAdvManager_Username_Char_true'] = ' The following characters <b style="color: green;">(separate values with commas ","!)</b> will be forbidden for username choice == ';
+$lang['UserAdvManager_No_Comment_Anonymous'] = 'Nickname are mandatory for comments. <b style="color: red;">Enable this only if you have given permission for non-registered visitors to post comments (Piwigo\'s admin panel > Settings > General, Comments tab> "Comments for all")</b>';
+// --------- End: New or revised $lang ---- from version 2.13.3
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/description.txt
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/description.txt	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/description.txt	(revision 4552)
@@ -0,0 +1,1 @@
+Refuerza las posibilidades de gestión de usuarios
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/plugin.lang.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/plugin.lang.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/es_ES/plugin.lang.php	(revision 4552)
@@ -0,0 +1,250 @@
+<?php
+
+global $lang,$conf;
+
+$conf_UserAdvManager = isset($conf['UserAdvManager']) ? explode(";" , $conf['UserAdvManager']) : array();
+
+
+/* Global Configuration Tab */
+$lang['Tab_Global'] = 'Configuración general';
+$lang['UserAdvManager_Mail_Info'] = ' Información por correo electrónico para el usuario:';
+$lang['UserAdvManager_Mail_Info_true'] = ' Enviar correo electrónico al usuario al hacerse cargo de su información de conexión al registrarse o actualizar su perfil.';
+$lang['UserAdvManager_Mail_Info_false'] = ' Desactiva el envío de correo electrónico. (por defecto)';
+$lang['UserAdvManager_MailInfo_Text'] = ' Texto utilizado para introducir el correo electrónico enviado al usuario que le permita validar su dirección de correo electrónico<br><b style="color: red;">(¡¡¡ </b><b style="text-decoration: underline; color: red;">¡ADVERTENCIA!</b> <b style="color: red;">La modificación de texto está disponible SOLO si está habilitada la información de los usuarios de correo. Utilice las etiquetas de múltiples idiomas de plugin Descripción extendido si se ha activado este plugin !!!)</b>';
+$lang['UserAdvManager_No_Casse'] = ' Caso el nombre de usuario insensible';
+$lang['UserAdvManager_No_Casse_false'] = ' Que el caso confidencial del usuario. (por defecto)';
+$lang['UserAdvManager_Username_Char'] = ' Carácter limitado previsto para nombre de usuario';
+$lang['UserAdvManager_Username_Char_false'] = ' Utilice el nombre de usuario por defecto fijado carácter de control. (por defecto)';
+$lang['UserAdvManager_Confirm_Mail'] = 'Confirmación de correo electrónico:';
+$lang['UserAdvManager_Confirm_Mail_true'] = ' Enviar un correo electrónico al usuario que le permita validar su correo electrónico y su registro.';
+$lang['UserAdvManager_Confirm_Mail_false'] = ' Usar la Piwigo valor predeterminado de registro del sistema (sin validación de registro). (por defecto)';
+$lang['UserAdvManager_ConfirmMail_Text'] = ' Texto utilizado para introducir el correo electrónico enviado al usuario que le permita validar su dirección de correo electrónico<br><b style="color: red;">(¡¡¡ </b><b style="text-decoration: underline; color: red;">¡ADVERTENCIA!</b> <b style="color: red;">La modificación de texto está disponible SOLO si está habilitada la confirmación de la dirección de correo electrónico. Utilice las etiquetas de múltiples idiomas de plugin Descripción extendido si se ha activado este plugin !!!)</b>';
+$lang['UserAdvManager_Confirm_Group_Notice'] = 'ADVERTENCIA : Uso de grupos de validación requiere que se haya creado al menos un grupo de usuarios y se define "por defecto" en la gestión de Piwigo de grupos de usuarios.';
+$lang['UserAdvManager_No_Confirm_Group'] = 'Grupo de usar para los usuarios que no han validado su dirección de correo electrónico.';
+$lang['UserAdvManager_Validated_Group'] = 'Grupo de usar para los usuarios que han validado su dirección de correo electrónico.';
+$lang['UserAdvManager_Confirm_Status_Notice'] = 'ADVERTENCIA : El uso de la validación de estado requiere que se haya mantenido el "Invitado" del usuario con la configuración predeterminada (como usuario de plantilla) para los nuevos registrados. Nota Puede establecer cualquier otro usuario como una plantilla para nuevos registrados. Por favor, consulte la documentación de la Piwigo para obtener más detalles.';
+$lang['UserAdvManager_No_Confirm_Status'] = 'Situación de utilizar para los usuarios que no han validado su dirección de correo electrónico.';
+$lang['UserAdvManager_Validated_Status'] = 'Situación de utilizar para los usuarios que han validado su dirección de correo electrónico. Vamos ------- para el uso de valores por defecto de Piwigo';
+$lang['UserAdvManager_No_Comment_Anonymous_true'] = ' El campo de autor tienen que ser llenados para enviar un comentario.';
+$lang['UserAdvManager_No_Comment_Anonymous_false'] = ' Utilice la configuración predeterminada Piwigo sobre los comentarios de envío. (por defecto)';
+$lang['UserAdvManager_MailExclusion'] = 'La exclusión proveedor de correo electrónico:';
+$lang['UserAdvManager_MailExclusion_true'] = ' Establezca el proveedor en la exclusión de correo electrónico (por ejemplo: @hotmail.* o @msn.*)';
+$lang['UserAdvManager_MailExclusion_false'] = ' Desactive el correo electrónico OFF exclusión proveedor. (por defecto)';
+$lang['UserAdvManager_MailExclusion_List'] = ' Si la exclusión proveedor de correo electrónico está ajustado a ON, complete los dominios de correo electrónico para excluir a continuación. Tienes que utilizar el siguiente formato: <br>@[Nombre de dominio].[extensión de dominio] - Ejemplo: @hotmail.com <br>Separa los distintos ámbitos, con una coma (,)<br>';
+
+
+/* ConfirmMail Configuration Tab */
+$lang['UserAdvManager_ConfirmMail_Info'] = 'Limitación de tiempo para la validación de la inscripción: <br>Si habilita esta opción, seleccione el tiempo deseado (x) en el campo de abajo. Los visitantes que se registren tendrán entonces x días para validar su inscripción. Después de este período en el enlace de validación que han recibido por correo será vencido.<br>';
+$lang['UserAdvManager_ConfirmMail_TimeOut_true'] = 'Habilitar la limitación del plazo de inscripción.';
+$lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Deshabilitar limitar el plazo de inscripción. (Default)';
+$lang['UserAdvManager_ConfirmMail_TimeOut'] = 'Retraso de validación:';
+$lang['UserAdvManager_ConfirmMail_Delay_Info'] = 'Introduce el número de días antes de la expiración de la validación de registro : ';
+$lang['UserAdvManager_ConfirmMail_Remail'] = 'Recordatorio por correo electrónico para activar o desactivar de registros validados:';
+$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Activar recordatorio por correo electrónico';
+$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Deshabilitar recordatorio por correo electrónico. (Default)';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Contenido a la medida del mensaje recordatorio con la regeneración de la clave de validación. <br>Si deja en blanco, el recordatorio por correo electrónico sólo se incluirá el enlace de validación. Por tanto, es muy recomendable tomar un pequeño texto explicativo. (Nota: El texto pre-llenados en la instalación del plugin se muestra como un ejemplo)<br><br><b style="color: red;">(¡¡¡ </b><b style="text-decoration: underline; color: red;">¡ADVERTENCIA!</b> <b style="color: red;">Modificación de texto sólo está disponible si está habilitada recordatorio por correo electrónico. Utilice las etiquetas de múltiples idiomas de plugin Descripción extendido si se ha activado este plugin !!!)</b>';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Contenido a la medida del mensaje recordatorio sin regeneración de la clave de validación.<br>Si se deja en blanco, el recordatorio por correo electrónico sólo se incluirá el enlace de validación. Por tanto, es muy recomendable tomar un pequeño texto explicativo. (Nota: El texto pre-llenados en la instalación del plugin se muestra como un ejemplo)<br><br><b style="color: red;">(¡¡¡ </b><b style="text-decoration: underline; color: red;">¡ADVERTENCIA!</b> <b style="color: red;">Modificación de texto sólo está disponible si está habilitada recordatorio por correo electrónico. Utilice las etiquetas de múltiples idiomas de plugin Descripción extendido si se ha activado este plugin !!!)</b>';
+
+
+/* UserManager Tab */
+$lang['Registration_Date'] = 'Fecha de registro';
+
+
+/* Mailing */
+$lang['infos_mail %s'] = '%s, Aquí encontrará su información para entrar en la galería:';
+$lang['User: %s'] = 'Usuario : %s';
+$lang['Password: %s'] = 'Contraseña: %s';
+$lang['Add of %s'] = 'Añadir de %s';
+$lang['Update of %s'] = 'Actualización de %s';
+$lang['Link: %s'] = 'Por favor, haga clic en este enlace para confirmar su registro: %s';
+$lang['Reminder_with_key_of_%s'] = '%s, su clave de validación se ha renovado';
+$lang['Reminder_without_key_of_%s'] = '%s, su clave de validación expirará';
+$lang['Ghost_remainder_of_%s'] = '%s, este es un recordatorio por correo electrónico';
+
+
+/* Email confirmation page */
+$lang['title_confirm_mail'] = 'Validar su inscripción';
+$lang['confirm_mail_page_title'] = 'Validar su inscripción';
+$lang['confirm_mail_ok'] = '<br><br><br>Gracias a haber confirmado su dirección de correo electrónico y su registro en la galería. ¡Have fun!<br><br><br><br>';
+$lang['confirm_mail_bad'] = '<br><br><br>Su clave de activación es incorrecta o está vencido o que ya ha validado su cuenta, por favor, póngase en contacto con el webmaster para solucionar este problema.<br><br><br><br>';
+
+
+/* Errors and Warnings */
+$lang['UserAdvManager_audit_ok'] = 'Auditoría OK';
+$lang['Err_audit_no_casse'] = '<b>Estas cuentas son idénticos para el caso de cerca:</b> ';
+$lang['Err_audit_username_char'] = '<b>Esta cuenta se utiliza uno o más caracteres prohibidos:</b> ';
+$lang['Err_audit_email_forbidden'] = '<b>Esta cuenta se utiliza un proveedor de correo electrónico está prohibido:</b> ';
+$lang['Err_audit_advise'] = '<b>Usted tiene que realizar correcciones para cumplir con nuevas normas que ha activado.<br>Use una herramienta de gestión de base de datos para corregir las cuentas de usuario directamente en la tabla ###_USERS';
+$lang['UserAdvManager_Empty Author'] = 'El campo de autor tienen que ser llenados para enviar un comentario.';
+if ( isset($conf_UserAdvManager[1]) and $conf_UserAdvManager[1] == 'true' )
+	$lang['reg_err_login5'] = 'Nombre de usuario ya existe, el nombre de ADVERTENCIA se distinguen las mayúsculas (Shift = pequeño).';
+$lang['reg_err_login6'] = 'Nombre de usuario no tiene que coincidir con los siguientes caracteres: ';
+$lang['reg_err_login7'] = 'Su proveedor de correo electrónico está prohibido para el registro. Proveedores de correo electrónico en veda son: ';
+$lang['UserAdvManager_empty_pwd'] = '[contraseña vacía]';
+$lang['UserAdvManager_no_update_pwd'] = '[Perfil actualizado sin cambiar contraseña]';
+$lang['invalid_pwd'] = '¡Nombre de usuario o contraseña no válidos!';
+$lang['Err_ConfirmMail_Settings'] = 'Esta página estará disponible sólo si la "Confirmación de correo electrónico" está activado en "Configuración general".';
+$lang['Err_UserManager_Settings'] = 'Esta página está disponible sólo si "Habilitar limitar el plazo de inscripción" está activo en la pestaña "Configuración de ConfirmMail" y un grupo de usuarios no validados se encuentra en "Configuración general".';
+$lang['No_validation_for_Guest'] = 'El "Invitado" cuenta no está sujeta a la validación';
+$lang['No_validation_for_default_user'] = 'La cuenta predeterminada no está sujeta a la validación';
+$lang['No_validation_for_Webmaster'] = 'El "webmaster" cuenta no está sujeta a la validación';
+$lang['No_validation_for_your_account'] = 'Tu cuenta de administrador personnal no está sujeta a la validación';
+$lang['Database_Error'] = '<b><u>¡Advertencia! Error de integridad críticas en su base de datos.</u></b><br><br>Por favor, compruebe la integridad de la tabla de #_user_confirm_mail.';
+
+
+/* Processing messages */
+$lang['%d_Mail_With_Key'] = '%d mensaje con la clave de la renovación fue enviado';
+$lang['%d_Mails_With_Key'] = '%d Mensajes con la renovación de claves fueron enviados';
+$lang['%d_Reminder_Sent'] = '%d mensaje recordatorio fue enviado';
+$lang['%d_Reminders_Sent'] = '%d mensajes fueron enviados recordatorio';
+$lang['%d_Validated_User'] = '%d usuario validado manualmente';
+$lang['%d_Validated_Users'] = '%d usuarios validados manualmente';
+
+
+/* Action button names */
+$lang['Delete_selected'] = 'Suprimir';
+$lang['Mail_without_key'] = 'Aviso sin clave';
+$lang['Mail_with_key'] = 'Aviso con clave';
+$lang['Force_Validation'] = 'Validación forzoso';
+$lang['Reminder_Email'] = 'Recordatorio por email';
+
+
+
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.0 and 2.12.1
+/* Global Configuration Tab */
+$lang['UserAdvManager_Title1'] = 'Gestión de usuarios de registro';
+$lang['UserAdvManager_Title2'] = 'Gestión de validación de registro y de los grupos / estados';
+$lang['UserAdvManager_Password_Enforced'] = 'Fortalecimiento de contraseñas - Al habilitar esta opción hace que la toma de la contraseña necesaria para los visitantes de registro. Además, la contraseña introducida por el visitante se encontrará con una puntuación de complejidad (<b style="color:green;"> activar y guardar la configuración para obtener más información </b>).';
+$lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Explicaciones:</b> <b style="color: green;">Una puntuación contraseña se calcula sobre los parámetros básicos: longitud, tipo de caracteres utilizados (letras, números, mayúsculas, minúsculas, caracteres especiales). Si la contraseña del usuario no puntuación, la puntuación alcanzada se muestra con la puntuación mínima para llegar y una indicación para aumentar el valor de esta puntuación. Para que te hagas una idea, una puntuación por debajo de 100 se considera "baja complejidad". Entre 100 y 500, la complejidad es mayor y la media. Más allá de 500, que es ¡Fort Knox! ;-)<br>Usted puede hacer sus contraseñas complejidad de las pruebas utilizando el campo de abajo. Esto le permitirá tener una idea de la puntuación para definir un nivel de complejidad a medida.</b>';
+$lang['UserAdvManager_PasswordTest'] = 'Contraseña para poner a prueba : ';
+$lang['UserAdvManager_ScoreTest'] = 'Puntuación : ';
+$lang['PasswordTest'] = 'Cálculo de la puntuación';
+$lang['UserAdvManager_Password_Enforced_true'] = ' Contraseña fuerte que se requiere - Introduzca el puntaje mínimo (valor mínimo) de la complejidad de las contraseñas == ';
+$lang['UserAdvManager_Password_Enforced_false'] = ' No fortalecer las contraseñas. (por defecto)';
+$lang['UserAdvManager_AdminPassword_Enforced'] = 'Aplicar también el control de la complejidad de contraseñas cuando un administrador crea un usuario? Nota: Si el usuario creado desea cambiar su contraseña y el fortalecimiento de las contraseñas de los usuarios es activo, va a estar sujeto a las normas establecidas.';
+$lang['UserAdvManager_AdminPassword_Enforced_true'] = 'Habilitar contraseñas para el fortalecimiento de los administradores.';
+$lang['UserAdvManager_AdminPassword_Enforced_false'] = 'Deshabilitar contraseñas de fortalecimiento para administradores. (por defecto)';
+$lang['UserAdvManager_GhostTracker'] = 'Ghost Tracker - Permite gestionar los usuarios registrados de acuerdo a su fecha de última visita :';
+$lang['UserAdvManager_GhostTracker_true'] = ' Habilitar Ghost Tracker.';
+$lang['UserAdvManager_GhostTracker_false'] = ' Deshabilitar Ghost Tracker. (por defecto)';
+$lang['UserAdvManager_GhostTracker_DayLimit'] = ' Escriba aquí el límite máximo, en días, entre dos visitas de un visitante. Cuando se alcanza este límite, el visitante aparecerá en el cuadro sobre el "Ghost Tracker" ficha.';
+$lang['UserAdvManager_GhostTracker_ReminderText'] = ' Texto utilizado en el recordatorio por correo electrónico enviado a animar a los visitantes para volver a la galería (Nota: El texto pre-llenados en la instalación del plugin se muestra como un ejemplo).<br><b style="color: red;">(¡¡¡ </b><b style="text-decoration: underline; color: red;">¡ADVERTENCIA!</b> <b style="color: red;">Modificación de texto sólo está disponible si está habilitada Ghost Tracker. Utilice las etiquetas de múltiples idiomas de plugin Descripción extendido si se ha activado este plugin!)</b>';
+/* Ghost Tracker Tab */
+$lang['GhostTracker_Title'] = 'Gestión avanzada de usuarios fantasma';
+$lang['Title_Tab4'] = 'UserAdvManager - Ghost Tracker';
+$lang['Tab_GhostTracker'] = 'Ghost Tracker';
+$lang['LastVisit_Date'] = 'Última visita';
+$lang['Ghost_Reminder'] = 'Recordatorio por email';
+$lang['Reminder_Sent_OK'] = 'SI';
+$lang['Reminder_Sent_NOK'] = 'NO';
+/* Errors and Warnings */
+$lang['UserAdvManager_save_config'] ='Configuración guardada.';
+$lang['reg_err_login3'] = '¡Seguridad: Contraseña es obligatorio!';
+$lang['reg_err_login4_%s'] = 'Seguridad: Un sistema de control calcula la puntuación de la complejidad elegido contraseñas. La complejidad de la contraseña es demasiado baja (puntuación = %s). Por favor, elija una nueva contraseña más segura siguiendo estas reglas:<br>
+- Usar letras y números<br>
+- Utilice minúsculas y mayúsculas<br>
+- Aumentar su longitud (número de caracteres)<br>
+Las contraseñas Puntuación mínima exigida por el administrador es el siguiente: ';
+$lang['No_reminder_for_Guest'] = 'El "Invitado" cuenta no está sujeta a recibir recordatorios de Ghost Tracker';
+$lang['No_reminder_for_default_user'] = 'La cuenta predeterminada no está sujeto a recibir recordatorios de Ghost Tracker';
+$lang['No_reminder_for_Webmaster'] = 'El "webmaster" cuenta no está sujeta a recibir recordatorios de Ghost Tracker';
+$lang['No_reminder_for_your_account'] = 'Usted cuenta de administrador personnal no está sujeto a recibir recordatorios de Ghost Tracker';
+$lang['Err_GhostTracker_Settings'] = 'Esta página está disponible sólo si "Ghost Tracker" está activo en la pestaña "Configuración general".';
+/* Action button names */
+$lang['audit'] = 'Auditar la configuración';
+$lang['submit'] = 'Guardar configuración';
+// --------- End: New or revised $lang ---- from version 2.12.0 and 2.12.1
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.2
+/* Global Configuration Tab */
+$lang['UserAdvManager_GhostTracker_Notice'] = 'Cuando está activada la característica Ghost Tracker, puede administrar sus visitantes en función de la frecuencia de sus visitas. <b style="color: red;">IMPORTANTE: Si activa esta función por primera vez o ha reactivado después de un largo período de tiempo y ganancias durante el que estén registrados los nuevos visitantes, visite la ficha Tracker Ghost y siga las instrucciones para la inicialización del Ghost Tracker.</b>';
+/* Ghost Tracker Tab */
+$lang['UserAdvManager_GhostTracker_Init'] = 'Si habilita esta función por primera vez o ha reactivado después de un largo período durante el cual los visitantes fuera de nuevo se ha registrado, usted debe inicializar o restablecer el Rastreador de Ghost. Esta acción se realiza sólo después de la activación o reactivación de la opción. Por favor, haga clic en <u>una vez</u> el botón de reset de abajo.';
+$lang['UserAdvManager_GhostTracker_User_List'] = 'Cuando la Tracker Ghost está habilitado y se inicializa, se encuentra por debajo de la lista de visitantes registrados que no han regresado desde los x días. "x" es el número de días configurado en la pestaña Configuración general. Además, usted encontrará una columna que indica si un recordatorio por correo electrónico ha sido enviado a los visitantes específicos. Así, se puede ver a simple vista y tratar a los visitantes que no han tenido en cuenta el recordatorio.<br><br>En esta vista, usted puede:
+<br><br>
+- Elimine manualmente las cuentas de <b>(drenaje manual)</b>
+<br>
+- Generar recordatorio por correo electrónico <b>con el cambio de la fecha última visita</b>. Esto permite dar un comodín a los visitantes específicos. Si el visitante ya ha recibido un recordatorio, nada impide a resentir un nuevo correo que se restablecerá de nuevo, de hecho, la fecha de la última visita.
+<br>';
+/* Errors and Warnings */
+$lang['GhostTracker_Init_OK'] = '¡Ghost Tracker restablecer hecho!';
+/* Action button names */
+$lang['GT_Reset'] = 'Perdí Ghost Tracker';
+// --------- End: New or revised $lang ---- from version 2.12.2
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.6
+/* Global Configuration Tab */
+$lang['UserAdvManager_No_Casse_true'] = ' Hacer el caso de cuenta de usuario e insensibles en el registro y el paso de identificación (USER = user = User = usER...).';
+// --------- End: New or revised $lang ---- from version 2.12.6
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.7
+/* Errors and Warnings */
+/* TODO */$lang['mail_text_error'] = '<b>¡Advertencia!</b> - Punto y coma (;) no están permitidos en el texto del mensaje addtionnal. Este carácter se han sustituido automáticamente por un punto (.). Para más información, el texto modificado(s) es(son) se muestra en rojo en el campo correspondiente(s). Por favor, compruebe que (ellos) hacia fuera.';
+// --------- End: New or revised $lang ---- from version 2.12.7
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.8
+/* Errors and Warnings */
+/* TODO */$lang['mail_exclusionlist_error'] = '¡Advertencia! Ha introducido una nueva línea (CR-LF) al principio de la lista de exclusión de correo electrónico (en rojo abajo). Aunque esta nueva línea no es visible, todavía está presente y puede causar un mal funcionamiento del plugin. Por favor, vuelva a escribir en su lista de exclusión de una manera que no comienza con una nueva línea.';
+// --------- End: New or revised $lang ---- from version 2.12.8
+
+// --------- Starting below: New or revised $lang ---- from version 2.13.0
+/* Global Configuration Tab */
+$lang['UserAdvManager_Add_LastVisit_Column'] = ' Ver registro de control de usuario (fecha de la última visita, el tiempo (en días) desde su última visita ,...). El seguimiento es meramente informativo para el administrador de la galería.';
+$lang['UserAdvManager_Add_LastVisit_Column_true'] = ' Habilitar la lista de control de usuario.';
+$lang['UserAdvManager_Add_LastVisit_Column_false'] = ' Deshabilitar la lista de control de usuario (por defecto).';
+/* ConfirmMail Configuration Tab */
+$lang['ConfirmMail_Title'] = 'Ajustes avanzados para la validación de usuarios registrados';
+$lang['Tab_ConfirmMail'] = 'Configuración de validación de registro';
+/* UserList Tab */
+$lang['Title_Tab5'] = 'UserAdvManager - Información del usuario';
+$lang['UserList_Title'] = 'Seguimiento a los usuarios registrados';
+$lang['Tab_UserList'] = 'Monitor de usuarios';
+$lang['UserAdvManager_User_List'] = 'Esta página es para información al administrador. Se muestra una lista de todos los usuarios registrados en la galería que indique la fecha y el número de días transcurridos desde su última visita. La lista está ordenada por orden ascendente del número de días.
+<br><br>
+Cuando el Ghost Tracker está activo, el número de días sin una visita aparece como el código de color siguientes, según el máximo establecido en las opciones de Ghost Tracker:
+<br>
+- <b style="color: lime;">Verde</b> : Cuando el usuario ha visitado la galería de <b style="color: lime;"><u>menos del 50%</u></b> de la máxima indicada en el Ghost Tracker.<br>
+- <b style="color: orange;">Naranja</b> : Cuando el usuario ha visitado la galería <b style="color: orange;"><u>entre 50% y 99%</u></b> de la máxima indicada en el Ghost Tracker.<br>
+- <b style="color: red;">Red</b> : Cuando el usuario ha visitado la galería <b style="color: red;"><u>por más de 100%</u></b> de la máxima indicada en el Ghost Tracker. <b><u>En este caso, el usuario también debe aparecer en el cuadro Ghost Tracker.</u></b><br>
+<br>
+Ejemplo:
+<br>
+El período máximo de Ghost Tracker está configurado para 100 días.
+<br>
+Un usuario aparecerá en verde si visitó la galería de menos de 50 días, en naranja si su última visita tuvo lugar entre el 50 y 99 días y el rojo durante 100 días o más.
+<br><br>
+<b>NOTA</b> : La lista no muestra que no han validado su registro (si la opción de validar el registro está activado). Estos usuarios son administrados después de una manera especial en la "gestión de la validación".';
+$lang['Nb_Days'] = 'Número de días<br>desde la última visita';
+/* UserManager Tab */
+$lang['UserAdvManager_ConfirmMail_User_List'] = 'Al limitar el plazo de inscripción está habilitada, podrás encontrar más adelante la lista de usuarios cuya validación de registro es de esperar,  <b style="text-decoration:underline;">o no</b> que están en tiempo para validar. <br><br>La fecha de registro se muestra en verde cuando el usuario en cuestión está por debajo del límite de tiempo para validar su inscripción. En este caso, la clave de validación es todavía válido y se puede enviar un correo electrónico con o sin una clave de validación nueva. <br><br>Cuando la fecha de registro aparece en rojo, el período de validación ha caducado. En este caso, debe enviar un correo electrónico con la regeneración de la clave de validación si desea que el usuario pueda validar su inscripción. <br><br>En todos los casos, es posible forzar manualmente la validación. <br><br>En este punto de vista, usted puede:
+<br><br>
+- Elimine manualmente las cuentas de <b>(drenaje manual)</b>
+<br>
+- Generar recordatorio por correo electrónico <b>sin</b> generar una nueva clave. Advertencia: Enviar un recordatorio por correo electrónico dirigido a los visitantes. Esta función no se restaura la fecha de registro de visitantes objetivo y el tiempo de espera sigue siendo válida.
+<br>
+- Generar recordatorio por correo electrónico <b>con</b> generar una nueva clave. Advertencia: Enviar un recordatorio por correo electrónico dirigido a los visitantes. Esta función también se restablece la fecha de registro de visitantes y específicos, que equivale a prorrogar el plazo para la validación.
+<br>
+- Presentar una solicitud de registro en espera de validación manual, aunque la fecha de caducidad ha pasado <b>(forzando la validación)</b>.
+<br>';
+$lang['UserManager_Title'] = 'Gestión avanzada de no validados';
+$lang['Title_Tab3'] = 'UserAdvManager - Gestión de las validaciones de registro';
+$lang['Tab_UserManager'] = 'La gestión de Validaciones';
+/* Ghost Tracker Tab */
+$lang['Reminder'] = 'Email Recordatorio';
+/* Errors and Warnings */
+$lang['Err_Userlist_Settings'] = 'Esta página está disponible sólo si los "usuarios de seguimiento" está activo en la pestaña "General Setup".';
+// --------- End: New or revised $lang ---- from version 2.13.0
+// --------- Starting below: New or revised $lang ---- from version 2.13.1
+/* Global Configuration Tab */
+$lang['Title_Tab1'] = 'UserAdvManager 2.13.1 - Configuración general';
+/* ConfirmMail Configuration Tab */
+$lang['Title_Tab2'] = 'UserAdvManager 2.13.1 - Configuración de validación de registro';
+// --------- End: New or revised $lang ---- from version 2.13.1
+// --------- Starting below: New or revised $lang ---- from version 2.13.3
+/* Global Configuration Tab */
+$lang['UserAdvManager_Username_Char_true'] = ' Los siguientes caracteres <b style="color: green;">(valores separados con comas ","!)</b> serán prohibidos para la elección del nombre de usuario == ';
+$lang['UserAdvManager_No_Comment_Anonymous'] = 'Alias son obligatorias para los comentarios. <b style="color: red;">No habilite esta a menos que haya dado permiso para no registrados, los visitantes a enviar comentarios (panel de administración Piwigo> Ajustes> General, ficha Comentarios> "Comentarios para Todos")</b>';
+// --------- End: New or revised $lang ---- from version 2.13.3
+
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/description.txt
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/description.txt	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/description.txt	(revision 4552)
@@ -0,0 +1,1 @@
+Permet de renforcer les possibilités de gestion des utilisateurs
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/plugin.lang.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/fr_FR/plugin.lang.php	(revision 4552)
@@ -0,0 +1,249 @@
+<?php
+
+global $lang,$conf;
+
+$conf_UserAdvManager = isset($conf['UserAdvManager']) ? explode(";" , $conf['UserAdvManager']) : array();
+
+
+/* Global Configuration Tab */
+$lang['Tab_Global'] = 'Configuration Générale';
+$lang['UserAdvManager_Mail_Info'] = 'Mail d\'information à l\'utilisateur :';
+$lang['UserAdvManager_Mail_Info_true'] = ' Envoyer un mail à l\'utilisateur en reprenant ses informations de connexion lors de son inscription ou à la mise à jour de son profil.';
+$lang['UserAdvManager_Mail_Info_false'] = ' Désactive l\'envoi de mail d\'info. (valeur par défaut)';
+$lang['UserAdvManager_MailInfo_Text'] = ' Texte utilisé pour l\'introduction du mail envoyé à l\'utilisateur pour son inscription ou la mise à jour de son profil<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si le mail d\'information à l\'utilisateur est activé. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
+$lang['UserAdvManager_No_Casse'] = 'Utilisateur insensible à la casse';
+$lang['UserAdvManager_No_Casse_false'] = ' Laisser les utilisateur sensible à la casse. (valeur par défaut)';
+$lang['UserAdvManager_Username_Char'] = ' Caractères limités pour le nom d\'utilisateur';
+$lang['UserAdvManager_Username_Char_false'] = ' Laisser le contrôle par défaut du nom d\'utilisateur. (valeur par défaut)';
+$lang['UserAdvManager_Confirm_Mail'] = 'Confirmation de l\'adresse email :';
+$lang['UserAdvManager_Confirm_Mail_true'] = ' Envoyer un mail permettant a l\'utilisateur de confirmer son adresse email et donc son compte utilisateur.';
+$lang['UserAdvManager_Confirm_Mail_false'] = ' Système d\'inscription et de mise à jour standard sans confirmation de l\'adresse email. (valeur par défaut)';
+$lang['UserAdvManager_ConfirmMail_Text'] = ' Texte utilisé pour l\'introduction du mail envoyé à l\'utilisateur pour confirmer son adresse mail<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si la confirmation de l\'adresse email est activée. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
+$lang['UserAdvManager_Confirm_Group_Notice'] = 'ATTENTION : L\'utilisation des groupes de validation nécessite que vous ayez créé au moins un groupe d\'utilisateurs et qu\'il soit défini "par défaut" dans la gestion des groupes d\'utilisateurs de Piwigo.';
+$lang['UserAdvManager_No_Confirm_Group'] = 'Groupe à utiliser pour les utilisateurs qui n\'ont pas encore confirmé leur adresse email';
+$lang['UserAdvManager_Validated_Group'] = 'Groupe à utiliser pour les utilisateurs qui ont validé leur adresse email';
+$lang['UserAdvManager_Confirm_Status_Notice'] = 'ATTENTION : L\'utilisation des status de validation nécessite que vous ayez conservé l\'utilisateur "Guest" pour le paramétrage par défaut (modèle) pour les nouveaux inscrits. A noter : Vous pouvez définir n\'importe quel autre utilisateur comme modèle pour les nouveaux inscrits. Reportez-vous à la documentation de Piwigo pour plus de détails.';
+$lang['UserAdvManager_No_Confirm_Status'] = 'Status utilisateur à utiliser pour les utilisateurs qui n\'ont pas encore confirmé leur adresse email';
+$lang['UserAdvManager_Validated_Status'] = 'Status utilisateur à utiliser pour les utilisateurs qui ont validé leur adresse email, laissez ------- pour garder la valuer par défaut de PWG';
+$lang['UserAdvManager_No_Comment_Anonymous_true'] = ' Le champs auteur doit être renseigné pour enregistrer un commentaire.';
+$lang['UserAdvManager_No_Comment_Anonymous_false'] = ' Laisser le fonctionnement par défaut pour enregistrer un commentaire. (valeur par défaut)';
+$lang['UserAdvManager_MailExclusion'] = 'Exclusion des domaines de messagerie:';
+$lang['UserAdvManager_MailExclusion_true'] = ' Activer l\'exclusion des domaines de messagerie (par exemple @hotmail.* ou @msn.*)';
+$lang['UserAdvManager_MailExclusion_false'] = ' Désactiver l\'exclusion des domaines de messagerie. (valeur par défaut)';
+$lang['UserAdvManager_MailExclusion_List'] = ' Si l\'exclusion de domaines de messagerie est activée, saisissez les domaines à exclure ici. Il faut respecter le format suivant :<br>@[nom_du_domaine].[extension_du_domaine] - Exemple : @hotmail.com<br><br>Séparez les domaines par une virgule<br>';
+
+
+/* ConfirmMail Configuration Tab */
+$lang['UserAdvManager_ConfirmMail_Info'] = 'Limitation du délai de validation de l\'inscription :<br>Si vous activez cette option, sélectionnez le délai (x) souhaité dans la liste qui suit. Les visiteurs qui s\'inscriront alors auront x jours de délais pour valider leur inscription. Passé ce délai, le lien de validation qu\'ils auront reçu par mail sera expiré.<br>';
+$lang['UserAdvManager_ConfirmMail_TimeOut_true'] = 'Activer la limitation du délai d\'inscription.';
+$lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Désactiver la limitation du délai d\'inscription. (valeur par défaut)';
+$lang['UserAdvManager_ConfirmMail_TimeOut'] = 'Délai d\activation :';
+$lang['UserAdvManager_ConfirmMail_Delay_Info'] = 'Saisissez ici le nombre de jours avant expiration de la validation d\'inscription : ';
+$lang['UserAdvManager_ConfirmMail_Remail'] = 'Activer ou désactiver la fonctionnalité de rappel des inscrits non validés :<br>';
+$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Activer le rappel par mail.';
+$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Désactiver le rappel par mail. (valeur par défaut)';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Contenu personnalisé du message de rappel avec regénération de clé de validation.<br>Si laissé vide, le mail de rappel ne comportera que le lien de validation. Il est donc vivement conseillé de saisir un petit texte explicatif. (NB : Le texte pré-renseigné à l\'installation du plugin est donné en exemple)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si le rappel par email est activé. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
+$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Contenu personnalisé du message de rappel sans regénération de clé de validation.<br>Si laissé vide, le mail de rappel sera vide. Il est donc vivement conseillé de saisir un petit texte explicatif. (NB : Le texte pré-renseigné à l\'installation du plugin est donné en exemple)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si le rappel par email est activé. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
+
+
+/* UserManager Tab */
+$lang['Registration_Date'] = 'Date d\'enregistrement';
+
+
+/* Mailing */
+$lang['infos_mail %s'] = '%s, voici vos informations pour vous identifier sur la galerie :';
+$lang['User: %s'] = 'Utilisateur : %s';
+$lang['Password: %s'] = 'Mot de passe: %s';
+$lang['Add of %s'] = 'Création de %s';
+$lang['Update of %s'] = 'Mise à jour de %s';
+$lang['Link: %s'] = 'Cliquez sur le lien suivant pour confirmer votre inscription : %s';
+$lang['Reminder_with_key_of_%s'] = '%s, votre clé de confirmation a été renouvelée';
+$lang['Reminder_without_key_of_%s'] = '%s, votre clé de confirmation va expirer';
+$lang['Ghost_remainder_of_%s'] = '%s, ceci est un email de rappel.';
+
+
+/* Email confirmation page */
+$lang['title_confirm_mail'] = 'Confirmation de votre inscription';
+$lang['confirm_mail_page_title'] = 'Confirmation d\'inscription';
+$lang['confirm_mail_ok'] = '<br><br><br>Merci d\'avoir confirmé votre mail et aussi et surtout votre inscription sur le site, profitez bien des photos ...<br><br><br><br>';
+$lang['confirm_mail_bad'] = '<br><br><br>Votre clef d\'activation unique est érronée ou expirée ou vous avez déjà validé votre compte, veuillez contacter le webmaster pour régler ce problème.<br><br><br><br>';
+
+
+/* Errors and Warnings */
+$lang['UserAdvManager_audit_ok'] = 'Audit OK';
+$lang['Err_audit_no_casse'] = '<b>Ces comptes sont identiques à la casse près :</b> ';
+$lang['Err_audit_username_char'] = '<b>Ce compte contient un ou des caractères interdits :</b> ';
+$lang['Err_audit_email_forbidden'] = '<b>Ce compte contient des domaines de messagerie interdit :</b> ';
+$lang['Err_audit_advise'] = '<b>Vous avez des corrections a faire pour respecter les nouvelles règles que vous avez activées.<br>Utilisez un utilitaire de gestion de base de données pour corriger les comptes utilisateurs directement dans la table ###_USERS si nécessaire.</b><br><br>';
+$lang['UserAdvManager_Empty Author'] = 'Le champs auteur doit être rempli pour enregistrer un commentaire.';
+if ( isset($conf_UserAdvManager[1]) and $conf_UserAdvManager[1] == 'true' )
+	$lang['reg_err_login5'] = 'ce nom utilisateur est déjà pris, ATTENTION le nom est insensible à la casse (Majuscule = Minuscule).';
+$lang['reg_err_login6'] = 'le nom utilisateur ne doit pas contenir les caractère suivants : ';
+$lang['reg_err_login7'] = 'L\'adresse email est issue d\'un prestataire interdit. Les prestataires d\'adresses email interdits à l\'inscription sont : ';
+$lang['UserAdvManager_empty_pwd'] = '[mot de passe vide]';
+$lang['UserAdvManager_no_update_pwd'] = '[mise à jour du profil sans changement du mot de passe]';
+$lang['invalid_pwd'] = 'Nom utilisateur ou Mot de passe invalide !';
+$lang['Err_ConfirmMail_Settings'] = 'Cette page n\'est accessible que si "Confirmation de l\'adresse email" est actif dans l\'onglet "Configuration Générale".';
+$lang['Err_UserManager_Settings'] = 'Cette page n\'est accessible que si "Délai de validation d\'inscription" est actif dans l\'onglet "Configuration de ConfirmMail" et si un groupe de visiteurs non validés est configuré dans l\'onglet "Configuration Générale".';
+$lang['No_validation_for_Guest'] = 'Le compte Guest n\'est pas soumis à validation';
+$lang['No_validation_for_default_user'] = 'Le compte par défaut n\'est pas soumis à validation';
+$lang['No_validation_for_Webmaster'] = 'Le compte du Webmaster n\'est pas soumis à validation';
+$lang['No_validation_for_your_account'] = 'Votre compte d\'admin n\'est pas soumis à validation';
+$lang['Database_Error'] = '<b><u>Attention ! Erreur critique d\'intégrité dans votre base de données.</u></b><br><br>Veuillez contrôler l\'intégrité de la table #_user_confirm_mail.';
+
+
+/* Processing messages */
+$lang['%d_Mail_With_Key'] = '%d message avec renouvellement de clé a été envoyé';
+$lang['%d_Mails_With_Key'] = '%d messages avec renouvellement de clé ont été envoyés';
+$lang['%d_Reminder_Sent'] = '%d message de rappel a été envoyé';
+$lang['%d_Reminders_Sent'] = '%d messages de rappel ont été envoyés';
+$lang['%d_Validated_User'] = '%d Utilisateur validé manuellement';
+$lang['%d_Validated_Users'] = '%d Utilisateurs validés manuellement';
+
+
+/* Action button names */
+$lang['Delete_selected'] = 'Supprimer';
+$lang['Mail_without_key'] = 'Rappel sans clé';
+$lang['Mail_with_key'] = 'Rappel avec clé';
+$lang['Force_Validation'] = 'Validation forcée';
+
+
+
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.0 and 2.12.1
+/* Global Configuration Tab */
+$lang['UserAdvManager_Title1'] = 'Gestion de l\'inscription des utilisateurs';
+$lang['UserAdvManager_Title2'] = 'Validation d\'inscription et gestion de groupes / statuts';
+$lang['UserAdvManager_Password_Enforced'] = 'Renforcement des mots de passe - Activer cette option rend la saisie du mot de passe obligatoire à l\'inscription des visiteurs. De plus, le mot de passe saisi par le visiteur devra répondre à un score de complexité (<b style="color: green;">activez puis sauvegardez les paramètres pour afficher plus d\'infos</b>).';
+$lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Explications :</b> <b style="color: green;">Le score d\'un mot de passe est calculé en fonction des paramètres de base : longueur, types de caractères utilisés(lettres, chiffres, majuscules, minuscules, caractères spéciaux). Si le mot de passe de l\'utilisateur ne répond pas au score, le score réalisé est affiché ainsi que le score minimum à atteindre et une indication pour augmenter la valeur de ce score. Pour donner un ordre d\'idée, un score inférieur à 100 est considéré comme faible. Entre 100 et 500, la complexité est renforcée et dans la moyenne. Au dela de 500, c\'est Fort Knox !! ;-)<br>Vous pouvez faire vos essais de complexité d\'un mot de passe en utilisant le champ ci-dessous. Cela vous permettra de vous faire une idée du score à définir pour une complexité personnalisée.</b>';
+$lang['UserAdvManager_PasswordTest'] = 'Mot de passe à tester : ';
+$lang['UserAdvManager_ScoreTest'] = 'Score obtenu : ';
+$lang['PasswordTest'] = 'Calcul du score';
+$lang['UserAdvManager_Password_Enforced_true'] = ' Mot de passe renforcé obligatoire - Saisir le score minimum (valeur plancher) de complexité du mots de passe == ';
+$lang['UserAdvManager_Password_Enforced_false'] = ' Ne pas renforcer les mots de passe. (valeur par défaut)';
+$lang['UserAdvManager_AdminPassword_Enforced'] = 'Appliquer également le contrôle du renforcement de mots de passe lorsqu\'un administrateur créé un utilisateur? A noter : Si l\'utilisateur ainsi créé désire changer de mot de passe et que le renforcement des mots de passe pour les utilisateurs est actif, il sera soumis à la règle configurée.';
+$lang['UserAdvManager_AdminPassword_Enforced_true'] = 'Activer le renforcement des mots de passe pour les admins.';
+$lang['UserAdvManager_AdminPassword_Enforced_false'] = 'Désactiver le renforcement des mots de passe pour les admins. (valeur par défaut)';
+$lang['UserAdvManager_GhostTracker'] = 'Gestion des visiteurs fantômes - Permet de gérer les inscrits en fonction de leur date de dernière visite:';
+$lang['UserAdvManager_GhostTracker_true'] = ' Activer la gestion des visiteurs fantômes.';
+$lang['UserAdvManager_GhostTracker_false'] = ' Désactiver la gestion des visiteurs fantômes. (valeur par défaut)';
+$lang['UserAdvManager_GhostTracker_DayLimit'] = ' Saisissez ici le délai maximum, en jours, entre deux visites d\'un visiteur. Lorsque ce délai est atteind, le visiteur en question apparaitra dans le tableau de l\'onglet "Ghost Tracker".';
+$lang['UserAdvManager_GhostTracker_ReminderText'] = ' Texte utilisé dans le mail de rappel envoyé à l\'utilisateur pour l\'inciter à revenir visiter la galerie (NB: Le texte pré-renseigné à l\'installation du plugin est donné à titre d\'exemple).<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si la gestion des visiteurs fantômes est activée. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
+/* Ghost Tracker Tab */
+$lang['GhostTracker_Title'] = 'Gestion avancée des visiteurs fantômes';
+$lang['Title_Tab4'] = 'UserAdvManager - Ghost Tracker';
+$lang['Tab_GhostTracker'] = 'Ghost Tracker';
+$lang['LastVisit_Date'] = 'Date de dernière visite';
+$lang['Reminder'] = 'Email de rappel';
+$lang['Reminder_Sent_OK'] = 'OUI';
+$lang['Reminder_Sent_NOK'] = 'NON';
+/* Errors and Warnings */
+$lang['UserAdvManager_save_config'] ='Configuration enregistrée.';
+$lang['reg_err_login3'] = 'Sécurité : Le mot de passe est obligatoire !';
+$lang['reg_err_login4_%s'] = 'Sécurité : Un système de contrôle calcule un score de complexité sur les mots de passe choisis. La complexité de votre mot de passe est trop faible (score = %s). Veuillez choisir un nouveau mot de passe plus sûre en respectant les règles suivantes :<br>
+- Utiliser des lettres et des chiffres<br>
+- Utiliser des minuscules et des majuscules<br>
+- Augmenter sa longueur (nombre de caractères)<br>
+Le score minimal des mots de passe imposé par l\'administrateur est de : ';
+$lang['No_reminder_for_Guest'] = 'Le compte Guest n\'est pas soumis à recevoir des rappels du GhostTracker';
+$lang['No_reminder_for_default_user'] = 'Le compte par défaut n\'est pas soumis à recevoir des rappels du GhostTracker';
+$lang['No_reminder_for_Webmaster'] = 'Le compte du Webmaster n\'est pas soumis à recevoir des rappels du GhostTracker';
+$lang['No_reminder_for_your_account'] = 'Votre compte d\'admin n\'est pas soumis à recevoir des rappels du GhostTracker';
+$lang['Err_GhostTracker_Settings'] = 'Cette page n\'est accessible que si "Gestion des visiteurs fantômes" est actif dans l\'onglet "Configuration Générale".';
+/* Action button names */
+$lang['audit'] = 'Auditer les paramètres';
+$lang['submit'] = 'Sauvegarder les paramètres';
+$lang['Reminder_Email'] = 'Email de rappel';
+// --------- End: New or revised $lang ---- from version 2.12.0 and 2.12.1
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.2
+/* Global Configuration Tab */
+$lang['UserAdvManager_GhostTracker_Notice'] = 'Lorsque la fonction Ghost Tracker est activée, il vous est possible de gérer vos visiteurs en fonction de la fréquence de leurs visites. <b style="color: red;">IMPORTANT : Si vous avez activé cette fonction pour la première fois ou que vous l\'avez réactivée après une longue période de désactivation pendant laquelle de nouveaux visiteurs se sont inscrits, rendez-vous sur l\'onglet Ghost Tracker et suivez les instructions relatives à l\'initialisation de Ghost Tracker.</b>';
+/* Ghost Tracker Tab */
+$lang['UserAdvManager_GhostTracker_Init'] = 'Si vous avez activé cette fonction pour la première fois ou que vous l\'avez réactivée après une longue période de désactivation pendant laquelle de nouveaux visiteurs se sont inscrits, il faut initialiser ou réinitialiser le Ghost Tracker. Cette action n\'est à faire qu\'une seule après activation ou réactivation de l\'option. Veuillez cliquer <u>une seule fois</u> sur le bouton d\'initialisation ci-dessous.</b>';
+$lang['UserAdvManager_GhostTracker_User_List'] = 'Lorsque la gestion des visiteurs fantômes est activée et initialisée, vous trouverez ci-dessous la liste des visiteurs inscrits sur votre galerie et qui ne sont pas revenus depuis x jours. "x" étant le nombre de jours paramétrés dans l\'onglet de configuration générale. De plus, vous trouverez une colonne précisant si un mail de rappel a déjà été envoyé aux visiteurs ciblés, vous permettant de visualiser d\'un coup d\'oeil et traiter les visiteurs qui n\'auraient pas tenu compte du rappel.<br><br>Dans cette vue, vous pouvez :
+<br><br>
+- Supprimer manuellement les comptes <b>(purge manuelle)</b>
+<br>
+- Générer l\'email de rappel <b>avec réinitialisation de la date de dernière visite</b>. Ce qui permet de donner un "joker" au visiteur ciblé. Si le visiteur a déjà bénéficié d\'un mail de rappel, rien n\'empêche de renvoyer un nouveau mail qui réinitialisera, de fait, la date de dernière visite.
+<br>';
+/* Errors and Warnings */
+$lang['GhostTracker_Init_OK'] = 'Initialisation Ghost Tracker effectuée !';
+/* Action button names */
+$lang['GT_Reset'] = 'Initialisation Ghost Tracker';
+// --------- End: New or revised $lang ---- from version 2.12.2
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.6
+/* Global Configuration Tab */
+$lang['UserAdvManager_No_Casse_true'] = ' Rendre le compte utilisateur insensible à la casse, lors de l\'inscription et l\'identification (TOTO = toto = Toto = toTO...).';
+// --------- End: New or revised $lang ---- from version 2.12.6
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.7
+/* Errors and Warnings */
+$lang['mail_text_error'] = '<b>Attention!</b> - Le point-virgule (;) n\'est pas autorisé dans le texte additionnel des emails. Ce caractère a été automatiquement remplacé par un point (.). Pour information, le(s) texte(s) modifié(s) est(sont) affiché(s) en rouge dans le(s) champ(s) correspondant(s). Veuillez le(s) vérifier.';
+// --------- End: New or revised $lang ---- from version 2.12.7
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.8
+/* Errors and Warnings */
+$lang['mail_exclusionlist_error'] = 'Attention ! Vous avez saisi un retour à la ligne en début de liste d\'exclusion des domaines de messagerie (affichée en rouge ci-dessous). Bien que ce retour à la ligne ne soit pas visible, il est tout de même présent et est susceptible de provoquer des dysfonctionnements du plugin. Veuillez resaisir votre liste d\'exclusion en veillant à ne pas commencer par un retour à la ligne.';
+// --------- End: New or revised $lang ---- from version 2.12.8
+
+// --------- Starting below: New or revised $lang ---- from version 2.13.0
+/* Global Configuration Tab */
+$lang['UserAdvManager_Add_LastVisit_Column'] = ' Afficher le suivi des utilisateurs inscrits (date de leur dernière visite, le temps passé (en jours) depuis leur dernière visite,...). Le suivi est à caractère purement informatif pour l\'administrateur de la galerie.';
+$lang['UserAdvManager_Add_LastVisit_Column_true'] = ' Activer l\'affichage de la liste.';
+$lang['UserAdvManager_Add_LastVisit_Column_false'] = ' Désactiver l\'affichage de la liste (valeur par défaut).';
+/* ConfirmMail Configuration Tab */
+$lang['ConfirmMail_Title'] = 'Configuration avancée de la validation des inscriptions';
+$lang['Tab_ConfirmMail'] = 'Configuration des validations';
+/* UserList Tab */
+$lang['Title_Tab5'] = 'UserAdvManager - Informations sur les utilisateurs';
+$lang['UserList_Title'] = 'Suivi des utilisateurs inscrits';
+$lang['Tab_UserList'] = 'Suivi des utilisateurs';
+$lang['UserAdvManager_User_List'] = 'Cette page est à titre d\'information pour l\'administrateur. Elle affiche la liste de tous les utilisateurs inscrits sur la galerie en faisant apparaitre la date et le nombre de jours depuis leur dernière visite. La liste est triée dans l\'ordre croissant du nombre de jours.
+<br><br>
+Lorsque le Ghost Tracker est actif, le nombre de jours sans visite s\'affiche selon le code couleur suivant, en fonction du délai maximum paramétré dans les options du Ghost Tracker :
+<br>
+- <b style="color: lime;">En vert</b> : Lorsque l\'utilisateur a visité la galerie <b style="color: lime;"><u>depuis moins de 50%</u></b> du délai maximum renseigné dans le Ghost Tracker.<br>
+- <b style="color: orange;">En orange</b> : Lorsque l\'utilisateur a visité la galerie <b style="color: orange;"><u>entre 50% et 99%</u></b> du délai maximum renseigné dans le Ghost Tracker.<br>
+- <b style="color: red;">En rouge</b> : Lorsque l\'utilisateur a visité la galerie <b style="color: red;"><u>depuis 100% et plus</u></b> du délai maximum renseigné dans le Ghost Tracker. <b><u>Dans ce cas, l\'utilisateur doit également apparaitre dans le tableau du Ghost Tracker.</u></b><br>
+<br>
+Exemple :
+<br>
+Le délai maximum du Ghost Tracker est configuré à 100 jours.
+<br>
+Un utilisateur apparaitra en vert s\'il a visité la galerie depuis moins de 50 jours, en orange si sa dernière visite s\'est déroulée entre 50 et 99 jours et en rouge à 100 jours et au-delà.
+<br><br>
+<b>A NOTER</b> : La liste n\'affiche pas les inscrits qui n\'auraient pas validé leur inscription (si l\'option de validation de l\'inscription est activée). Ces utilisateurs sont alors gérés de manière particulière dans l\'onglet "Gestion des validations".';
+$lang['Nb_Days'] = 'Nb de jours<br>depuis dernière visite';
+/* UserManager Tab */
+$lang['UserAdvManager_ConfirmMail_User_List'] = 'Lorsque la limitation du délai d\'inscription est activée, vous trouverez ci-dessous la liste des utilisateurs en attente de validation d\'inscription <b style="text-decoration: underline;">qu\'ils soient ou pas</b> dans les délais pour la valider.<br><br>La date d\'enregistrement s\'affiche en vert lorsque l\'utilisateur concerné est en dessous du temps limite pour valider son inscription. Dans ce cas, la clé de validation est toujours valide et on pourra envoyer un email avec ou sans régénération de clé.<br><br>Lorsque la date d\'enregistrement s\'affiche en rouge, le délai de validation est expiré. Dans ce cas, on enverra obligatoirement un email avec régénération de clé si on veut permettre à cet utilisateur de pouvoir valider son inscription.<br><br>Dans tous les cas, il est possible de forcer manuellement la validation.<br><br>Dans cette vue, vous pouvez :
+<br><br>
+- Supprimer manuellement les comptes <b>(purge manuelle)</b>
+<br>
+- Générer l\'email de rappel <b>sans génération</b> d\'une nouvelle clef. Rappel : Cette fonction ne réinitialise pas la date d\'inscription du visiteur ciblé et le délai d\'expiration est toujours d\'actualité.
+<br>
+- Générer l\'email de rappel <b>avec génération</b> d\'une nouvelle clef. Rappel : Cette fonction réinitialise également la date d\'inscription du visiteur ciblé ce qui équivaut à prolonger le délai de validation.
+<br>
+- Valider manuellement une inscription en attente de validation même si la date d\'expiration est révolue <b>(forçage de la validation)</b>.
+<br>';
+$lang['UserManager_Title'] = 'Gestion avancée des inscrits non validés';
+$lang['Title_Tab3'] = 'UserAdvManager - Gestion des validations d\'inscription';
+$lang['Tab_UserManager'] = 'Gestion des validations';
+/* Ghost Tracker Tab */
+$lang['Reminder'] = 'Email de rappel';
+/* Errors and Warnings */
+$lang['Err_Userlist_Settings'] = 'Cette page n\'est accessible que si le "suivi des utilisateur" est actif dans l\'onglet "Configuration Générale".';
+// --------- End: New or revised $lang ---- from version 2.13.0
+// --------- Starting below: New or revised $lang ---- from version 2.13.1
+/* Global Configuration Tab */
+$lang['Title_Tab1'] = 'UserAdvManager 2.13.1 - Configuration Générale';
+/* ConfirmMail Configuration Tab */
+$lang['Title_Tab2'] = 'UserAdvManager 2.13.1 - Configuration de la validation des inscriptions';
+// --------- End: New or revised $lang ---- from version 2.13.1
+// --------- Starting below: New or revised $lang ---- from version 2.13.3
+/* Global Configuration Tab */
+$lang['UserAdvManager_Username_Char_true'] = ' Interdire les caractères saisis dans le champs ci-après <b style="color: green;">(séparez les valeurs par des virgules "," !)</b> pour le nom d\'utilisateur lors de l\'inscription == ';
+$lang['UserAdvManager_No_Comment_Anonymous'] = 'Pseudo obligatoire sur commentaire pour les visiteurs. <b style="color: red;">N\'activez ceci que si vous avez donné l\'autoritation aux visiteurs non inscrits de poster des commentaires (Panneau d\'admin de Piwigo > Configuration > Générale, onglet Commentaires > "Commentaires pour tous")</b>';
+// --------- End: New or revised $lang ---- from version 2.13.3
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/description.txt
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/description.txt	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/description.txt	(revision 4552)
@@ -0,0 +1,1 @@
+Aumenta le possibilità di gestione degli utenti
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/index.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/index.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/index.php	(revision 4552)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | 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.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/plugin.lang.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/plugin.lang.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/language/it_IT/plugin.lang.php	(revision 4552)
@@ -0,0 +1,262 @@
+<?php
+
+global $lang,$conf;
+
+$conf_UserAdvManager = isset($conf['UserAdvManager']) ? explode(";" , $conf['UserAdvManager']) : array();
+
+
+/* Global Configuration Tab */
+$lang['Tab_Global'] = 'General Setup';
+$lang['UserAdvManager_Mail_Info'] = 'Mail d\'informazione per l\'utente:';
+$lang['UserAdvManager_Mail_Info_true'] = ' Inviare una mail all\'utente riprendendo le sue informazioni di connessione al momento della registrazione o quelle dell\'ultimo aggiornamento del suo profilo.';
+$lang['UserAdvManager_Mail_Info_false'] = ' Disattiva l\'invio della mail. (valore di default)';
+$lang['UserAdvManager_MailInfo_Text'] = ' Testo utilizzato come introduzzione all\'e-mail inviata all\'utente per consentirgli di convalidare il suo indirizzo e-mail<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENZIONE !</b> <b style="color: red;">Modifica del testo è disponibile <b>SOLO</b> se l\'e-mail informazione destinata all\'utente è attivata. Utilizzare il metodo dei tag multi-lingua del plugin Extended Description se quest\'ultimo è attivo !!!)</b>';
+$lang['UserAdvManager_No_Casse'] = ' Caso il nome utente insensitive';
+$lang['UserAdvManager_No_Casse_false'] = ' Lasciare che il caso degli utenti sensibili. (default)';
+$lang['UserAdvManager_Username_Char'] = ' Limitate di caratteri per nome utente';
+$lang['UserAdvManager_Username_Char_false'] = ' Utilizzare il nome utente predefinito caratteri di controllo. (default)';
+$lang['UserAdvManager_Confirm_Mail'] = 'Conferma indirizzo e-mail:';
+$lang['UserAdvManager_Confirm_Mail_true'] = ' Invia una email a utente per consentirgli di convalidare la sua e-mail e la sua registrazione.';
+$lang['UserAdvManager_Confirm_Mail_false'] = ' Utilizzare il sistema di default di registrazione (senza la registrazione di convalida). (default)';
+$lang['UserAdvManager_ConfirmMail_Text'] = ' Testo utilizzato per introdurre l\'e-mail inviata all\'utente per consentirgli di convalidare il suo indirizzo e-mail<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENZIONE !</b> <b style="color: red;">Modifica del testo è disponibile SOLO se l\'indirizzo e-mail di conferma è attivata. Utilizzare i tag multi lingua da plugin descrizione estesa, se questo plugin è attivato !!!)</b>';
+$lang['UserAdvManager_Confirm_Group_Notice'] = 'ATTENZIONE : L\'utilizzo di gruppi di convalida richiede che si è creato almeno un gruppo di utenti, ed è definito "di default" nella gestione di gruppi di utenti.';
+$lang['UserAdvManager_No_Confirm_Group'] = 'Gruppo da utilizzare per gli utenti che non hanno convalidato il loro indirizzo email.';
+$lang['UserAdvManager_Validated_Group'] = 'Gruppo da utilizzare per gli utenti che hanno convalidato il loro indirizzo email.';
+$lang['UserAdvManager_Confirm_Status_Notice'] = 'ATTENZIONE : L\'uso di convalida lo stato richiede che si hanno mantenuto il "cliente" utente con impostazione di default (come utente modello) per i nuovi iscritti. Nota È possibile impostare qualsiasi altro utente come un modello per i nuovi iscritti. Si prega di fare riferimento alla documentazione del Piwigo per maggiori dettagli.';
+$lang['UserAdvManager_No_Confirm_Status'] = 'Di stato per l\'uso per gli utenti che non hanno convalidato il loro indirizzo email.';
+$lang['UserAdvManager_Validated_Status'] = 'Di stato per l\'uso per gli utenti che hanno convalidato il loro indirizzo email. Tenere ------- per l\'utilizzo di valori di default';
+$lang['UserAdvManager_No_Comment_Anonymous_true'] = ' Il campo autore devono essere riempiti per inviare un commento.';
+$lang['UserAdvManager_No_Comment_Anonymous_false'] = ' Utilizzare le impostazioni predefinite sui commenti invio. (default)';
+$lang['UserAdvManager_MailExclusion'] = 'L\'esclusione provider e-mail:';
+$lang['UserAdvManager_MailExclusion_true'] = ' Impostare l\'esclusione provider di posta elettronica ON (vale a dire: @hotmail.* o @msn.*)';
+$lang['UserAdvManager_MailExclusion_false'] = ' Disabilitare l\'esclusione provider di posta elettronica. (default)';
+$lang['UserAdvManager_MailExclusion_List'] = ' Se l\'esclusione provider di posta elettronica è impostato su ON, riempire i domini e-mail di escludere qui sotto. Devi usare il formato seguente:<br>@[dominio_nome].[dominio_estensione] - Esempio : @hotmail.com<br>Separare i diversi domini con una virgola (,)<br>';
+
+
+/* ConfirmMail Configuration Tab */
+/* TODO */$lang['UserAdvManager_ConfirmMail_Info'] = 'Time limitation for validation of registration :<br>If you enable this option, select the desired time (x) in the field below. Visitors who register will then have x days to validate their registration. After this period the validation link they have received by mail will be expired.<br>';
+/* TODO */$lang['UserAdvManager_ConfirmMail_TimeOut_true'] = 'Enable limiting the registration deadline.';
+/* TODO */$lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Disable limiting the registration deadline. (Default)';
+/* TODO */$lang['UserAdvManager_ConfirmMail_TimeOut'] = 'Validation delay :';
+/* TODO */$lang['UserAdvManager_ConfirmMail_Delay_Info'] = 'Enter the number of days before expiry of the registration validation : ';
+/* TODO */$lang['UserAdvManager_ConfirmMail_Remail'] = 'Enable or disable email reminder of unvalidated registers :';
+/* TODO */$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Enable email reminder';
+/* TODO */$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Disable email reminder. (Default)';
+/* TODO */$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Custom content of the reminder message with regeneration of validation key.<br>If left blank, the reminder email will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled at the plugin installation is given as an example)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+/* TODO */$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Custom content of the reminder message without regeneration of validation key.<br>If left blank, the reminder email will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled at the plugin installation is given as an example)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
+
+
+/* UserManager Tab */
+/* TODO */$lang['UserManager_Title'] = 'Advanced settings of unvalidated registered users';
+/* TODO */$lang['Title_Tab3'] = 'UserAdvManager - Visitors management';
+/* TODO */$lang['Tab_UserManager'] = 'Visitors management';
+/* TODO */$lang['UserAdvManager_ConfirmMail_User_List'] = 'When limiting the deadline for registration is enabled, you will find below the list of users awaiting validation, <b style="text-decoration: underline;">whether or not</b> they are in time to validate.<br><br>In this view, you can:
+<br><br>
+- Manually delete accounts <b>(manual drain)</b>
+<br>
+- Generate email reminder <b>without</b> generating a new key. Warning: Send an email reminder to targeted visitors. This function does not reset the date of registration of targeted visitors and the timeout is still valid.
+<br>
+- Generate email reminder <b>with</b> generating a new key. Warning : Send an email reminder to targeted visitors. This function also resets the date of registration of targeted visitors which equates to extend the deadline for validation.
+<br>
+- Submit a registration awaiting validation manually even if the expiry date has passed <b>(forcing validation)</b>.
+<br>';
+/* TODO */$lang['Registration_Date'] = 'Registration date';
+
+
+/* Mailing */
+/* TODO */$lang['infos_mail %s'] = '%s, please find here your information to login the gallery :';
+/* TODO */$lang['User: %s'] = 'User : %s';
+/* TODO */$lang['Password: %s'] = 'Password: %s';
+/* TODO */$lang['Add of %s'] = 'Add of %s';
+/* TODO */$lang['Update of %s'] = 'Update of %s';
+/* TODO */$lang['Link: %s'] = 'Please, click on this link to confirm your registration : %s';
+/* TODO */$lang['Reminder_with_key_of_%s'] = '%s, your validation key has been renewed';
+/* TODO */$lang['Reminder_without_key_of_%s'] = '%s, your validation key will expire';
+/* TODO */$lang['Ghost_remainder_of_%s'] = '%s, this is a reminder email';
+
+
+/* Email confirmation page */
+/* TODO */$lang['title_confirm_mail'] = 'Validate your registration';
+/* TODO */$lang['confirm_mail_page_title'] = 'Validate your registration';
+/* TODO */$lang['confirm_mail_ok'] = '<br><br><br>Thank you to have confirmed your email address and your registration on the gallery. Have fun !<br><br><br><br>';
+/* TODO */$lang['confirm_mail_bad'] = '<br><br><br>Your activation key is incorrect or expired or you have already validated your account, please contact the webmaster to fix this problem.<br><br><br><br>';
+
+
+/* Errors and Warnings */
+/* TODO */$lang['UserAdvManager_audit_ok'] = 'Audit OK';
+/* TODO */$lang['Err_audit_no_casse'] = '<b>These accounts are identical to the case closely :</b> ';
+/* TODO */$lang['Err_audit_username_char'] = '<b>This account uses one or more forbidden characters :</b> ';
+/* TODO */$lang['Err_audit_email_forbidden'] = '<b>This account uses a forbidden email provider :</b> ';
+/* TODO */$lang['Err_audit_advise'] = '<b>you have to perform corrections to comply with new rules that you have activated.<br>Use a database management utility to correct user accounts directly in the table ### _USERS';
+/* TODO */$lang['UserAdvManager_Empty Author'] = 'The author field have to be filled to send a comment.';
+if ( isset($conf_UserAdvManager[1]) and $conf_UserAdvManager[1] == 'true' )
+	/* TODO */$lang['reg_err_login5'] = 'Username already exist, WARNING name is case insensitive (Shift = Tiny).';
+/* TODO */$lang['reg_err_login6'] = 'Username does not have to match the following characters: ';
+/* TODO */$lang['reg_err_login7'] = 'Your email provider is banned for registration. Banned email providers are: ';
+/* TODO */$lang['UserAdvManager_empty_pwd'] = '[empty password]';
+/* TODO */$lang['UserAdvManager_no_update_pwd'] = '[profile updated without password changed]';
+/* TODO */$lang['invalid_pwd'] = 'Invalid username or password !';
+/* TODO */$lang['Err_ConfirmMail_Settings'] = 'This page will be available only if "Email address confirmation" is activated in "General Setup" tab.';
+/* TODO */$lang['Err_UserManager_Settings'] = 'This page is available only if "Enable limiting the registration deadline" is active in the "ConfirmMail Settings" tab and an unvalidated users group is set in "General Setup" tab.';
+/* TODO */$lang['No_validation_for_Guest'] = 'The "Guest" account is not subject to validation';
+/* TODO */$lang['No_validation_for_default_user'] = 'The default account is not subject to validation';
+/* TODO */$lang['No_validation_for_Webmaster'] = 'The "Webmaster" account is not subject to validation';
+/* TODO */$lang['No_validation_for_your_account'] = 'Your personnal admin account is not subject to validation';
+/* TODO */$lang['Database_Error'] = '<b><u>Warning! Critical integrity error in your database.</u></b><br><br>Please check the integrity of the #_user_confirm_mail table.';
+
+
+/* Processing messages */
+/* TODO */$lang['%d_Mail_With_Key'] = '%d message with key renewal was sent';
+/* TODO */$lang['%d_Mails_With_Key'] = '%d messages with key renewal were sent';
+/* TODO */$lang['%d_Reminder_Sent'] = '%d reminder message was sent';
+/* TODO */$lang['%d_Reminders_Sent'] = '%d reminder messages were sent';
+/* TODO */$lang['%d_Validated_User'] = '%d User validated manually';
+/* TODO */$lang['%d_Validated_Users'] = '%d Users validated manually';
+
+
+/* Action button names */
+/* TODO */$lang['Delete_selected'] = 'Delete';
+/* TODO */$lang['Mail_without_key'] = 'Reminder without key';
+/* TODO */$lang['Mail_with_key'] = 'Reminder with key';
+/* TODO */$lang['Force_Validation'] = 'Forced validation';
+/* TODO */$lang['Reminder_Email'] = 'Email reminder';
+
+
+
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.0 and 2.12.1
+/* Global Configuration Tab */
+$lang['UserAdvManager_Title1'] = 'Gli utenti di registrazione di gestione';
+$lang['UserAdvManager_Title2'] = 'Registrazione e validazione dei gruppi / gestione di stato';
+$lang['UserAdvManager_Password_Enforced'] = 'Rafforzamento password - L\'attivazione di questa opzione rende il sequestro della password richiesta per i visitatori di registrazione. Inoltre, la password immessa dal visitatore incontrerà una ventina di complessità (<b style="color: green;">attivare e salvare le impostazioni per visualizzare maggiori informazioni</b>).';
+$lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Spiegazioni:</b> <b style="color: green;">Un punteggio password è calcolato sui parametri di base: la lunghezza, il tipo di caratteri utilizzati (lettere, numeri, lettere maiuscole, minuscole, caratteri speciali). Se la password di un utente non punteggio, il punteggio raggiunto è visualizzato con il punteggio minimo da raggiungere e l\'indicazione di aumentare il valore di questa partitura. Per darvi un\'idea, un punteggio inferiore a 100 è considerata "bassa complessità". Tra 100 e 500, la complessità è aumentata e media. Oltre i 500, that\'s Fort Knox! ;-)<br>Puoi fare la tua password prove complessità utilizzando il campo sottostante. Questo vi permetterà di avere un\'idea del punteggio per definire una complessità personalizzato.</b>';
+$lang['UserAdvManager_PasswordTest'] = 'Password di prova : ';
+$lang['UserAdvManager_ScoreTest'] = 'Punteggio : ';
+$lang['PasswordTest'] = 'Calcolo punteggio';
+$lang['UserAdvManager_Password_Enforced_true'] = ' Forte richiesta password - Inserire il punteggio minimo (valore di piano) di password complessità == ';
+$lang['UserAdvManager_Password_Enforced_false'] = ' Non rafforzare la password. (default)';
+$lang['UserAdvManager_AdminPassword_Enforced'] = 'Si applicano anche al controllo password complessità quando un amministratore crea un utente? Nota: Se l\'utente ha creato vuole cambiare la sua password e rafforzare le password per gli utenti è attivo, sarà soggetto alle norme stabilite.';
+$lang['UserAdvManager_AdminPassword_Enforced_true'] = 'Abilitare le password rafforzamento per gli amministratori.';
+$lang['UserAdvManager_AdminPassword_Enforced_false'] = 'Disattivare il rafforzamento password per gli amministratori. (default)';
+$lang['UserAdvManager_GhostTracker'] = 'Ghost Tracker - Permette di gestire gli utenti registrati, secondo la loro data di ultima visita :';
+$lang['UserAdvManager_GhostTracker_true'] = ' Attiva Ghost Tracker.';
+$lang['UserAdvManager_GhostTracker_false'] = ' Disattiva Ghost Tracker. (Default)';
+$lang['UserAdvManager_GhostTracker_DayLimit'] = ' Digitare qui il limite massimo, in giorni, tra le due visite di un visitatore. Quando viene raggiunto questo limite, il visitatore verrà visualizzato nella tabella di "Ghost Tracker".';
+$lang['UserAdvManager_GhostTracker_ReminderText'] = ' Testo utilizzato nel promemoria e-mail inviate per incoraggiare i visitatori a ritornare alla galleria (NB: Il testo pre-riempita presso l\'impianto plugin è dato come un esempio).<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENZIONE !</b> <b style="color: red;">Modifica del testo è disponibile solo se Tracker Ghost è abilitato. Utilizzare i tag multi lingua da plugin descrizione estesa, se questo plugin è attivato !!!)</b>';
+/* Ghost Tracker Tab */
+/* TODO */$lang['GhostTracker_Title'] = 'Advanced ghost visitors management';
+/* TODO */$lang['Title_Tab4'] = 'UserAdvManager - Ghost Tracker';
+/* TODO */$lang['Tab_GhostTracker'] = 'Ghost Tracker';
+/* TODO */$lang['LastVisit_Date'] = 'Last visit';
+/* TODO */$lang['Ghost_Reminder'] = 'Email reminder';
+/* TODO */$lang['Reminder_Sent_OK'] = 'YES';
+/* TODO */$lang['Reminder_Sent_NOK'] = 'NO';
+/* Errors and Warnings */
+/* TODO */$lang['UserAdvManager_save_config'] ='Configuration saved.';
+/* TODO */$lang['reg_err_login3'] = 'Security : Password is mandatory !';
+/* TODO */$lang['reg_err_login4_%s'] = 'Security : A control system calculates a score on the chosen passwords complexity. The complexity of your password is too low (score = %s). Please, choose a new password more secure by following these rules:<br>
+- Use letters and numbers<br>
+- Use lowercase and uppercase<br>
+- Increase its length (number of characters)<br>
+The minimum passwords score required by the administrator is: ';
+/* TODO */$lang['No_reminder_for_Guest'] = 'The "Guest" account is not subject to receive reminders from GhostTracker';
+/* TODO */$lang['No_reminder_for_default_user'] = 'The default account is not subject to receive reminders from GhostTracker';
+/* TODO */$lang['No_reminder_for_Webmaster'] = 'The "Webmaster" account is not subject to receive reminders from GhostTracker';
+/* TODO */$lang['No_reminder_for_your_account'] = 'You personnal admin account is not subject to receive reminders from GhostTracker';
+/* TODO */$lang['Err_GhostTracker_Settings'] = 'This page is available only if "Ghost Tracker" is active in the "General Setup" tab.';
+/* Action button names */
+/* TODO */$lang['audit'] = 'Audit settings';
+/* TODO */$lang['submit'] = 'Save settings';
+// --------- End: New or revised $lang ---- from version 2.12.0 and 2.12.1
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.2
+/* Global Configuration Tab */
+$lang['UserAdvManager_GhostTracker_Notice'] = 'Quando la funzione Ghost Tracker è attivata, è possibile gestire i tuoi visitatori a seconda della frequenza delle loro visite. <b style="color: red;">ATTENZIONE : Se si attiva questa funzione per la prima volta o che hanno riattivato, dopo un lungo periodo fuori durante il quale i nuovi visitatori sono registrati, visitare la scheda Tracker Ghost e seguire le istruzioni per l\'inizializzazione Ghost Tracker.</b>';
+/* Ghost Tracker Tab */
+/* TODO */$lang['UserAdvManager_GhostTracker_Init'] = 'If you enable this feature for the first time or you have reactivated after a long period off during which new visitors are registered, you must initialize or reset the Ghost Tracker. This action is done only after activation or reactivation of the option. Please click <u>once</u> the reset button below.';
+/* TODO */$lang['UserAdvManager_GhostTracker_User_List'] = 'When Ghost Tracker is enabled and initialized, you will find below the list of registered visitors who have not returned since x days. "x" is the number of days configured in the General Setup tab. In addition, you will find a column indicating whether an email reminder has been sent to targeted visitors. So, you can see at a glance and treat visitors who have not taken account of the reminder.<br><br>In this view, you can:
+<br><br>
+- Manually delete accounts <b>(manual drain)</b>
+<br>
+- Generate email reminder <b>with resetting the last visit date</b>. This allows to give a wildcard to targeted visitors. If the visitor has already received a reminder, nothing prevents to resent a new mail which will reset again, in fact, the last visit date.
+<br>';
+/* Errors and Warnings */
+/* TODO */$lang['GhostTracker_Init_OK'] = 'Ghost Tracker reset done !';
+/* Action button names */
+/* TODO */$lang['GT_Reset'] = 'Reset Ghost Tracker';
+// --------- End: New or revised $lang ---- from version 2.12.2
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.6
+/* Global Configuration Tab */
+$lang['UserAdvManager_No_Casse_true'] = ' Fare il caso di account utente insensibili al momento della registrazione e la fase di identificazione (USER = user = User = usER...).';
+// --------- End: New or revised $lang ---- from version 2.12.6
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.7
+/* Errors and Warnings */
+/* TODO */$lang['mail_text_error'] = '<b>Warning!</b> - Semicolons (;) are not allowed in addtionnal email text. This Character have been automatically replaced by a dot (.). For information, the amended text(s) is(are) shown in red in the corresponding field(s). Please, check it(them) out.';
+// --------- End: New or revised $lang ---- from version 2.12.7
+
+// --------- Starting below: New or revised $lang ---- from version 2.12.8
+/* Errors and Warnings */
+/* TODO */$lang['mail_exclusionlist_error'] = 'Warning! You have entered a new line (CR-LF) at the begining of email exclusion list (shown in red below). Although this new line is not visible, it is still present and may cause malfunction of the plugin. Please re-type in your exclusion list in a manner that does not begin with a newline.';
+// --------- End: New or revised $lang ---- from version 2.12.8
+
+// --------- Starting below: New or revised $lang ---- from version 2.13.0
+/* Global Configuration Tab */
+/* TODO */$lang['UserAdvManager_Add_LastVisit_Column'] = ' View user monitoring record (date of last visit, time spent (in days) since their last visit ,...). Monitoring is purely informative for the administrator of the gallery.';
+/* TODO */$lang['UserAdvManager_Add_LastVisit_Column_true'] = ' Enable user monitoring list.';
+/* TODO */$lang['UserAdvManager_Add_LastVisit_Column_false'] = ' Disable user monitoring list (Default).';
+/* ConfirmMail Configuration Tab */;
+$lang['ConfirmMail_Title'] = 'Impostazioni avanzate per la convalida degli utenti registrati';
+$lang['Tab_ConfirmMail'] = 'Registrati impostazioni di convalida';
+/* UserList Tab */
+/* TODO */$lang['Title_Tab5'] = 'UserAdvManager - User Information';
+/* TODO */$lang['UserList_Title'] = 'Monitoring registered users';
+/* TODO */$lang['Tab_UserList'] = 'Monitoring users';
+/* TODO */$lang['UserAdvManager_User_List'] = 'This page is for information to the administrator. It displays a list of all users registered on the gallery showing the date and number of days since their last visit. The list is sorted in ascending order of number of days.
+<br><br>
+When the Ghost Tracker is active, the number of days without a visit appears as the following color code, according to the maximum set in the Ghost Tracker options:
+<br>
+- <b style="color: lime;">Green</b> : When the user has visited the gallery <b style="color: lime;"><u>less than 50%</u></b> of the maximum indicated in the Ghost Tracker.<br>
+- <b style="color: orange;">Orange</b> : When the user has visited the gallery <b style="color: orange;"><u> between 50% and 99% </u></b> of the maximum indicated in the Ghost Tracker.<br>
+- <b style="color: red;">Red</b> : When the user has visited the gallery <b style="color: red;"><u>for more than 100%</u></b> of the maximum indicated in the Ghost Tracker. <b><u>In this case, the user must also appear in the Ghost Tracker table.</u></b><br>
+<br>
+Example :
+<br>
+The maximum period of Ghost Tracker is configured to 100 days.
+<br>
+A user will appear in green if he visited the gallery for less than 50 days, in orange if his last visit took place between 50 and 99 days and red for 100 days and above.
+<br><br>
+<b>NOTE</b> : The list does not display who have not validated their registration (if the option of validating the registration is activated). These users are then managed in a special way in the "Validation management.';
+/* TODO */$lang['Nb_Days'] = 'Number of days<br>since last visit';
+/* UserManager Tab */
+/* TODO */$lang['UserAdvManager_ConfirmMail_User_List'] = 'When limiting the deadline for registration is enabled, you will find below the list of users whose validation registration is expected, <b style="text-decoration: underline;">whether or not</b> they are in time to validate.<br><br>The registration date is displayed in green when the user concerned is below the time limit to validate his registration. In this case, the validation key is still valid and we can send an email with or without a new validation key.<br><br>When the registration date appears in red, the validation period has expired. In this case, you must send an email with regeneration of validation key if you want to enable the user to validate their registration.<br><br>In all cases, it is possible to manually force the validation.<br><br>In this view, you can:
+<br><br>
+- Manually delete accounts <b>(manual drain)</b>
+<br>
+- Generate email reminder <b>without</b> generating a new key. Warning: Send an email reminder to targeted visitors. This function does not reset the date of registration of targeted visitors and the timeout is still valid.
+<br>
+- Generate email reminder <b>with</b> generating a new key. Warning : Send an email reminder to targeted visitors. This function also resets the date of registration of targeted visitors which equates to extend the deadline for validation.
+<br>
+- Submit a registration awaiting validation manually even if the expiry date has passed <b>(forcing validation)</b>.
+<br>';
+/* TODO */$lang['UserManager_Title'] = 'Advanced management of unvalidated';
+/* TODO */$lang['Title_Tab3'] = 'UserAdvManager - Management of registration validations';
+/* TODO */$lang['Tab_UserManager'] = 'Validations management';
+/* Ghost Tracker Tab */
+/* TODO */$lang['Reminder'] = 'Email Reminder';
+/* Errors and Warnings */
+/* TODO */$lang['Err_Userlist_Settings'] = 'This page is available only if "Users monitoring" is active in the "General Setup" tab.';
+// --------- End: New or revised $lang ---- from version 2.13.0
+// --------- Starting below: New or revised $lang ---- from version 2.13.1
+/* Global Configuration Tab */
+$lang['Title_Tab1'] = 'UserAdvManager 2.13.1 - Configurazione generale';
+/* ConfirmMail Configuration Tab */
+$lang['Title_Tab2'] = 'UserAdvManager 2.13.1 - Registrati impostazioni di convalida';
+// --------- End: New or revised $lang ---- from version 2.13.1
+// --------- Starting below: New or revised $lang ---- from version 2.13.3
+/* Global Configuration Tab */
+$lang['UserAdvManager_Username_Char_true'] = ' I seguenti caratteri <b style="color: green;">(valori separati con virgole ","!)</b> sarà proibito per la scelta username == ';
+$lang['UserAdvManager_No_Comment_Anonymous'] = 'Alias sono obbligatori per i commenti. <b style="color: red;">Non attivare questo se non hai dato il permesso per non registrati ai visitatori di inviare commenti (pannello di amministrazione PhpWebGallery> Impostazioni> Generali, scheda Commenti> "Commenti per tutti")</b>';
+// --------- End: New or revised $lang ---- from version 2.13.3
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/main.inc.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/main.inc.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/main.inc.php	(revision 4552)
@@ -0,0 +1,409 @@
+<?php
+/*
+Plugin Name: NBC UserAdvManager
+Version: 2.13.3
+Description: Renforcer les possibilités de gestion des utilisateurs - Enforce users management
+Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid=216
+Author: Nicco, Eric
+Author URI: http://gallery-nicco.no-ip.org, http://www.infernoweb.net
+*/
+
+/* History:  NBC_UserAdvManager_PATH.'Changelog.txt.php' */
+
+/*
+ ***** TODO List *****
+++ Adding ASC and DESC ordering for user's lists tables (Ghost Tracker, UserList and Unvalidated) ?
+
+++ No validation needed for admins users comments (new trigger needed in comments.php ?)
+
+++ No single email check for admins (new trigger needed in functions_user.inc.php ?)
+
+++ Password control and enforcement
+  ?? Can not be the same as username -> Could password score control be sufficient ? 
+  
+++ Security : Blocking brut-force attacks !
+              -> Way to do that : Count the number of failed attempts to connect and lock the targetted account after x attempts. Where x will be settable by admin.
+              To unlock the locked account :
+               -> A new table in admin's plugin panel which would display the locked accounts.
+               -> Sending an email to account owner to inform him his account is blocked due to multiple failed connexions attempts. This email could have a link with a security key to unlock the account.
+               -> Both of above solutions ?
+
+++ Opportunity to copy a registered user for new user creation
+  ++ new copied user will (or not) belong to the same groups
+  ++ new copied user will (or not) get the same status (visitor, admin, webmaster, guest (??))
+  ++ new copied user will (or not) get the same properties
+  ++ new copied user will (or not) get the same language
+  ... and so on
+*/
+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+  die('Hacking attempt!');
+}
+
+define('NBC_UserAdvManager_DIR' , basename(dirname(__FILE__)));
+define('NBC_UserAdvManager_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
+
+include_once (NBC_UserAdvManager_PATH.'include/constants.php');
+include_once (NBC_UserAdvManager_PATH.'include/functions_UserAdvManager.inc.php');
+
+load_language('plugin.lang', NBC_UserAdvManager_PATH);
+
+
+/* Plugin admin */
+add_event_handler('get_admin_plugin_menu_links', 'nbc_UserAdvManager_admin_menu');
+
+function nbc_UserAdvManager_admin_menu($menu)
+{
+  array_push($menu,
+    array(
+      'NAME' => 'UserAdvManager',
+      'URL'  => get_admin_plugin_menu_link(NBC_UserAdvManager_PATH.'/admin/UserAdvManager_admin.php')
+    )
+  );
+
+  return $menu;
+}
+
+
+add_event_handler('loc_begin_index', 'UserAdvManager_GhostTracker');
+
+function UserAdvManager_GhostTracker()
+{
+  global $conf, $user;
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+  if (isset($conf_nbc_UserAdvManager[17]) and $conf_nbc_UserAdvManager[17] == 'true' and !is_admin() and !is_a_guest())
+  {
+
+    $userid = get_userid($user['username']);
+     	  
+    /* Looking for existing entry in last visit table */
+    $query = '
+SELECT *
+  FROM '.USER_LASTVISIT_TABLE.'
+WHERE user_id = '.$userid.'
+;';
+        
+    $count = mysql_num_rows(pwg_query($query));
+         
+    if ($count == 0)
+    {
+      /* If not, data are inserted in table */
+      $query = '
+INSERT INTO '.USER_LASTVISIT_TABLE.' (user_id, lastvisit, reminder)
+VALUES ('.$userid.', now(), "false")
+;';
+      pwg_query($query);
+    }
+    else if ($count > 0)
+    {
+      /* If yes, data are updated in table */
+      $query = '
+UPDATE '.USER_LASTVISIT_TABLE.'
+SET lastvisit = now(), reminder = "false"
+WHERE user_id = '.$userid.'
+LIMIT 1
+;';
+      pwg_query($query);
+    }
+  }
+}
+
+
+/* User creation */
+add_event_handler('register_user', 'UserAdvManager_Adduser');
+
+function UserAdvManager_Adduser($register_user)
+{
+  global $conf;
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+  
+  /* Sending registration confirmation by email */
+  if ((isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
+  {
+    $passwd = (isset($_POST['password'])) ? $_POST['password'] : '';
+    SendMail2User(1, $register_user['id'], $register_user['username'], $passwd, $register_user['email'], true);
+  }
+}
+
+
+
+/* User deletion */
+add_event_handler('delete_user', 'UserAdvManager_Deluser');
+
+function UserAdvManager_Deluser($user_id)
+{
+  /* Cleanup for ConfirmMail table */
+  DeleteConfirmMail($user_id);
+  /* Cleanup for LastVisit table */
+  DeleteLastVisit($user_id);
+}
+
+
+/* Check users registration */
+add_event_handler('register_user_check', 'UserAdvManager_RegistrationCheck', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
+
+function UserAdvManager_RegistrationCheck($err, $user)
+{
+  global $errors, $conf;
+
+/* *********************************************************** */
+/* We need to reset the standard Piwigo's register controls    */
+/* because the call of register_user_check trigger resets them */
+/* *********************************************************** */
+  /* ********************************** */
+  /* Standard Piwigo's username control */
+  /* ********************************** */
+  if ($_POST['login'] == '')
+  {
+    return l10n('reg_err_login1');
+  }
+  if (preg_match('/^.* $/', $_POST['login']))
+  {
+    return l10n('reg_err_login2');
+  }
+  if (preg_match('/^ .*$/', $_POST['login']))
+  {
+    return l10n('reg_err_login3');
+  }
+  if (get_userid($_POST['login']))
+  {
+    return l10n('reg_err_login5');
+  }
+  
+  if (script_basename() == 'admin' and isset($_GET['page']) and $_GET['page'] == 'user_list') /* not the same email variable if we are on users registration page or on admin's user registration page*/
+  {
+  /* Email doblons check */
+    $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // before  arobase
+    $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // domain name
+    $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';
+  
+    if (!preg_match($regex, $_POST['email']))
+    {
+      return l10n('reg_err_mail_address');
+    }
+    
+    $query = '
+SELECT count(*)
+FROM '.USERS_TABLE.'
+WHERE upper('.$conf['user_fields']['email'].') = upper(\''.$_POST['email'].'\')
+;';
+    list($count) = mysql_fetch_array(pwg_query($query));
+    if ($count != 0)
+    {
+      return l10n('reg_err_mail_address_dbl');
+    }
+  }
+
+  if (script_basename() == 'register') /* not the same email variable if we are on users registration page or on admin's user registration page*/
+  {
+  /* Email doblons check */
+    $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // before  arobase
+    $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // domain name
+    $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';
+  
+    if (!preg_match($regex, $_POST['mail_address']))
+    {
+      return l10n('reg_err_mail_address');
+    }
+    
+    $query = '
+SELECT count(*)
+FROM '.USERS_TABLE.'
+WHERE upper('.$conf['user_fields']['email'].') = upper(\''.$_POST['mail_address'].'\')
+;';
+    list($count) = mysql_fetch_array(pwg_query($query));
+    if ($count != 0)
+    {
+      return l10n('reg_err_mail_address_dbl');
+    }
+  }
+/* ****************************************** */
+/* End of Piwigo's standard register controls */
+/* ****************************************** */
+
+
+/* ****************************************** */
+/* Here begins the advanced register controls */
+/* ****************************************** */
+  $PasswordCheck = 0;
+  
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+  /* Password enforcement control */
+  if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
+  {
+    if (!empty($user['password']) and !is_admin())
+    {
+      $PasswordCheck = testpassword($user['password']);
+  
+      if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
+      {
+        $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
+        return($lang['reg_err_pass'] = l10n_args($message).$conf_nbc_UserAdvManager[15]);
+      }
+    }
+    else if (!empty($user['password']) and is_admin() and isset($conf_nbc_UserAdvManager[16]) and $conf_nbc_UserAdvManager[16] == 'true')
+    { 
+      $PasswordCheck = testpassword($user['password']);
+  
+      if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
+      {
+        $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
+        return($lang['reg_err_pass'] = l10n_args($message).$conf_nbc_UserAdvManager[15]);
+      }
+    }
+  }
+
+  /* Username non case sensitive */
+  if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true' and NotSensibleSearchUsername($_POST['login']))
+  {
+    return($lang['reg_err_login5'] = l10n('reg_err_login5'));
+  }
+
+  /* Username without forbidden keys */
+  if (isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' and !empty($_POST['login']) and ValidateUsername($_POST['login']))
+  {
+    $_POST['login'] = '';
+    return($lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'");
+  }
+
+  /* Email without forbidden domains */
+  if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']) and ValidateEmailProvider($_POST['mail_address']))
+  {
+    $_POST['mail_address'] = '';
+    return($lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
+  }
+}
+
+
+if (script_basename() == 'profile')
+{
+  add_event_handler('loc_begin_profile', 'UserAdvManager_Profile_Init');
+
+  function UserAdvManager_Profile_Init()
+  {
+    global $conf, $user, $template;
+
+    $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+    if (isset($_POST['validate']))
+    {
+      /* Email without forbidden domains */
+      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
+      {
+        if (ValidateEmailProvider($_POST['mail_address']))
+        {
+          $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
+          unset($_POST['validate']);
+        }
+      }
+
+      $typemail = 3;
+      
+      if (!empty($_POST['use_new_pwd']))
+      {
+        $typemail = 2;
+        
+        /* Password enforcement control */
+        if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
+        {
+          $PasswordCheck = testpassword($_POST['use_new_pwd']);
+         
+          if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
+          {
+            $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
+            $template->append('errors', l10n_args($message).$conf_nbc_UserAdvManager[15]);
+            unset($_POST['use_new_pwd']);
+            unset($_POST['validate']);
+          }
+        }
+      }
+      
+      /* Sending registration confirmation by email */
+      if ((isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
+      {
+        $confirm_mail_need = false;
+              
+        if (!empty($_POST['mail_address']))
+        {
+          $query = '
+SELECT '.$conf['user_fields']['email'].' AS email
+FROM '.USERS_TABLE.'
+WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
+;';
+          
+          list($current_email) = mysql_fetch_row(pwg_query($query));
+      
+          if ($_POST['mail_address'] != $current_email and ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
+        
+            $confirm_mail_need = true;
+        }
+        
+        if ((!empty($_POST['use_new_pwd']) and (isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or $confirm_mail_need))
+        {
+          $query = '
+SELECT '.$conf['user_fields']['username'].'
+FROM '.USERS_TABLE.'
+WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
+;';
+        
+          list($username) = mysql_fetch_row(pwg_query($query));
+
+          SendMail2User($typemail, $user['id'], $username, $_POST['use_new_pwd'], $_POST['mail_address'], $confirm_mail_need);
+        }
+      }
+    }
+  }
+}
+
+
+add_event_handler('init', 'UserAdvManager_InitPage');
+/* *** Important ! This is necessary to make email exclusion work in admin's users management panel *** */
+function UserAdvManager_InitPage()
+{
+  load_language('plugin.lang', NBC_UserAdvManager_PATH);
+  global $conf, $template, $page, $lang, $errors;
+
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+/* Admin user management */
+  if (script_basename() == 'admin' and isset($_GET['page']) and $_GET['page'] == 'user_list')
+  {
+    if (isset($_POST['submit_add']))
+    {
+      /* Email without forbidden domains */
+      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['email']) and ValidateEmailProvider($_POST['email']))
+      {
+        $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
+        unset($_POST['submit_add']);
+      }
+    }
+  }
+}
+
+
+add_event_handler('user_comment_check', 'UserAdvManager_CheckEmptyCommentAuthor', 50, 2);
+
+function UserAdvManager_CheckEmptyCommentAuthor($comment_action, $comm)
+{
+  load_language('plugin.lang', NBC_UserAdvManager_PATH);
+  global $infos, $conf, $template;
+
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+/* User creation OR update */
+  if (isset($conf_nbc_UserAdvManager[6]) and $conf_nbc_UserAdvManager[6] == 'true' and $conf['comments_forall'] == 'true' and $comm['author'] == 'guest')
+  {
+    $comment_action = 'reject';
+
+    array_push($infos, l10n('UserAdvManager_Empty Author'));
+  }
+
+  return $comment_action;
+}
+?>
Index: /extensions/NBC_UserAdvManager/tags/2.13.3/maintain.inc.php
===================================================================
--- /extensions/NBC_UserAdvManager/tags/2.13.3/maintain.inc.php	(revision 4552)
+++ /extensions/NBC_UserAdvManager/tags/2.13.3/maintain.inc.php	(revision 4552)
@@ -0,0 +1,236 @@
+<?php
+
+if(!defined("NBC_UserAdvManager_PATH"))
+  define('NBC_UserAdvManager_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
+
+include_once (NBC_UserAdvManager_PATH.'include/constants.php');
+include_once (NBC_UserAdvManager_PATH.'include/functions_UserAdvManager.inc.php');
+
+function plugin_install()
+{
+	global $conf;
+	
+  $q = '
+INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
+VALUES ("nbc_UserAdvManager","true;false;false;-1;-1;-1;false;false;;-1;;;false;;false;100;false;false;10;Hello.
+	
+This is a reminder because a very long time passed since your last visit on our gallery. If you do not want anymore to use your access account, please let us know by replying to this email. Your account will be deleted.
+
+On receipt of this message and no new visit within 15 days, we would be obliged to automatically delete your account.
+
+Best regards,
+
+The admin of the gallery.","Parametres du plugin nbc UserAdvManager")
+  ;';
+  pwg_query($q);
+
+  $q = '
+INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
+VALUES ("nbc_UserAdvManager_ConfirmMail","false;5;Hello.
+		
+This is a reminder message because you registered on our gallery but you do not validate your registration and your validation key has expired. To still allow you to access to our gallery, your validation period has been reset. You have again 5 days to validate your registration.
+
+Note: After this period, your account will be permanently deleted.;false;Hello.
+
+This is a reminder message because you registered on our gallery but you do not validate your registration and your validation key will expire. To allow you access to our gallery, you have 2 days to confirm your registration by clicking on the link in the message you should have received when you registered.
+
+Note: After this period, your account will be permanently deleted.","Parametres nbc_UserAdvManager - ConfirmMail")
+  ;';
+  pwg_query($q);
+
+	$q = "
+CREATE TABLE IF NOT EXISTS ".USER_CONFIRM_MAIL_TABLE." (
+  id varchar(50) NOT NULL default '',
+  user_id smallint(5) NOT NULL default '0',
+  mail_address varchar(255) default NULL,
+  status enum('webmaster','admin','normal','generic','guest') default NULL,
+  date_check datetime default NULL,
+  reminder ENUM('true','false') NULL,
+PRIMARY KEY  (id)
+  )
+;";
+  pwg_query($q);
+
+	$q = "
+CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
+  user_id SMALLINT(5) NOT NULL DEFAULT '0',
+  lastvisit DATETIME NULL DEFAULT NULL,
+  reminder ENUM('true','false') NULL,
+PRIMARY KEY (`user_id`)
+  )
+;";
+  pwg_query($q);
+}
+
+function plugin_activate()
+{
+	  global $conf;
+	
+/* Check for upgrade from 2.10 to 2.11 */
+	  $query = '
+SELECT *
+  FROM '.CONFIG_TABLE.'
+WHERE param = "nbc_UserAdvManager_ConfirmMail"
+;';
+  $count = mysql_num_rows(pwg_query($query)); 
+  
+	if ($count == 0)
+	{
+	 /* upgrade from branch 2.10 to 2.11 */
+		upgrade_210();
+	}
+
+
+/* Check for upgrade from 2.11 to 2.12 */
+  if (!table_exist(USER_LASTVISIT_TABLE))
+  {
+    /* upgrade from branch 2.11 to 2.12 */
+		upgrade_211();
+  }
+
+
+/* Check for upgrade from 2.12 to 2.13 */
+  $query = '
+SELECT *
+FROM '.USER_CONFIRM_MAIL_TABLE.'
+;';
+
+  $result = pwg_query($query);
+	
+	$numfields = mysql_num_fields($result);
+
+  if ($numfields < 6)
+  {
+    /* upgrade from branch 2.12 to 2.13 */
+    upgrade_212();
+  }
+}
+
+
+function plugin_uninstall()
+{
+  global $conf;
+
+  if (isset($conf['nbc_UserAdvManager']))
+  {
+    $q = '
+DELETE FROM '.CONFIG_TABLE.'
+WHERE param="nbc_UserAdvManager"
+;';
+
+    pwg_query($q);
+  }
+
+  if (isset($conf['nbc_UserAdvManager_ConfirmMail']))
+  {
+    $q = '
+DELETE FROM '.CONFIG_TABLE.'
+WHERE param="nbc_UserAdvManager_ConfirmMail"
+;';
+
+    pwg_query($q);
+  }
+
+  $q = 'DROP TABLE '.USER_CONFIRM_MAIL_TABLE.';';
+  pwg_query( $q );
+
+  $q = 'DROP TABLE '.USER_LASTVISIT_TABLE.';';
+  pwg_query( $q );
+}
+
+
+/* upgrade from branch 2.10 to 2.11 */
+function upgrade_210()
+{
+	global $conf;
+	  
+  $q = '
+INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
+VALUES ("nbc_UserAdvManager_ConfirmMail","false;5;Hello.
+		
+This is a reminder message because you registered on our gallery but you do not validate your registration and your validation key has expired. To still allow you to access to our gallery, your validation period has been reset. You have again 5 days to validate your registration.
+
+Note: After this period, your account will be permanently deleted.;false;Hello.
+
+This is a reminder message because you registered on our gallery but you do not validate your registration and your validation key will expire. To allow you access to our gallery, you have 2 days to confirm your registration by clicking on the link in the message you should have received when you registered.
+
+Note: After this period, your account will be permanently deleted.","Parametres nbc_UserAdvManager - ConfirmMail")
+  ;';
+  pwg_query($q);
+
+  upgrade_211();
+}
+
+
+/* upgrade from branch 2.11 to 2.12 */
+function upgrade_211()
+{
+	global $conf;
+
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+  if ((!isset($conf_nbc_UserAdvManager[14]) and !isset($conf_nbc_UserAdvManager[15])) and !isset($conf_nbc_UserAdvManager[16]) and !isset($conf_nbc_UserAdvManager[17]))
+  {
+    $upgrade_nbc_UserAdvManager = $conf_nbc_UserAdvManager[0].';'.$conf_nbc_UserAdvManager[1].';'.$conf_nbc_UserAdvManager[2].';'.$conf_nbc_UserAdvManager[3].';'.$conf_nbc_UserAdvManager[4].';'.$conf_nbc_UserAdvManager[5].';'.$conf_nbc_UserAdvManager[6].';'.$conf_nbc_UserAdvManager[7].';'.$conf_nbc_UserAdvManager[8].';'.$conf_nbc_UserAdvManager[9].';'.$conf_nbc_UserAdvManager[10].';'.$conf_nbc_UserAdvManager[11].';'.$conf_nbc_UserAdvManager[12].';'.$conf_nbc_UserAdvManager[13].';false;100;false;false;10;Hello.
+	
+This is a reminder because a very long time passed since your last visit on our gallery. If you do not want anymore to use your access account, please let us know by replying to this email. Your account will be deleted.
+
+On receipt of this message and no new visit within 15 days, we would be obliged to automatically delete your account.
+
+Best regards,
+
+The admin of the gallery.';
+		
+		$query = '
+UPDATE '.CONFIG_TABLE.'
+SET value="'.$upgrade_nbc_UserAdvManager.'"
+WHERE param="nbc_UserAdvManager"
+LIMIT 1
+;';
+		pwg_query($query);
+  }
+  
+	$q = "
+CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
+  user_id SMALLINT(5) NOT NULL DEFAULT '0',
+  lastvisit DATETIME NULL DEFAULT NULL,
+  reminder ENUM('true','false') NULL,
+PRIMARY KEY (`user_id`)
+  )
+;";
+  pwg_query($q);
+
+  upgrade_212();
+}
+
+
+/* upgrade from branch 2.12 to 2.13 */
+function upgrade_212()
+{
+/* Create missing table */
+  $query = "
+ALTER TABLE ".USER_CONFIRM_MAIL_TABLE."
+ADD reminder ENUM('true', 'false') NULL DEFAULT NULL
+;";
+  
+  pwg_query($query);
+
+/* Upgrade plugin configuration */
+	global $conf;
+
+  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
+
+  if ((!isset($conf_nbc_UserAdvManager[20])))
+  {
+    $upgrade_nbc_UserAdvManager = $conf_nbc_UserAdvManager[0].';'.$conf_nbc_UserAdvManager[1].';'.$conf_nbc_UserAdvManager[2].';'.$conf_nbc_UserAdvManager[3].';'.$conf_nbc_UserAdvManager[4].';'.$conf_nbc_UserAdvManager[5].';'.$conf_nbc_UserAdvManager[6].';'.$conf_nbc_UserAdvManager[7].';'.$conf_nbc_UserAdvManager[8].';'.$conf_nbc_UserAdvManager[9].';'.$conf_nbc_UserAdvManager[10].';'.$conf_nbc_UserAdvManager[11].';'.$conf_nbc_UserAdvManager[12].';'.$conf_nbc_UserAdvManager[13].';'.$conf_nbc_UserAdvManager[14].';'.$conf_nbc_UserAdvManager[15].';'.$conf_nbc_UserAdvManager[16].';'.$conf_nbc_UserAdvManager[17].';'.$conf_nbc_UserAdvManager[18].';'.$conf_nbc_UserAdvManager[19].';false';
+		
+		$query = '
+UPDATE '.CONFIG_TABLE.'
+SET value="'.$upgrade_nbc_UserAdvManager.'"
+WHERE param="nbc_UserAdvManager"
+LIMIT 1
+;';
+		pwg_query($query);
+  }
+}
+?>
