Changeset 6439


Ignore:
Timestamp:
06/01/10 22:54:16 (10 years ago)
Author:
Eric
Message:

[NBM_Subscriber]

First release coded 1.0.0:

  • Admin panel added
  • Adding language files: FR and EN are OK, other are partially done
Location:
extensions/NBM_Subscriber
Files:
23 added
3 edited

Legend:

Unmodified
Added
Removed
  • extensions/NBM_Subscriber/admin/NBMS_admin.php

    r6436 r6439  
    11<?php 
    22 
    3 global $user, $lang, $conf, $errors; 
     3global $lang; 
    44 
    55if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
     
    1111if (!defined('NBMS_PATH')) define('NBMS_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/'); 
    1212 
    13 //ini_set('error_reporting', E_ALL); 
    14 //ini_set('display_errors', true); 
    15  
    1613load_language('plugin.lang', NBMS_PATH); 
    1714 
     
    2219$plugin =  NBMSInfos(NBMS_PATH); 
    2320$version = $plugin['version']; 
    24  
     21$name = $plugin['name']; 
    2522 
    2623 
    2724// +-----------------------------------------------------------------------+ 
    28 // |                            Tabssheet select                           | 
     25// |                           templates init                              | 
    2926// +-----------------------------------------------------------------------+ 
    30  
    31 switch ($page['tab']) 
    32 { 
    33 // ************************************************************************* 
    34 // +-----------------------------------------------------------------------+ 
    35 // |                           Global Config                               | 
    36 // +-----------------------------------------------------------------------+ 
    37 // ************************************************************************* 
    38   case 'global': 
    39  
    40         if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UAM_Mail_Info']) and isset($_POST['UAM_Username_Char']) and isset($_POST['UAM_Confirm_Mail']) and isset($_POST['UAM_No_Comment_Anonymous']) and isset($_POST['UAM_Password_Enforced']) and isset($_POST['UAM_AdminPassword_Enforced']) and isset($_POST['UAM_GhostUser_Tracker']) and isset($_POST['UAM_Admin_ConfMail'])) 
    41   { 
    42  
    43 /* General configuration settings */ 
    44                 $_POST['UAM_MailInfo_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_MailInfo_Text'])); 
    45      
    46                 $_POST['UAM_ConfirmMail_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_ConfirmMail_Text'])); 
    47  
    48     $_POST['UAM_GhostTracker_ReminderText'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GhostTracker_ReminderText'])); 
    49  
    50  
    51 /* Check if CR-LF exist at begining and end of mail exclusion list - If yes, removes them */ 
    52     if (preg_match('/^[\s]+/', $_POST['UAM_MailExclusion_List'])) 
    53     { 
    54       array_push($page['errors'], l10n('mail_exclusionlist_error')); 
    55       $UAM_Exclusionlist_Error = true; 
    56     } 
    57                  
    58                 $newconf_UAM = array( 
    59       $_POST['UAM_Mail_Info'], 
    60       $_POST['UAM_Confirm_Mail'], 
    61       (isset($_POST['UAM_No_Confirm_Group'])?$_POST['UAM_No_Confirm_Group']:''), 
    62       (isset($_POST['UAM_Validated_Group'])?$_POST['UAM_Validated_Group']:''), 
    63       (isset($_POST['UAM_Validated_Status'])?$_POST['UAM_Validated_Status']:''), 
    64       $_POST['UAM_No_Comment_Anonymous'], 
    65       $_POST['UAM_Username_Char'], 
    66       $_POST['UAM_Username_List'], 
    67       (isset($_POST['UAM_No_Confirm_Status'])?$_POST['UAM_No_Confirm_Status']:''), 
    68       $_POST['UAM_MailInfo_Text'], 
    69       $_POST['UAM_ConfirmMail_Text'], 
    70       $_POST['UAM_MailExclusion'], 
    71       $_POST['UAM_MailExclusion_List'], 
    72       $_POST['UAM_Password_Enforced'], 
    73       $_POST['UAM_Password_Score'], 
    74       $_POST['UAM_AdminPassword_Enforced'], 
    75       $_POST['UAM_GhostUser_Tracker'], 
    76       $_POST['UAM_GhostTracker_DayLimit'], 
    77       $_POST['UAM_GhostTracker_ReminderText'], 
    78       $_POST['UAM_Add_LastVisit_Column'], 
    79       $_POST['UAM_Admin_ConfMail']); 
    80  
    81     $conf['UserAdvManager'] = serialize($newconf_UAM); 
    82  
    83                 $query = ' 
    84                 UPDATE '.CONFIG_TABLE.' 
    85                 SET value="'.addslashes($conf['UserAdvManager']).'" 
    86                 WHERE param="UserAdvManager" 
    87                 LIMIT 1 
    88                 ;'; 
    89                  
    90                 pwg_query($query); 
    91  
    92  
    93 /* Email confirmation settings */ 
    94     $_POST['UAM_ConfirmMail_ReMail_Txt1'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_ConfirmMail_ReMail_Txt1'])); 
    95  
    96     $_POST['UAM_ConfirmMail_ReMail_Txt2'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_ConfirmMail_ReMail_Txt2'])); 
    97      
    98     $_POST['UAM_ConfirmMail_Custom_Txt1'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_ConfirmMail_Custom_Txt1'])); 
    99      
    100     $_POST['UAM_ConfirmMail_Custom_Txt2'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_ConfirmMail_Custom_Txt2'])); 
    101  
    102  
    103           $newconf_UAM_ConfirmMail = array ( 
    104       $_POST['UAM_ConfirmMail_TimeOut'], 
    105       $_POST['UAM_ConfirmMail_Delay'], 
    106       $_POST['UAM_ConfirmMail_ReMail_Txt1'], 
    107       $_POST['UAM_ConfirmMail_Remail'], 
    108       $_POST['UAM_ConfirmMail_ReMail_Txt2'], 
    109       $_POST['UAM_ConfirmMail_Custom_Txt1'], 
    110       $_POST['UAM_ConfirmMail_Custom_Txt2']); 
    111  
    112     $conf['UserAdvManager_ConfirmMail'] = serialize($newconf_UAM_ConfirmMail); 
    113      
    114           $query = ' 
    115       UPDATE '.CONFIG_TABLE.' 
    116                         SET value="'.addslashes($conf['UserAdvManager_ConfirmMail']).'" 
    117                         WHERE param="UserAdvManager_ConfirmMail" 
    118                         LIMIT 1 
    119                 ;'; 
    120  
    121                 pwg_query($query); 
    122  
    123                 array_push($page['infos'], l10n('UAM_save_config')); 
    124   } 
    125  
    126  
    127 /* Testing password enforcement */ 
    128   if (isset($_POST['PasswordTest']) and !is_adviser() and isset($_POST['UAM_Password_Test']) and !empty($_POST['UAM_Password_Test'])) 
    129   { 
    130     $UAM_Password_Test_Score = testpassword($_POST['UAM_Password_Test']); 
    131   } 
    132   else if (isset($_POST['PasswordTest']) and !is_adviser() and empty($_POST['UAM_Password_Test'])) 
    133   { 
    134     array_push($page['errors'], l10n('reg_err_login3')); 
    135   } 
    136  
    137   $conf_UAM = unserialize($conf['UserAdvManager']); 
    138  
    139 /* Group setting for unvalidated and validated users */ 
    140   $groups[-1] = '---------'; 
    141   $No_Valid = -1; 
    142   $Valid = -1; 
    143          
    144 /* Check groups list in database  */ 
    145   $query = ' 
    146 SELECT id, name 
    147 FROM '.GROUPS_TABLE.' 
    148 ORDER BY name ASC 
    149 ;'; 
    150          
    151   $result = pwg_query($query); 
    152          
    153   while ($row = pwg_db_fetch_assoc($result)) 
    154   { 
    155     $groups[$row['id']] = $row['name']; 
    156 /* configuration value for unvalidated users */ 
    157     if (isset($conf_UAM[2]) and $conf_UAM[2] == $row['id']) 
    158     { 
    159                 $No_Valid = $row['id']; 
    160                 } 
    161 /* configuration value for validated users */ 
    162     if (isset($conf_UAM[3]) and $conf_UAM[3] == $row['id']) 
    163                 { 
    164                 $Valid = $row['id']; 
    165                 } 
    166   } 
    167          
    168 /* Template initialization for unvalidated users group */ 
    169   $template->assign( 
    170     'No_Confirm_Group', 
    171         array( 
    172                 'group_options'=> $groups, 
    173                 'group_selected' => $No_Valid 
    174                         ) 
    175                 ); 
    176 /* Template initialization for validated users group */ 
    177   $template->assign( 
    178     'Validated_Group', 
    179                 array( 
    180       'group_options'=> $groups, 
    181       'group_selected' => $Valid 
    182                         ) 
    183         ); 
    184          
    185 /* Status setting for unvalidated and validated users */ 
    186   $status_options[-1] = '------------'; 
    187   $No_Valid_Status = -1; 
    188   $Valid_Status = -1; 
    189          
    190 /* Get status values */ 
    191   foreach (get_enums(USER_INFOS_TABLE, 'status') as $status) 
    192   { 
    193           $status_options[$status] = l10n('user_status_'.$status); 
    194           if (isset($conf_UAM[8]) and $conf_UAM[8] == $status) 
    195           { 
    196             $No_Valid_Status = $status; 
    197           } 
    198            
    199 /* Template initialization for unvalidated users group */ 
    200       $template->assign( 
    201         'No_Confirm_Status', 
    202         array( 
    203                                         'Status_options' => $status_options, 
    204                                 'Status_selected' => $No_Valid_Status 
    205                                         ) 
    206                         ); 
    207   } 
    208    
    209 /* Get status values */ 
    210   foreach (get_enums(USER_INFOS_TABLE, 'status') as $status) 
    211   { 
    212           $status_options[$status] = l10n('user_status_'.$status); 
    213           if (isset($conf_UAM[4]) and $conf_UAM[4] == $status) 
    214                 { 
    215                   $Valid_Status = $status; 
    216                 } 
    217                  
    218 /* Template initialization for unvalidated users group */ 
    219       $template->assign( 
    220             'Confirm_Status', 
    221             array( 
    222                     'Status_options' => $status_options, 
    223                     'Status_selected' => $Valid_Status 
    224                     ) 
    225             ); 
    226         } 
    227  
    228 /* Save last opened paragraph in configuration tab */ 
    229   $nb_para=(isset($_POST["nb_para"])) ? $_POST["nb_para"]:""; 
    230   $nb_para2=(isset($_POST["nb_para2"])) ? $_POST["nb_para2"]:""; 
    231  
    232   $conf_UAM_ConfirmMail = unserialize($conf['UserAdvManager_ConfirmMail']); 
    233    
    23427  $template->assign( 
    23528    array( 
    236     'nb_para'                        => $nb_para, 
    237     'nb_para2'                       => $nb_para2, 
    238     'UAM_VERSION'                    => $version, 
    239     'UAM_PATH'                       => UAM_PATH, 
    240                 'UAM_MAIL_INFO_TRUE'             => $conf_UAM[0]=='true' ?  'checked="checked"' : '' , 
    241                 'UAM_MAIL_INFO_FALSE'            => $conf_UAM[0]=='false' ?  'checked="checked"' : '' , 
    242                 'UAM_MAILINFO_TEXT'              => $conf_UAM[9], 
    243                 'UAM_USERNAME_CHAR_TRUE'         => $conf_UAM[6]=='true' ?  'checked="checked"' : '' , 
    244                 'UAM_USERNAME_CHAR_FALSE'        => $conf_UAM[6]=='false' ?  'checked="checked"' : '' , 
    245                 'UAM_USERNAME_CHAR_LIST'         => $conf_UAM[7], 
    246                 'UAM_CONFIRM_MAIL_TRUE'          => $conf_UAM[1]=='true' ?  'checked="checked"' : '' , 
    247                 'UAM_CONFIRM_MAIL_FALSE'         => $conf_UAM[1]=='false' ?  'checked="checked"' : '' , 
    248                 'UAM_CONFIRMMAIL_TEXT'           => $conf_UAM[10], 
    249                 'UAM_No_Confirm_Group'           => $conf_UAM[2], 
    250                 'UAM_Validated_Group'            => $conf_UAM[3], 
    251                 'UAM_No_Confirm_Status'          => $conf_UAM[8], 
    252                 'UAM_Validated_Status'           => $conf_UAM[4], 
    253                 'UAM_NO_COMMENT_ANO_TRUE'        => $conf_UAM[5]=='true' ?  'checked="checked"' : '' , 
    254                 'UAM_NO_COMMENT_ANO_FALSE'       => $conf_UAM[5]=='false' ?  'checked="checked"' : '' , 
    255                 'UAM_MAILEXCLUSION_TRUE'         => $conf_UAM[11]=='true' ?  'checked="checked"' : '' , 
    256                 'UAM_MAILEXCLUSION_FALSE'        => $conf_UAM[11]=='false' ?  'checked="checked"' : '' , 
    257                 'UAM_MAILEXCLUSION_LIST'         => $conf_UAM[12], 
    258                 'UAM_PASSWORDENF_TRUE'           => $conf_UAM[13]=='true' ?  'checked="checked"' : '' , 
    259                 'UAM_PASSWORDENF_FALSE'          => $conf_UAM[13]=='false' ?  'checked="checked"' : '' , 
    260                 'UAM_PASSWORD_SCORE'             => $conf_UAM[14], 
    261     'UAM_ADMINPASSWENF_TRUE'         => $conf_UAM[15]=='true' ?  'checked="checked"' : '' , 
    262                 'UAM_ADMINPASSWENF_FALSE'        => $conf_UAM[15]=='false' ?  'checked="checked"' : '' , 
    263     'UAM_GHOSTRACKER_TRUE'           => $conf_UAM[16]=='true' ?  'checked="checked"' : '' , 
    264                 'UAM_GHOSTRACKER_FALSE'          => $conf_UAM[16]=='false' ?  'checked="checked"' : '' , 
    265     'UAM_GHOSTRACKER_DAYLIMIT'       => $conf_UAM[17], 
    266     'UAM_GHOSTRACKER_REMINDERTEXT'   => $conf_UAM[18], 
    267     'UAM_ADDLASTVISIT_TRUE'          => $conf_UAM[19]=='true' ?  'checked="checked"' : '' , 
    268     'UAM_ADDLASTVISIT_FALSE'         => $conf_UAM[19]=='false' ?  'checked="checked"' : '' , 
    269     'UAM_ADMINCONFMAIL_TRUE'         => $conf_UAM[20]=='true' ?  'checked="checked"' : '' , 
    270     'UAM_ADMINCONFMAIL_FALSE'        => $conf_UAM[20]=='false' ?  'checked="checked"' : '' , 
    271                 'UAM_PASSWORD_TEST_SCORE'        => $UAM_Password_Test_Score, 
    272     'UAM_ERROR_REPORTS4'             => $UAM_Exclusionlist_Error, 
    273                 'UAM_CONFIRMMAIL_TIMEOUT_TRUE'   => $conf_UAM_ConfirmMail[0]=='true' ?  'checked="checked"' : '' , 
    274                 'UAM_CONFIRMMAIL_TIMEOUT_FALSE'  => $conf_UAM_ConfirmMail[0]=='false' ?  'checked="checked"' : '' , 
    275                 'UAM_CONFIRMMAIL_DELAY'                                  => $conf_UAM_ConfirmMail[1], 
    276     'UAM_CONFIRMMAIL_REMAIL_TRUE'                => $conf_UAM_ConfirmMail[3]=='true' ? 'checked="checked"' : '', 
    277     'UAM_CONFIRMMAIL_REMAIL_FALSE'       => $conf_UAM_ConfirmMail[3]=='false' ? 'checked="checked"' : '', 
    278     'UAM_CONFIRMMAIL_REMAIL_TXT1'                => $conf_UAM_ConfirmMail[2], 
    279     'UAM_CONFIRMMAIL_REMAIL_TXT2'                => $conf_UAM_ConfirmMail[4], 
    280     'UAM_CONFIRMMAIL_CUSTOM_TXT1'                => $conf_UAM_ConfirmMail[5], 
    281     'UAM_CONFIRMMAIL_CUSTOM_TXT2'                => $conf_UAM_ConfirmMail[6], 
     29    'NBMS_NAME'     =>  $name, 
     30    'NBMS_VERSION'  =>  $version, 
    28231    ) 
    28332  ); 
    284  
    285   if (isset($_POST['audit'])) 
    286         { 
    287                 $msg_error1 = ''; 
    288                  
    289 /* username insensible a la casse */ 
    290     if (isset($conf_UAM[2]) and $conf_UAM[2] == 'true') 
    291           { 
    292                         $query = " 
    293 SELECT ".$conf['user_fields']['username']." 
    294   FROM ".USERS_TABLE." p1 
    295 WHERE EXISTS( 
    296   SELECT ".$conf['user_fields']['username']." 
    297          FROM ".USERS_TABLE." p2 
    298         WHERE p1.".$conf['user_fields']['id']." <> p2.".$conf['user_fields']['id']." 
    299          AND LOWER(p1.".$conf['user_fields']['username'].") = LOWER(p2.".$conf['user_fields']['username'].") 
    300         ) 
    301 ;"; 
    302                            
    303                   $result = pwg_query($query); 
    304                          
    305                   while($row = pwg_db_fetch_assoc($result)) 
    306                 { 
    307                                 $msg_error1 .= (($msg_error1 <> '') ? '<br/>' : '') . l10n('Err_audit_no_casse').stripslashes($row['username']); 
    308                         } 
    309                 } 
    310  
    311                 $msg_error2 = ''; 
    312                  
    313 /* Username without forbidden keys */ 
    314     if ( isset($conf_UAM[6]) and $conf_UAM[6] == 'true' ) 
    315           { 
    316                         $query = " 
    317 SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']." 
    318   FROM ".USERS_TABLE." 
    319 ;"; 
    320                            
    321                         $result = pwg_query($query); 
    322                          
    323                         while($row = pwg_db_fetch_assoc($result)) 
    324                         { 
    325                                 if (!ValidateUsername(stripslashes($row['username']))) 
    326                                         $msg_error2 .= (($msg_error2 <> '') ? '<br/>' : '') . l10n('Err_audit_username_char').stripslashes($row['username']); 
    327                         } 
    328                 } 
    329  
    330                 $msg_error3 = ''; 
    331                  
    332 /* Email without forbidden domain */ 
    333     if ( isset($conf_UAM[11]) and $conf_UAM[11] == 'true' ) 
    334           { 
    335                         $query = " 
    336 SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']." 
    337   FROM ".USERS_TABLE." 
    338 ;"; 
    339                            
    340                   $result = pwg_query($query); 
    341                          
    342                   while($row = pwg_db_fetch_assoc($result)) 
    343                   { 
    344                           $conf_MailExclusion = preg_split("/[\s,]+/",$conf_UAM[12]); 
    345                           for ($i = 0 ; $i < count($conf_MailExclusion) ; $i++) 
    346                           { 
    347                                         $pattern = '/'.$conf_MailExclusion[$i].'/'; 
    348                                   if (preg_match($pattern, $row['mail_address'])) 
    349                                   { 
    350                                                 $msg_error3 .=  (($msg_error3 <> '') ? '<br/>' : '') . l10n('Err_audit_email_forbidden').stripslashes($row['username']).' ('.$row['mail_address'].')'; 
    351                                         } 
    352                                 } 
    353                         } 
    354                 } 
    355                  
    356     if ($msg_error1 <> '') 
    357                         $errors[] = $msg_error1.'<br/><br/>'; 
    358                  
    359                 if ($msg_error2 <> '') 
    360                         $errors[] = $msg_error2.'<br/><br/>'; 
    361                  
    362                 if ($msg_error3 <> '') 
    363                 $errors[] = $msg_error3.'<br/><br/>'; 
    364                  
    365                 if ($msg_error1 <> '' or $msg_error2 <> '' or $msg_error3 <> '') 
    366                 array_push($page['errors'], l10n('Err_audit_advise')); 
    367                 else 
    368         array_push($page['infos'], l10n('UAM_audit_ok')); 
    369         } 
    370  
    371  
    372 // +-----------------------------------------------------------------------+ 
    373 // |                             errors display                            | 
    374 // +-----------------------------------------------------------------------+ 
    375   if (isset ($errors) and count($errors) != 0) 
    376   { 
    377           $template->assign('errors',array()); 
    378           foreach ($errors as $error) 
    379           { 
    380                   array_push($page['errors'], $error); 
    381                 } 
    382         }   
    38333 
    38434// +-----------------------------------------------------------------------+ 
    38535// |                           templates display                           | 
    38636// +-----------------------------------------------------------------------+ 
    387   $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/global.tpl'); 
     37  $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/NBMS_admin.tpl'); 
    38838  $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); 
    389  
    390   break; 
    391  
    392  
    393 // ************************************************************************* 
    394 // +-----------------------------------------------------------------------+ 
    395 // |                           Users list page                             | 
    396 // +-----------------------------------------------------------------------+ 
    397 // ************************************************************************* 
    398   case 'userlist': 
    399    
    400   $conf_UAM = unserialize($conf['UserAdvManager']); 
    401    
    402   if (isset($conf_UAM[19]) and $conf_UAM[19]=='true') 
    403   { 
    404 // +-----------------------------------------------------------------------+ 
    405 // |                           initialization                              | 
    406 // +-----------------------------------------------------------------------+ 
    407  
    408                 if (!defined('PHPWG_ROOT_PATH')) 
    409     { 
    410         die('Hacking attempt!'); 
    411     } 
    412            
    413     include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    414  
    415 // +-----------------------------------------------------------------------+ 
    416 // | Check Access and exit when user status is not ok                      | 
    417 // +-----------------------------------------------------------------------+ 
    418                 check_status(ACCESS_ADMINISTRATOR); 
    419  
    420  
    421 // +-----------------------------------------------------------------------+ 
    422 // |                               user list                               | 
    423 // +-----------------------------------------------------------------------+ 
    424  
    425                 $page['filtered_users'] = get_user_list(); 
    426  
    427 // +-----------------------------------------------------------------------+ 
    428 // |                           Template Init                               | 
    429 // +-----------------------------------------------------------------------+ 
    430                 /*$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list'; 
    431  
    432     if (isset($_GET['start']) and is_numeric($_GET['start'])) 
    433     { 
    434       $start = $_GET['start']; 
    435     } 
    436     else 
    437     { 
    438       $start = 0; 
    439     }*/ 
    440  
    441 // +-----------------------------------------------------------------------+ 
    442 // |                            navigation bar                             | 
    443 // +-----------------------------------------------------------------------+ 
    444  
    445 /*$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start')); 
    446  
    447 $navbar = create_navigation_bar( 
    448   $url, 
    449   count($page['filtered_users']), 
    450   $start, 
    451   $conf['users_page'] 
    452   ); 
    453  
    454 $template->assign('navbar', $navbar);*/ 
    455  
    456 // +-----------------------------------------------------------------------+ 
    457 // |                               user list                               | 
    458 // +-----------------------------------------------------------------------+ 
    459  
    460     $visible_user_list = array(); 
    461     foreach ($page['filtered_users'] as $num => $local_user) 
    462     { 
    463 // simulate LIMIT $start, $conf['users_page'] 
    464                         /*if ($num < $start) 
    465       { 
    466         continue; 
    467       } 
    468       if ($num >= $start + $conf['users_page']) 
    469       { 
    470         break; 
    471       }*/ 
    472  
    473       $visible_user_list[] = $local_user; 
    474                 } 
    475  
    476                 foreach ($visible_user_list as $local_user) 
    477     { 
    478       // dates formating and compare 
    479       $today = date("d-m-Y"); // Get today's date 
    480       list($day, $month, $year) = explode('-', $today); // explode date of today                                                  
    481       $daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp 
    482                  
    483       list($regdate, $regtime) = explode(' ', $local_user['lastvisit']); // Explode date and time from registration date 
    484       list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date 
    485       $regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp 
    486                          
    487       $deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps        
    488       $deltadays = floor($deltasecs / 86400);// Convert result from seconds to days 
    489        
    490       if (isset($conf_UAM[16]) and $conf_UAM[16]=='true' and $conf_UAM[17] <> '') 
    491       { 
    492         if ($deltadays <= ($conf_UAM[17]/2)) 
    493         { 
    494           $display = 'green'; 
    495         } 
    496          
    497         if (($deltadays > ($conf_UAM[17]/2)) and ($deltadays < $conf_UAM[17])) 
    498         { 
    499           $display = 'orange'; 
    500         } 
    501          
    502         if ($deltadays >= $conf_UAM[17]) 
    503         { 
    504           $display = 'red'; 
    505         } 
    506       } 
    507       else $display = ''; 
    508  
    509                 $template->append( 
    510                 'users', 
    511         array( 
    512                 'ID'          => $local_user['id'], 
    513                 'USERNAME'    => stripslashes($local_user['username']), 
    514                                         'EMAIL'       => get_email_address_as_display_text($local_user['email']), 
    515           'LASTVISIT'   => $local_user['lastvisit'], 
    516           'DAYS'        => $deltadays, 
    517           'DISPLAY'     => $display, 
    518                                 ) 
    519                         ); 
    520                 } 
    521     /* Plugin version inserted */ 
    522     $template->assign( 
    523       array( 
    524         'UAM_VERSION'  => $version, 
    525         'UAM_PATH'     => UAM_PATH, 
    526       ) 
    527     );     
    528 // +-----------------------------------------------------------------------+ 
    529 // |                             errors display                            | 
    530 // +-----------------------------------------------------------------------+ 
    531                 if ( isset ($errors) and count($errors) != 0) 
    532                 { 
    533                 $template->assign('errors',array()); 
    534                         foreach ($errors as $error) 
    535                 { 
    536                                 array_push($page['errors'], $error); 
    537                 } 
    538                 }   
    539  
    540 // +-----------------------------------------------------------------------+ 
    541 // |                           templates display                           | 
    542 // +-----------------------------------------------------------------------+ 
    543                 $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/userlist.tpl'); 
    544     $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');          
    545   } 
    546   else 
    547   { 
    548                 array_push($page['errors'], l10n('Err_Userlist_Settings')); 
    549   } 
    550   break; 
    551  
    552  
    553 // ************************************************************************* 
    554 // +-----------------------------------------------------------------------+ 
    555 // |                           Users manager page                          | 
    556 // +-----------------------------------------------------------------------+ 
    557 // ************************************************************************* 
    558   case 'usermanager': 
    559  
    560   $conf_UAM = unserialize($conf['UserAdvManager']); 
    561  
    562   $conf_UAM_ConfirmMail = unserialize($conf['UserAdvManager_ConfirmMail']); 
    563          
    564   if (isset($conf_UAM[1]) and $conf_UAM[1]=='true' and ((isset($conf_UAM[2]) and $conf_UAM[2] <> '-1') or (isset($conf_UAM[8]) and $conf_UAM[8] <> '-1')) and isset($conf_UAM_ConfirmMail[0]) and $conf_UAM_ConfirmMail[0]=='true') 
    565   { 
    566 // +-----------------------------------------------------------------------+ 
    567 // |                           initialization                              | 
    568 // +-----------------------------------------------------------------------+ 
    569  
    570                 if (!defined('PHPWG_ROOT_PATH')) 
    571     { 
    572         die('Hacking attempt!'); 
    573     } 
    574            
    575     include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    576  
    577 // +-----------------------------------------------------------------------+ 
    578 // | Check Access and exit when user status is not ok                      | 
    579 // +-----------------------------------------------------------------------+ 
    580                 check_status(ACCESS_ADMINISTRATOR); 
    581  
    582 // +-----------------------------------------------------------------------+ 
    583 // |                               user list                               | 
    584 // +-----------------------------------------------------------------------+ 
    585  
    586                 $page['filtered_users'] = get_unvalid_user_list(); 
    587  
    588 // +-----------------------------------------------------------------------+ 
    589 // |                            selected users                             | 
    590 // +-----------------------------------------------------------------------+ 
    591                 if (isset($_POST['Del_Selected'])) 
    592                 { 
    593                 $collection = array(); 
    594  
    595                         switch ($_POST['target']) 
    596         { 
    597                 case 'all' : 
    598         { 
    599                 foreach($page['filtered_users'] as $local_user) 
    600                 { 
    601                         array_push($collection, $local_user['id']); 
    602                 } 
    603                                         break; 
    604                                 } 
    605         case 'selection' : 
    606         { 
    607                 if (isset($_POST['selection'])) 
    608                 { 
    609                         $collection = $_POST['selection']; 
    610                 } 
    611                 break; 
    612         } 
    613                         } 
    614  
    615                         if (count($collection) == 0) 
    616         { 
    617                 array_push($page['errors'], l10n('Select at least one user')); 
    618                 } 
    619                 } 
    620  
    621 // +-----------------------------------------------------------------------+ 
    622 // |                             delete users                              | 
    623 // +-----------------------------------------------------------------------+ 
    624                 if (isset($_POST['Del_Selected']) and count($collection) > 0) 
    625         { 
    626                 if (in_array($conf['guest_id'], $collection)) 
    627                 { 
    628                 array_push($page['errors'], l10n('Guest cannot be deleted')); 
    629         } 
    630         if (($conf['guest_id'] != $conf['default_user_id']) and 
    631                 in_array($conf['default_user_id'], $collection)) 
    632         { 
    633                 array_push($page['errors'], l10n('Default user cannot be deleted')); 
    634         } 
    635         if (in_array($conf['webmaster_id'], $collection)) 
    636         { 
    637                 array_push($page['errors'], l10n('Webmaster cannot be deleted')); 
    638         } 
    639         if (in_array($user['id'], $collection)) 
    640         { 
    641                 array_push($page['errors'], l10n('You cannot delete your account')); 
    642         } 
    643  
    644                         if (count($page['errors']) == 0) 
    645         { 
    646                 foreach ($collection as $user_id) 
    647         { 
    648                 delete_user($user_id); 
    649         } 
    650                 array_push( 
    651                 $page['infos'], 
    652                 l10n_dec( 
    653                 '%d user deleted', '%d users deleted', 
    654                 count($collection) 
    655                 ) 
    656         ); 
    657  
    658         foreach ($page['filtered_users'] as $filter_key => $filter_user) 
    659         { 
    660                 if (in_array($filter_user['id'], $collection)) 
    661                 { 
    662                         unset($page['filtered_users'][$filter_key]); 
    663                 } 
    664                 } 
    665                         } 
    666                 } 
    667  
    668 // +-----------------------------------------------------------------------+ 
    669 // |                 Resend new validation key to users                    | 
    670 // +-----------------------------------------------------------------------+ 
    671 // +-----------------------------------------------------------------------+ 
    672 // |                            selected users                             | 
    673 // +-----------------------------------------------------------------------+ 
    674                 if (isset($_POST['Mail_With_Key'])) 
    675                 { 
    676                 $collection = array(); 
    677  
    678                         switch ($_POST['target']) 
    679         { 
    680                 case 'all' : 
    681         { 
    682                 foreach($page['filtered_users'] as $local_user) 
    683                 { 
    684                         array_push($collection, $local_user['id']); 
    685                 } 
    686                 break; 
    687                                 } 
    688         case 'selection' : 
    689         { 
    690                 if (isset($_POST['selection'])) 
    691                 { 
    692                         $collection = $_POST['selection']; 
    693                 } 
    694                 break; 
    695         } 
    696                         } 
    697  
    698         if (count($collection) == 0) 
    699         { 
    700                 array_push($page['errors'], l10n('Select at least one user')); 
    701         } 
    702                 } 
    703 // +-----------------------------------------------------------------------+ 
    704 // |                 Resend new validation key to users                    | 
    705 // +-----------------------------------------------------------------------+ 
    706                 if (isset($_POST['Mail_With_Key']) and count($collection) > 0) 
    707                 { 
    708                         if (in_array($conf['guest_id'], $collection)) 
    709                 { 
    710                 array_push($page['errors'], l10n('No_validation_for_Guest')); 
    711         } 
    712         if (($conf['guest_id'] != $conf['default_user_id']) and 
    713                 in_array($conf['default_user_id'], $collection)) 
    714         { 
    715                 array_push($page['errors'], l10n('No_validation_for_default_user')); 
    716         } 
    717                 if (in_array($conf['webmaster_id'], $collection)) 
    718         { 
    719                 array_push($page['errors'], l10n('No_validation_for_Webmaster')); 
    720         } 
    721         if (in_array($user['id'], $collection)) 
    722         { 
    723                 array_push($page['errors'], l10n('No_validation_for_your_account')); 
    724         } 
    725  
    726         if (count($page['errors']) == 0) 
    727         { 
    728                 foreach ($collection as $user_id) 
    729         {        
    730                 $typemail = 1; 
    731                                   $query = " 
    732 SELECT id, username, mail_address 
    733   FROM ".USERS_TABLE." 
    734 WHERE id = '".$user_id."' 
    735 ;"; 
    736                                         $data = pwg_db_fetch_assoc(pwg_query($query)); 
    737                                  
    738                 ResendMail2User($typemail,$user_id,stripslashes($data['username']),$data['mail_address'],true); 
    739         } 
    740         array_push( 
    741                 $page['infos'], 
    742                 l10n_dec( 
    743                         '%d_Mail_With_Key', '%d_Mails_With_Key', 
    744                 count($collection) 
    745                 ) 
    746         ); 
    747          
    748                                 $page['filtered_users'] = get_unvalid_user_list(); 
    749                         } 
    750                 } 
    751  
    752 // +-----------------------------------------------------------------------+ 
    753 // |             Send reminder without new key to users                    | 
    754 // +-----------------------------------------------------------------------+ 
    755 // +-----------------------------------------------------------------------+ 
    756 // |                            selected users                             | 
    757 // +-----------------------------------------------------------------------+ 
    758                 if (isset($_POST['Mail_Without_Key'])) 
    759                 { 
    760                 $collection = array(); 
    761  
    762                         switch ($_POST['target']) 
    763         { 
    764                 case 'all' : 
    765         { 
    766                 foreach($page['filtered_users'] as $local_user) 
    767                 { 
    768                         array_push($collection, $local_user['id']); 
    769                 } 
    770                 break; 
    771                                 } 
    772         case 'selection' : 
    773         { 
    774                 if (isset($_POST['selection'])) 
    775                 { 
    776                         $collection = $_POST['selection']; 
    777                 } 
    778                 break; 
    779         } 
    780                         } 
    781  
    782         if (count($collection) == 0) 
    783         { 
    784                 array_push($page['errors'], l10n('Select at least one user')); 
    785         } 
    786                 } 
    787 // +-----------------------------------------------------------------------+ 
    788 // |             Send reminder without new key to users                    | 
    789 // +-----------------------------------------------------------------------+ 
    790                 if (isset($_POST['Mail_Without_Key']) and count($collection) > 0) 
    791                 { 
    792                         if (in_array($conf['guest_id'], $collection)) 
    793                 { 
    794                 array_push($page['errors'], l10n('No_validation_for_Guest')); 
    795         } 
    796         if (($conf['guest_id'] != $conf['default_user_id']) and 
    797                 in_array($conf['default_user_id'], $collection)) 
    798         { 
    799                 array_push($page['errors'], l10n('No_validation_for_default_user')); 
    800         } 
    801                 if (in_array($conf['webmaster_id'], $collection)) 
    802         { 
    803                 array_push($page['errors'], l10n('No_validation_for_Webmaster')); 
    804         } 
    805         if (in_array($user['id'], $collection)) 
    806         { 
    807                 array_push($page['errors'], l10n('No_validation_for_your_account')); 
    808         } 
    809  
    810         if (count($page['errors']) == 0) 
    811         { 
    812                 foreach ($collection as $user_id) 
    813         { 
    814                 $typemail = 2; 
    815                                   $query = " 
    816 SELECT id, username, mail_address 
    817   FROM ".USERS_TABLE." 
    818 WHERE id = '".$user_id."' 
    819 ;"; 
    820                                          
    821                                         $data = pwg_db_fetch_assoc(pwg_query($query)); 
    822                                  
    823                 ResendMail2User($typemail,$user_id,stripslashes($data['username']),$data['mail_address'],false);                                 
    824         } 
    825         array_push( 
    826                 $page['infos'], 
    827                 l10n_dec( 
    828                         '%d_Reminder_Sent', '%d_Reminders_Sent', 
    829                 count($collection) 
    830                 ) 
    831         ); 
    832          
    833                                 $page['filtered_users'] = get_unvalid_user_list(); 
    834                         } 
    835                 } 
    836  
    837 // +-----------------------------------------------------------------------+ 
    838 // |                                                                            Force validation                                                         | 
    839 // +-----------------------------------------------------------------------+ 
    840 // +-----------------------------------------------------------------------+ 
    841 // |                            selected users                             | 
    842 // +-----------------------------------------------------------------------+ 
    843                 if (isset($_POST['Force_Validation'])) 
    844                 { 
    845                 $collection = array(); 
    846  
    847                         switch ($_POST['target']) 
    848         { 
    849                 case 'all' : 
    850         { 
    851                 foreach($page['filtered_users'] as $local_user) 
    852                 { 
    853                         array_push($collection, $local_user['id']); 
    854                 } 
    855                 break; 
    856                                 } 
    857         case 'selection' : 
    858         { 
    859                 if (isset($_POST['selection'])) 
    860                 { 
    861                         $collection = $_POST['selection']; 
    862                 } 
    863                 break; 
    864         } 
    865                         } 
    866  
    867         if (count($collection) == 0) 
    868         { 
    869                 array_push($page['errors'], l10n('Select at least one user')); 
    870         } 
    871                 } 
    872 // +-----------------------------------------------------------------------+ 
    873 // |                                                                            Force validation                                                         | 
    874 // +-----------------------------------------------------------------------+ 
    875                 if (isset($_POST['Force_Validation']) and count($collection) > 0) 
    876                 { 
    877                         if (in_array($conf['guest_id'], $collection)) 
    878                 { 
    879                 array_push($page['errors'], l10n('No_validation_for_Guest')); 
    880         } 
    881         if (($conf['guest_id'] != $conf['default_user_id']) and 
    882                 in_array($conf['default_user_id'], $collection)) 
    883         { 
    884                 array_push($page['errors'], l10n('No_validation_for_default_user')); 
    885         } 
    886                 if (in_array($conf['webmaster_id'], $collection)) 
    887         { 
    888                 array_push($page['errors'], l10n('No_validation_for_Webmaster')); 
    889         } 
    890         if (in_array($user['id'], $collection)) 
    891         { 
    892                 array_push($page['errors'], l10n('No_validation_for_your_account')); 
    893         } 
    894  
    895         if (count($page['errors']) == 0) 
    896         { 
    897                 foreach ($collection as $user_id) 
    898         { 
    899                                   $query = " 
    900 SELECT id, username, mail_address 
    901   FROM ".USERS_TABLE." 
    902 WHERE id = '".$user_id."' 
    903 ;"; 
    904                                          
    905                                         $data = pwg_db_fetch_assoc(pwg_query($query)); 
    906                                  
    907                 ForceValidation($data['id']);                            
    908         } 
    909         array_push( 
    910                 $page['infos'], 
    911                 l10n_dec( 
    912                         '%d_Validated_User', '%d_Validated_Users', 
    913                 count($collection) 
    914                 ) 
    915         ); 
    916  
    917                                 $page['filtered_users'] = get_unvalid_user_list(); 
    918                         } 
    919                 } 
    920                  
    921  
    922 // +-----------------------------------------------------------------------+ 
    923 // |                              groups list                              | 
    924 // +-----------------------------------------------------------------------+ 
    925  
    926                 $groups[-1] = '------------'; 
    927  
    928     $query = ' 
    929 SELECT id, name 
    930   FROM '.GROUPS_TABLE.' 
    931 ORDER BY name ASC 
    932 ;'; 
    933  
    934                 $result = pwg_query($query); 
    935            
    936     while ($row = pwg_db_fetch_assoc($result)) 
    937     { 
    938       $groups[$row['id']] = $row['name']; 
    939     } 
    940  
    941 // +-----------------------------------------------------------------------+ 
    942 // |                           Template Init                               | 
    943 // +-----------------------------------------------------------------------+ 
    944                 /*$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list'; 
    945  
    946     if (isset($_GET['start']) and is_numeric($_GET['start'])) 
    947     { 
    948       $start = $_GET['start']; 
    949     } 
    950     else 
    951     { 
    952       $start = 0; 
    953     }*/ 
    954  
    955 /* Hide radio-button if not allow to assign adviser */ 
    956                 if ($conf['allow_adviser']) 
    957         { 
    958         $template->assign('adviser', true); 
    959         } 
    960  
    961 // +-----------------------------------------------------------------------+ 
    962 // |                            navigation bar                             | 
    963 // +-----------------------------------------------------------------------+ 
    964  
    965 /*$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start')); 
    966  
    967 $navbar = create_navigation_bar( 
    968   $url, 
    969   count($page['filtered_users']), 
    970   $start, 
    971   $conf['users_page'] 
    972   ); 
    973  
    974 $template->assign('navbar', $navbar);*/ 
    975  
    976 // +-----------------------------------------------------------------------+ 
    977 // |                               user list                               | 
    978 // +-----------------------------------------------------------------------+ 
    979  
    980                 $profile_url = get_root_url().'admin.php?page=profile&amp;user_id='; 
    981                 $perm_url = get_root_url().'admin.php?page=user_perm&amp;user_id='; 
    982  
    983     $visible_user_list = array(); 
    984     foreach ($page['filtered_users'] as $num => $local_user) 
    985     { 
    986 /* simulate LIMIT $start, $conf['users_page'] */ 
    987                         /*if ($num < $start) 
    988       { 
    989         continue; 
    990       } 
    991       if ($num >= $start + $conf['users_page']) 
    992       { 
    993         break; 
    994       }*/ 
    995  
    996       $visible_user_list[] = $local_user; 
    997                 } 
    998  
    999                 foreach ($visible_user_list as $local_user) 
    1000     { 
    1001       $groups_string = preg_replace( 
    1002         '/(\d+)/e', 
    1003         "\$groups['$1']", 
    1004         implode( 
    1005                 ', ', 
    1006             $local_user['groups'] 
    1007          ) 
    1008                         ); 
    1009  
    1010       $query = ' 
    1011 SELECT user_id, reminder 
    1012 FROM '.USER_CONFIRM_MAIL_TABLE.' 
    1013 WHERE user_id = '.$local_user['id'].' 
    1014 ;'; 
    1015       $result = pwg_query($query); 
    1016        
    1017       $row = pwg_db_fetch_assoc($result); 
    1018      
    1019       if (isset($row['reminder']) and $row['reminder'] == 'true') 
    1020       { 
    1021         $reminder = l10n('Reminder_Sent_OK'); 
    1022       } 
    1023       else if ((isset($row['reminder']) and $row['reminder'] == 'false') or !isset($row['reminder'])) 
    1024       { 
    1025         $reminder = l10n('Reminder_Sent_NOK'); 
    1026       } 
    1027  
    1028  
    1029                 if (isset($_POST['pref_submit']) 
    1030                 and isset($_POST['selection']) 
    1031         and in_array($local_user['id'], $_POST['selection'])) 
    1032                 { 
    1033                                 $checked = 'checked="checked"'; 
    1034                 } 
    1035                         else 
    1036         { 
    1037                 $checked = ''; 
    1038         } 
    1039  
    1040         $properties = array(); 
    1041         if ( $local_user['level'] != 0 ) 
    1042                         { 
    1043                 $properties[] = l10n( sprintf('Level %d', $local_user['level']) ); 
    1044                         } 
    1045         $properties[] = 
    1046                 (isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true')) 
    1047                 ? l10n('is_high_enabled') : l10n('is_high_disabled'); 
    1048  
    1049                         $expiration = expiration($local_user['id']); 
    1050  
    1051                 $template->append( 
    1052                 'users', 
    1053         array( 
    1054                 'ID'               => $local_user['id'], 
    1055                 'CHECKED'          => $checked, 
    1056                 'U_PROFILE'        => $profile_url.$local_user['id'], 
    1057                 'U_PERM'           => $perm_url.$local_user['id'], 
    1058                 'USERNAME'         => stripslashes($local_user['username']) 
    1059                                   .($local_user['id'] == $conf['guest_id'] 
    1060                                   ? '<BR>['.l10n('is_the_guest').']' : '') 
    1061                                   .($local_user['id'] == $conf['default_user_id'] 
    1062                                   ? '<BR>['.l10n('is_the_default').']' : ''), 
    1063                                   'STATUS' => l10n('user_status_' 
    1064                                   .$local_user['status']).(($local_user['adviser'] == 'true') 
    1065                                   ? '<BR>['.l10n('adviser').']' : ''), 
    1066                                         'EMAIL'            => get_email_address_as_display_text($local_user['email']), 
    1067                 'GROUPS'           => $groups_string, 
    1068                 'REGISTRATION'     => $local_user['registration_date'], 
    1069           'REMINDER'         => $reminder,     
    1070                 'EXPIRATION'       => $expiration, 
    1071                                 ) 
    1072                         ); 
    1073                 } 
    1074     /* Plugin version inserted */ 
    1075     $template->assign( 
    1076       array( 
    1077         'UAM_VERSION'  => $version, 
    1078         'UAM_PATH'     => UAM_PATH, 
    1079       ) 
    1080     ); 
    1081  
    1082 // +-----------------------------------------------------------------------+ 
    1083 // |                             errors display                            | 
    1084 // +-----------------------------------------------------------------------+ 
    1085                 if ( isset ($errors) and count($errors) != 0) 
    1086                 { 
    1087                 $template->assign('errors',array()); 
    1088                         foreach ($errors as $error) 
    1089                 { 
    1090                                 array_push($page['errors'], $error); 
    1091                 } 
    1092                 }   
    1093  
    1094 // +-----------------------------------------------------------------------+ 
    1095 // |                           templates display                           | 
    1096 // +-----------------------------------------------------------------------+ 
    1097                 $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/usermanager.tpl'); 
    1098     $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');          
    1099         } 
    1100   else 
    1101   { 
    1102                 array_push($page['errors'], l10n('Err_UserManager_Settings')); 
    1103   } 
    1104   break; 
    1105  
    1106  
    1107 // ************************************************************************* 
    1108 // +-----------------------------------------------------------------------+ 
    1109 // |                           Ghost Tracker page                          | 
    1110 // +-----------------------------------------------------------------------+ 
    1111 // ************************************************************************* 
    1112   case 'ghosttracker': 
    1113  
    1114   $conf_UAM = unserialize($conf['UserAdvManager']); 
    1115          
    1116   if (isset($conf_UAM[16]) and $conf_UAM[16]=='true') 
    1117   { 
    1118 // +-----------------------------------------------------------------------+ 
    1119 // |                           initialization                              | 
    1120 // +-----------------------------------------------------------------------+ 
    1121  
    1122                 if (!defined('PHPWG_ROOT_PATH')) 
    1123     { 
    1124         die('Hacking attempt!'); 
    1125     } 
    1126            
    1127     include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    1128  
    1129 // +-----------------------------------------------------------------------+ 
    1130 // | Check Access and exit when user status is not ok                      | 
    1131 // +-----------------------------------------------------------------------+ 
    1132                 check_status(ACCESS_ADMINISTRATOR); 
    1133  
    1134 // +-----------------------------------------------------------------------+ 
    1135 // |                               user list                               | 
    1136 // +-----------------------------------------------------------------------+ 
    1137  
    1138                 $page['filtered_users'] = get_ghost_user_list(); 
    1139  
    1140 // +-----------------------------------------------------------------------+ 
    1141 // |                            selected users                             | 
    1142 // +-----------------------------------------------------------------------+ 
    1143                 if (isset($_POST['Del_Selected'])) 
    1144                 { 
    1145                 $collection = array(); 
    1146  
    1147                         switch ($_POST['target']) 
    1148         { 
    1149                 case 'all' : 
    1150         { 
    1151                 foreach($page['filtered_users'] as $local_user) 
    1152                 { 
    1153                         array_push($collection, $local_user['id']); 
    1154                 } 
    1155                                         break; 
    1156                                 } 
    1157         case 'selection' : 
    1158         { 
    1159                 if (isset($_POST['selection'])) 
    1160                 { 
    1161                         $collection = $_POST['selection']; 
    1162                 } 
    1163                 break; 
    1164         } 
    1165                         } 
    1166  
    1167                         if (count($collection) == 0) 
    1168         { 
    1169                 array_push($page['errors'], l10n('Select at least one user')); 
    1170                 } 
    1171                 } 
    1172  
    1173 // +-----------------------------------------------------------------------+ 
    1174 // |                             delete users                              | 
    1175 // +-----------------------------------------------------------------------+ 
    1176                 if (isset($_POST['Del_Selected']) and count($collection) > 0) 
    1177         { 
    1178                 if (in_array($conf['guest_id'], $collection)) 
    1179                 { 
    1180                 array_push($page['errors'], l10n('Guest cannot be deleted')); 
    1181         } 
    1182         if (($conf['guest_id'] != $conf['default_user_id']) and 
    1183                 in_array($conf['default_user_id'], $collection)) 
    1184         { 
    1185                 array_push($page['errors'], l10n('Default user cannot be deleted')); 
    1186         } 
    1187         if (in_array($conf['webmaster_id'], $collection)) 
    1188         { 
    1189                 array_push($page['errors'], l10n('Webmaster cannot be deleted')); 
    1190         } 
    1191         if (in_array($user['id'], $collection)) 
    1192         { 
    1193                 array_push($page['errors'], l10n('You cannot delete your account')); 
    1194         } 
    1195  
    1196                         if (count($page['errors']) == 0) 
    1197         { 
    1198                 foreach ($collection as $user_id) 
    1199         { 
    1200                 delete_user($user_id); 
    1201         } 
    1202                 array_push( 
    1203                 $page['infos'], 
    1204                 l10n_dec( 
    1205                 '%d user deleted', '%d users deleted', 
    1206                 count($collection) 
    1207                 ) 
    1208         ); 
    1209  
    1210         foreach ($page['filtered_users'] as $filter_key => $filter_user) 
    1211         { 
    1212                 if (in_array($filter_user['id'], $collection)) 
    1213                 { 
    1214                         unset($page['filtered_users'][$filter_key]); 
    1215                 } 
    1216                 } 
    1217                         } 
    1218                 } 
    1219  
    1220 // +-----------------------------------------------------------------------+ 
    1221 // |                          Send ghost reminder                          | 
    1222 // +-----------------------------------------------------------------------+ 
    1223 // +-----------------------------------------------------------------------+ 
    1224 // |                            selected users                             | 
    1225 // +-----------------------------------------------------------------------+ 
    1226                 if (isset($_POST['Reminder_Email'])) 
    1227                 { 
    1228                 $collection = array(); 
    1229  
    1230                         switch ($_POST['target']) 
    1231         { 
    1232                 case 'all' : 
    1233         { 
    1234                 foreach($page['filtered_users'] as $local_user) 
    1235                 { 
    1236                         array_push($collection, $local_user['id']); 
    1237                 } 
    1238                 break; 
    1239                                 } 
    1240         case 'selection' : 
    1241         { 
    1242                 if (isset($_POST['selection'])) 
    1243                 { 
    1244                         $collection = $_POST['selection']; 
    1245                 } 
    1246                 break; 
    1247         } 
    1248                         } 
    1249  
    1250         if (count($collection) == 0) 
    1251         { 
    1252                 array_push($page['errors'], l10n('Select at least one user')); 
    1253         } 
    1254                 } 
    1255 // +-----------------------------------------------------------------------+ 
    1256 // |                         Send ghost reminder                           | 
    1257 // +-----------------------------------------------------------------------+ 
    1258                 if (isset($_POST['Reminder_Email']) and count($collection) > 0) 
    1259                 { 
    1260                         if (in_array($conf['guest_id'], $collection)) 
    1261                 { 
    1262                 array_push($page['errors'], l10n('No_reminder_for_Guest')); 
    1263         } 
    1264         if (($conf['guest_id'] != $conf['default_user_id']) and 
    1265                 in_array($conf['default_user_id'], $collection)) 
    1266         { 
    1267                 array_push($page['errors'], l10n('No_reminder_for_default_user')); 
    1268         } 
    1269                 if (in_array($conf['webmaster_id'], $collection)) 
    1270         { 
    1271                 array_push($page['errors'], l10n('No_reminder_for_Webmaster')); 
    1272         } 
    1273         if (in_array($user['id'], $collection)) 
    1274         { 
    1275                 array_push($page['errors'], l10n('No_reminder_for_your_account')); 
    1276         } 
    1277  
    1278         if (count($page['errors']) == 0) 
    1279         { 
    1280                 foreach ($collection as $user_id) 
    1281         { 
    1282                                   $query = " 
    1283 SELECT id, username, mail_address 
    1284   FROM ".USERS_TABLE." 
    1285 WHERE id = '".$user_id."' 
    1286 ;"; 
    1287                                          
    1288                                         $data = pwg_db_fetch_assoc(pwg_query($query)); 
    1289                                  
    1290                 ghostreminder($user_id,stripslashes($data['username']),$data['mail_address']);                           
    1291         } 
    1292         array_push( 
    1293                 $page['infos'], 
    1294                 l10n_dec( 
    1295                         '%d_Reminder_Sent', '%d_Reminders_Sent', 
    1296                 count($collection) 
    1297                 ) 
    1298         ); 
    1299          
    1300                                 $page['filtered_users'] = get_ghost_user_list(); 
    1301                         } 
    1302                 } 
    1303      
    1304     if (isset($_POST['GhostTracker_Init'])) 
    1305     { 
    1306       /* Reset is only allowed for admins ! */ 
    1307       if (is_admin() and !is_adviser()) 
    1308       { 
    1309         $query1 = ' 
    1310 SELECT * 
    1311   FROM '.USER_LASTVISIT_TABLE.';'; 
    1312  
    1313         $count = pwg_db_num_rows(pwg_query($query1)); 
    1314  
    1315         if ($count <> 0) 
    1316         { 
    1317           $query = ' 
    1318 SELECT DISTINCT u.id, 
    1319                 ui.status AS status 
    1320 FROM '.USERS_TABLE.' AS u 
    1321   INNER JOIN '.USER_INFOS_TABLE.' AS ui 
    1322     ON u.id = ui.user_id 
    1323 WHERE u.id NOT IN (SELECT user_id FROM '.USER_LASTVISIT_TABLE.') 
    1324   AND status != "webmaster" 
    1325   AND status != "guest" 
    1326   AND status != "admin" 
    1327 ORDER BY u.id ASC 
    1328 ;'; 
    1329  
    1330           $result = pwg_query($query); 
    1331            
    1332           while ($row = pwg_db_fetch_assoc($result)) 
    1333           { 
    1334             list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();')); 
    1335              
    1336             $query = " 
    1337 INSERT INTO ".USER_LASTVISIT_TABLE." (user_id, lastvisit, reminder) 
    1338 VALUES ('".$row['id']."','".$dbnow."','false') 
    1339 ;"; 
    1340             pwg_query($query); 
    1341           } 
    1342         } 
    1343         else if ($count == 0) 
    1344         { 
    1345           $query = ' 
    1346 SELECT DISTINCT u.id, 
    1347                 ui.status AS status 
    1348 FROM '.USERS_TABLE.' AS u 
    1349   INNER JOIN '.USER_INFOS_TABLE.' AS ui 
    1350     ON u.id = ui.user_id 
    1351 WHERE status != "webmaster" 
    1352   AND status != "guest" 
    1353   AND status != "admin" 
    1354 ORDER BY u.id ASC 
    1355 ;'; 
    1356  
    1357           $result = pwg_query($query); 
    1358            
    1359           while($row = pwg_db_fetch_assoc($result)) 
    1360           { 
    1361             list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();')); 
    1362              
    1363             $query = " 
    1364 INSERT INTO ".USER_LASTVISIT_TABLE." (user_id, lastvisit, reminder) 
    1365 VALUES ('".$row['id']."','".$dbnow."','false') 
    1366 ;"; 
    1367             pwg_query($query); 
    1368           } 
    1369         } 
    1370          
    1371         array_push($page['infos'], l10n('GhostTracker_Init_OK')); 
    1372       } 
    1373     } 
    1374  
    1375 // +-----------------------------------------------------------------------+ 
    1376 // |                           Template Init                               | 
    1377 // +-----------------------------------------------------------------------+ 
    1378                 /*$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list'; 
    1379  
    1380     if (isset($_GET['start']) and is_numeric($_GET['start'])) 
    1381     { 
    1382       $start = $_GET['start']; 
    1383     } 
    1384     else 
    1385     { 
    1386       $start = 0; 
    1387     }*/ 
    1388  
    1389 /* Hide radio-button if not allow to assign adviser */ 
    1390                 if ($conf['allow_adviser']) 
    1391     { 
    1392       $template->assign('adviser', true); 
    1393         } 
    1394  
    1395 // +-----------------------------------------------------------------------+ 
    1396 // |                            navigation bar                             | 
    1397 // +-----------------------------------------------------------------------+ 
    1398  
    1399 /*$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start')); 
    1400  
    1401 $navbar = create_navigation_bar( 
    1402   $url, 
    1403   count($page['filtered_users']), 
    1404   $start, 
    1405   $conf['users_page'] 
    1406   ); 
    1407  
    1408 $template->assign('navbar', $navbar);*/ 
    1409  
    1410 // +-----------------------------------------------------------------------+ 
    1411 // |                               user list                               | 
    1412 // +-----------------------------------------------------------------------+ 
    1413  
    1414     $visible_user_list = array(); 
    1415     foreach ($page['filtered_users'] as $num => $local_user) 
    1416     { 
    1417 /* simulate LIMIT $start, $conf['users_page'] */ 
    1418                         /*if ($num < $start) 
    1419       { 
    1420         continue; 
    1421       } 
    1422       if ($num >= $start + $conf['users_page']) 
    1423       { 
    1424         break; 
    1425       }*/ 
    1426  
    1427       $visible_user_list[] = $local_user; 
    1428                 } 
    1429  
    1430 /* Plugin version inserted */ 
    1431       $template->assign( 
    1432         array( 
    1433           'UAM_VERSION'  => $version, 
    1434           'UAM_PATH'     => UAM_PATH, 
    1435         ) 
    1436       ); 
    1437  
    1438                 foreach ($visible_user_list as $local_user) 
    1439     { 
    1440       $reminder = ''; 
    1441      
    1442       if (isset($local_user['reminder']) and $local_user['reminder'] == 'true') 
    1443       { 
    1444         $reminder = l10n('Reminder_Sent_OK'); 
    1445       } 
    1446       else if (isset($local_user['reminder']) and $local_user['reminder'] == 'false') 
    1447       { 
    1448         $reminder = l10n('Reminder_Sent_NOK'); 
    1449       } 
    1450      
    1451       if (isset($_POST['pref_submit']) and isset($_POST['selection']) and in_array($local_user['id'], $_POST['selection'])) 
    1452                 { 
    1453                                 $checked = 'checked="checked"'; 
    1454                 } 
    1455                         else 
    1456         { 
    1457                 $checked = ''; 
    1458         } 
    1459  
    1460       $template->append( 
    1461           'users', 
    1462         array( 
    1463                 'ID'          => $local_user['id'], 
    1464                 'CHECKED'     => $checked, 
    1465                 'USERNAME'    => stripslashes($local_user['username']), 
    1466                                         'EMAIL'       => get_email_address_as_display_text($local_user['email']), 
    1467           'LASTVISIT'   => $local_user['lastvisit'], 
    1468           'REMINDER'    => $reminder, 
    1469                                 ) 
    1470                         ); 
    1471                 } 
    1472  
    1473 // +-----------------------------------------------------------------------+ 
    1474 // |                             errors display                            | 
    1475 // +-----------------------------------------------------------------------+ 
    1476                 if ( isset ($errors) and count($errors) != 0) 
    1477                 { 
    1478                 $template->assign('errors',array()); 
    1479                         foreach ($errors as $error) 
    1480                 { 
    1481                                 array_push($page['errors'], $error); 
    1482                 } 
    1483                 }   
    1484  
    1485 // +-----------------------------------------------------------------------+ 
    1486 // |                           templates display                           | 
    1487 // +-----------------------------------------------------------------------+ 
    1488                 $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/ghosttracker.tpl'); 
    1489     $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');          
    1490         } 
    1491   else 
    1492   { 
    1493                 array_push($page['errors'], l10n('Err_GhostTracker_Settings')); 
    1494   } 
    1495  
    1496   break; 
    1497 } 
    149839?> 
  • extensions/NBM_Subscriber/language/fr_FR/plugin.lang.php

    r6436 r6439  
    11<?php 
    2 $lang['NBMS_Title'] = 'Notification par mail'; 
    3 $lang['NBMS'] = 'Inscription à la notification par mail'; 
     2$lang['NBMS_Section'] = 'Notification par mail'; 
     3$lang['NBMS_Text'] = 'Abonnement à la notification par mail'; 
    44$lang['Yes'] = 'Oui'; 
    55$lang['No'] = 'Non'; 
     6$lang['NBMS_Title'] = 'NBM Subscriber'; 
     7$lang['NBMS_Infos'] = 'De quoi s\'agit-il?'; 
     8$lang['NBMS_Infos_Text'] = 'Piwigo offre en standard 2 modes de notification des changements survenus sur la galerie:<br> 
     9- La notification par flux RSS, accessible par tout visiteur (même non inscrit) via le menu "Notifications"<br> 
     10- La notification par mail (NBM), accessible uniquement par un administrateur ou webmestre, qui peut s\'apparenter à une newsletter 
     11<br><br> 
     12L\'idée de ce plugin est de proposer à tout visiteur <b><u>inscrit</u></b> de pouvoir s\'abonner ou se désabonner lui-même de la NBM quand il le souhaite. Pour cela, il suffit d\'activer le plugin (si vous lisez ce message, cela signifie que c\'est déjà fait) pour voir apparaitre une nouvelle option dans la page de personnalisation du profil des visiteurs. 
     13<br><br> 
     14<b>Important</b> : Si un visiteur s\'abonne ou se désabonne de la NBM par ce biais, aucun email de confirmation ne sera envoyé depuis la galerie comme c\'est le cas lorsqu\'un administrateur effectue cette opération via le panneau d\'administration. Ce fonctionnement est voulu pour éviter des comportements néfastes de certains visiteurs qui aboutiraient à une saturation des émissions d\'emails depuis la galerie. 
     15<br><br> 
     16PS: Ce plugin ne prend pas en charge l\'information aux visiteurs sur la disponibilité de cette nouvelle option. C\'est à vous, administrateur / webmestre, de mettre en oeuvre un moyen d\'information annexe. Pour cela, le plugin PWG_Stuffs est tout indiqué ;-)'; 
     17$lang['NBMS_Support'] = 'Le support sur ce plugin se fait exclusivement sur ce fil du forum Piwigo:<br> 
     18<a href="http://fr.piwigo.org/forum/viewtopic.php?id=" onclick="window.open(this.href);return false;">Forum français - http://fr.piwigo.org/forum/viewtopic.php?id=</a>'; 
    619?> 
  • extensions/NBM_Subscriber/main.inc.php

    r6436 r6439  
    11<?php 
    22/* 
    3 Plugin Name: NBM_Subscribe 
    4 Version: 1.0.a 
    5 Description: Permettre aux visiteurs inscrits de s'inscrire eux-même à la notification par mail (NBM) - To allow the registered users to subscribe themself to the notification by mail (NBM) 
    6 Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid= 
     3Plugin Name: NBM Subscriber 
     4Version: 1.0.0 
     5Description: Permet aux visiteurs inscrits de gérer eux-même leur abonnement à la notification par mail (NBM) - Allows registered visitors to manage their own subscription to the notification by mail (NBM) 
     6Plugin URI: 
    77Author: Eric 
    88Author URI: http://www.infernoweb.net 
     
    4040 
    4141 
    42 /* Adding NBMS in profile page */ 
    43 //add_event_handler('loc_begin_profile', 'NBMS_Profile'); 
     42/* Saving from profile with added data */ 
    4443add_event_handler('save_profile_from_post', 'NBMS_Save_Profile'); 
    4544 
    4645function NBMS_Save_Profile() 
    4746{ 
    48   global $conf; 
     47  global $conf, $user; 
    4948   
    5049  if (!empty($_POST['NBM_Subscription']) && in_array( $_POST['NBM_Subscription'], array('true', 'false'))) 
    51 { 
    52    $fo=fopen (NBMS_PATH.'log.txt','a') ; 
    53    fwrite($fo,"======================\n") ; 
    54    fwrite($fo,'le ' . date('D, d M Y H:i:s') . "\r\n"); 
    55    fwrite($fo,$to . "\n" . $_POST['NBM_Subscription'] . "\r\n") ; 
    56    fclose($fo) ; 
    57  
    58   $query = ' 
     50  { 
     51    $query = ' 
    5952UPDATE '.USER_MAIL_NOTIFICATION_TABLE.' 
    6053  SET enabled = \''.$_POST['NBM_Subscription'].'\' 
    6154  WHERE user_id = \''.$user['id'].'\';'; 
    6255 
    63   pwg_query($query);  
    64 } 
    65   /*if (isset($_POST['NBM_Subscription']) and $_POST['NBM_Subscription'] == 'true') 
    66   { 
    67   $query = ' 
    68 UPDATE '.USER_MAIL_NOTIFICATION_TABLE.' 
    69   SET enabled = \'true\' 
    70   WHERE user_id = \''.$user['id'].'\';'; 
    71  
    72   pwg_query($query); 
     56    pwg_query($query);  
    7357  } 
    74   elseif (isset($_POST['NBM_Subscription']) and $_POST['NBM_Subscription'] == 'false') 
    75   { 
    76     $query = ' 
    77 UPDATE '.USER_MAIL_NOTIFICATION_TABLE.' 
    78   SET enabled = \'false\' 
    79   WHERE user_id = \''.$user['id'].'\';'; 
    80  
    81     pwg_query($query); 
    82   }*/ 
    8358} 
    8459 
     60/* Adding NBMS in profile page */ 
    8561add_event_handler('load_profile_in_template', 'NBMS_Load_Profile'); 
    8662 
     
    11288} 
    11389 
     90/* Original template modification */ 
    11491function NBMS_prefilter($content, &$smarty) 
    11592{ 
     
    12299  $addon = '{if $ALLOW_USER_CUSTOMIZATION} 
    123100  <fieldset> 
    124     <legend>{\'NBMS_Title\'|@translate}</legend> 
     101    <legend>{\'NBMS_Section\'|@translate}</legend> 
    125102      <ul> 
    126103        <li> 
    127           <span class="property">{\'NBMS\'|@translate}</span> 
    128           <span class="property">{$TEST}</span> 
     104          <span class="property">{\'NBMS_Text\'|@translate}</span> 
    129105          {html_radios name=\'NBM_Subscription\' options=$radio_options selected=$NBMS} 
    130106        </li> 
     
    137113  return str_replace($search, $replacement, $content);; 
    138114} 
    139  
    140115?> 
Note: See TracChangeset for help on using the changeset viewer.