Changeset 8065


Ignore:
Timestamp:
12/09/10 22:46:14 (9 years ago)
Author:
Eric
Message:

Pre Branch 2.16 modifications in trunk:

  • Automation of user cleanup and downgrade tasks
Location:
extensions/NBC_UserAdvManager/trunk
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • extensions/NBC_UserAdvManager/trunk/admin/UAM_admin.php

    r7955 r8065  
    7474$height = '300px'; 
    7575$areas = array(); 
    76 array_push( $areas,'UAM_ConfirmMail_Custom_Txt1','UAM_ConfirmMail_Custom_Txt2'); 
     76array_push( $areas,'UAM_ConfirmMail_Custom_Txt1','UAM_ConfirmMail_Custom_Txt2','UAM_GTAutoDelText'); 
    7777 
    7878if (function_exists('set_fckeditor_instance')) 
     
    105105  case 'global': 
    106106 
    107         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']) and isset($_POST['UAM_RedirToProfile'])) 
     107        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']) and isset($_POST['UAM_RedirToProfile']) and isset($_POST['UAM_GTAuto'])) 
    108108  { 
    109109 
     
    114114 
    115115    $_POST['UAM_GhostTracker_ReminderText'] = str_replace('\"', '"', str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GhostTracker_ReminderText']))); 
    116  
     116     
     117    $_POST['UAM_GTAutoDelText'] = str_replace('\"', '"', str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GTAutoDelText']))); 
     118 
     119    $_POST['UAM_GTAutoMailText'] = str_replace('\"', '"', str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GTAutoMailText']))); 
    117120 
    118121    //Check if CR-LF exist at begining and end of mail exclusion list - If yes, removes them 
     
    121124      array_push($page['errors'], l10n('mail_exclusionlist_error')); 
    122125      $UAM_Exclusionlist_Error = true; 
     126    } 
     127 
     128    // Consistency check between ConfirmMail and AutoMail - We cannot use GTAutoMail if ConfirmMail is disabled 
     129    $conf_UAM = unserialize($conf['UserAdvManager']); 
     130     
     131    if (((isset($conf_UAM['1']) and ($conf_UAM['1'] == 'false' or $conf_UAM['1'] == 'local')) or ($_POST['UAM_Confirm_Mail'] == 'false' or $_POST['UAM_Confirm_Mail'] == 'local')) and $_POST['UAM_GTAutoMail'] == 'true') 
     132    { 
     133      $newvalue = 'false'; 
     134      $_POST['UAM_GTAutoMail'] = $newvalue; 
     135      array_push($page['errors'], l10n('Error_GTAutoMail_cannot_be_set_without_ConfirmMail')); 
    123136    } 
    124137 
     
    145158      $_POST['UAM_Add_LastVisit_Column'], 
    146159      $_POST['UAM_Admin_ConfMail'], 
    147       $_POST['UAM_RedirToProfile']); 
     160      $_POST['UAM_RedirToProfile'], 
     161      $_POST['UAM_GTAuto'], 
     162      $_POST['UAM_GTAutoDel'], 
     163      $_POST['UAM_GTAutoMail'], 
     164      $_POST['UAM_GTAutoDelText'], 
     165      $_POST['UAM_GTAutoMailText'], 
     166      (isset($_POST['UAM_Downgrade_Group'])?$_POST['UAM_Downgrade_Group']:''), 
     167      (isset($_POST['UAM_Downgrade_Status'])?$_POST['UAM_Downgrade_Status']:'')); 
    148168 
    149169    $conf['UserAdvManager'] = serialize($newconf_UAM); 
     
    203223  $conf_UAM = unserialize($conf['UserAdvManager']); 
    204224 
    205   //Group setting for unvalidated and validated users 
     225  //Group setting for unvalidated, validated users and downgrade group 
    206226  $groups[-1] = '---------'; 
    207227  $No_Valid = -1; 
    208228  $Valid = -1; 
     229  $Downgrade = -1; 
    209230         
    210231  //Check groups list in database  
     
    229250                { 
    230251                $Valid = $row['id']; 
     252                } 
     253    //configuration value for downgrade users 
     254    if (isset($conf_UAM[27]) and $conf_UAM[27] == $row['id']) 
     255                { 
     256                $Downgrade = $row['id']; 
    231257                } 
    232258  } 
     
    248274                        ) 
    249275        ); 
     276  //Template initialization for downgrade group 
     277  $template->assign( 
     278    'Downgrade_Group', 
     279                array( 
     280      'group_options'=> $groups, 
     281      'group_selected' => $Downgrade 
     282                        ) 
     283        ); 
    250284         
    251   //Status setting for unvalidated and validated users 
     285  //Status setting for unvalidated, validated users and downgrade status 
    252286  $status_options[-1] = '------------'; 
    253287  $No_Valid_Status = -1; 
    254288  $Valid_Status = -1; 
     289  $Downgrade_Status = -1; 
    255290         
    256   //Get status values 
     291  //Get unvalidate status values 
    257292  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status) 
    258293  { 
     
    263298          } 
    264299           
    265       //Template initialization for unvalidated users group 
     300      //Template initialization for unvalidated users status 
    266301      $template->assign( 
    267302        'No_Confirm_Status', 
     
    273308  } 
    274309   
    275   //Get status values 
     310  //Get validate status values 
    276311  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status) 
    277312  { 
     
    282317                } 
    283318                 
    284       //Template initialization for unvalidated users group 
     319      //Template initialization for validated users status 
    285320      $template->assign( 
    286321            'Confirm_Status', 
     
    288323                    'Status_options' => $status_options, 
    289324                    'Status_selected' => $Valid_Status 
     325                    ) 
     326            ); 
     327        } 
     328 
     329  //Get downgrade status values 
     330  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status) 
     331  { 
     332          $status_options[$status] = l10n('user_status_'.$status); 
     333          if (isset($conf_UAM[28]) and $conf_UAM[28] == $status) 
     334                { 
     335                  $Downgrade_Status = $status; 
     336                } 
     337                 
     338      //Template initialization for validated users status 
     339      $template->assign( 
     340            'Downgrade_Status', 
     341            array( 
     342                    'Status_options' => $status_options, 
     343                    'Status_selected' => $Downgrade_Status 
    290344                    ) 
    291345            ); 
     
    339393    'UAM_REDIRTOPROFILE_TRUE'        => $conf_UAM[21]=='true' ?  'checked="checked"' : '' , 
    340394    'UAM_REDIRTOPROFILE_FALSE'       => $conf_UAM[21]=='false' ?  'checked="checked"' : '' , 
     395    'UAM_GTAUTO_TRUE'                => $conf_UAM[22]=='true' ?  'checked="checked"' : '' , 
     396    'UAM_GTAUTO_FALSE'               => $conf_UAM[22]=='false' ?  'checked="checked"' : '' , 
     397    'UAM_GTAUTODEL_TRUE'             => $conf_UAM[23]=='true' ?  'checked="checked"' : '' , 
     398    'UAM_GTAUTODEL_FALSE'            => $conf_UAM[23]=='false' ?  'checked="checked"' : '' , 
     399    'UAM_GTAUTOMAIL_TRUE'            => $conf_UAM[24]=='true' ?  'checked="checked"' : '' , 
     400    'UAM_GTAUTOMAIL_FALSE'           => $conf_UAM[24]=='false' ?  'checked="checked"' : '' , 
     401    'UAM_GTAUTODEL_TEXT'             => $conf_UAM[25], 
     402    'UAM_GTAUTOMAILTEXT'             => $conf_UAM[26], 
     403                'UAM_Downgrade_Group'            => $conf_UAM[27], 
     404                'UAM_Downgrade_Status'           => $conf_UAM[28], 
    341405                'UAM_PASSWORD_TEST_SCORE'        => $UAM_Password_Test_Score, 
    342406    'UAM_ERROR_REPORTS4'             => $UAM_Exclusionlist_Error, 
  • extensions/NBC_UserAdvManager/trunk/admin/template/global.tpl

    r7935 r8065  
    202202            <br><br> 
    203203                </li> 
    204  
     204{if $UAM_CONFIRM_MAIL_FALSE} 
     205<div class="uam_hide"> 
     206{/if} 
    205207          <ul> 
    206208                  <li> 
     
    262264 
    263265          <br><hr><br> 
    264          
    265           <div id="uam_notice">{'UAM_Confirm_grpstat_notice'|@translate}</div> 
    266             <br> 
    267             <li> 
    268               <label class="cluetip" title="{'UAM_confirmgrpTitle'|translate}|{'UAM_confirmgrpTitle_d'|translate}"> 
    269                 {'UAM_Confirm_Group'|@translate} 
    270               </label> 
    271             <br><br> 
    272             </li> 
    273  
    274             <ul> 
     266 
     267          <ul> 
     268            <div id="uam_notice">{'UAM_Confirm_grpstat_notice'|@translate}</div> 
     269              <br> 
    275270              <li> 
    276                 <label> 
    277                   {'UAM_No_Confirm_Group'|@translate} 
    278                 </label><br> 
    279                 <div id="uam_leftmargin"> 
    280                   {html_options name="UAM_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected} 
    281                 </div> 
    282                 <br><br> 
     271                <label class="cluetip" title="{'UAM_confirmgrpTitle'|translate}|{'UAM_confirmgrpTitle_d'|translate}"> 
     272                  {'UAM_Confirm_Group'|@translate} 
     273                </label> 
     274              <br><br> 
    283275              </li> 
    284        
     276 
     277              <ul> 
     278                <li> 
     279                  <label> 
     280                    {'UAM_No_Confirm_Group'|@translate} 
     281                  </label><br> 
     282                  <div id="uam_leftmargin"> 
     283                    {html_options name="UAM_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected} 
     284                  </div> 
     285                  <br><br> 
     286                </li> 
     287 
     288                <li> 
     289                  <label> 
     290                    {'UAM_Validated_Group'|@translate} 
     291                  </label><br> 
     292                  <div id="uam_leftmargin"> 
     293                    {html_options name="UAM_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected} 
     294                  </div> 
     295                  <br><br> 
     296                </li> 
     297              </ul> 
     298 
    285299              <li> 
    286                 <label> 
    287                   {'UAM_Validated_Group'|@translate} 
    288                 </label><br> 
    289                 <div id="uam_leftmargin"> 
    290                   {html_options name="UAM_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected} 
    291                 </div> 
    292                 <br><br> 
     300                <label class="cluetip" title="{'UAM_confirmstatTitle'|translate}|{'UAM_confirmstatTitle_d'|translate}"> 
     301                  {'UAM_Confirm_Status'|@translate} 
     302                </label> 
     303              <br><br> 
    293304              </li> 
    294             </ul> 
    295  
    296             <li> 
    297               <label class="cluetip" title="{'UAM_confirmstatTitle'|translate}|{'UAM_confirmstatTitle_d'|translate}"> 
    298                 {'UAM_Confirm_Status'|@translate} 
    299               </label> 
    300             <br><br> 
    301             </li> 
    302  
    303             <ul> 
     305 
     306              <ul> 
     307                <li> 
     308                  <label> 
     309                    {'UAM_No_Confirm_Status'|@translate} 
     310                  </label><br> 
     311                  <div id="uam_leftmargin"> 
     312                    {html_options name="UAM_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected} 
     313                  </div> 
     314                  <br><br> 
     315                </li> 
     316 
     317                <li> 
     318                  <label> 
     319                    {'UAM_Validated_Status'|@translate} 
     320                  </label><br> 
     321                  <div id="uam_leftmargin"> 
     322                    {html_options name="UAM_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected} 
     323                  </div> 
     324                  <br><br> 
     325                </li> 
     326              </ul> 
     327 
     328              <br><hr><br> 
     329 
    304330              <li> 
    305                 <label> 
    306                   {'UAM_No_Confirm_Status'|@translate} 
    307                 </label><br> 
    308                 <div id="uam_leftmargin"> 
    309                   {html_options name="UAM_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected} 
    310                 </div> 
    311                 <br><br> 
     331                <label class="cluetip" title="{'UAM_validationlimitTitle'|translate}|{'UAM_validationlimitTitle_d'|translate}"> 
     332                  {'UAM_ValidationLimit_Info'|@translate} 
     333                </label> 
     334              <br><br> 
     335                <input type="radio" value="false" {$UAM_CONFIRMMAIL_TIMEOUT_FALSE} name="UAM_ConfirmMail_TimeOut"> 
     336                  {'UAM_ConfirmMail_TimeOut_false'|@translate}<br> 
     337                <input type="radio" value="true" {$UAM_CONFIRMMAIL_TIMEOUT_TRUE} name="UAM_ConfirmMail_TimeOut"> 
     338                  {'UAM_ConfirmMail_TimeOut_true'|@translate} 
     339                <input type="text" name="UAM_ConfirmMail_Delay" value="{$UAM_CONFIRMMAIL_DELAY}" size="5" style="text-align: center;"><br><br> 
    312340              </li> 
    313341 
    314342              <li> 
    315                 <label> 
    316                   {'UAM_Validated_Status'|@translate} 
    317                 </label><br> 
    318                 <div id="uam_leftmargin"> 
    319                   {html_options name="UAM_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected} 
    320                 </div> 
    321                 <br><br> 
     343                <label class="cluetip" title="{'UAM_remailTitle'|translate}|{'UAM_remailTitle_d'|translate}"> 
     344                  {'UAM_ConfirmMail_Remail'|@translate} 
     345                </label> 
     346              <br><br> 
     347                <input type="radio" value="false" {$UAM_CONFIRMMAIL_REMAIL_FALSE} name="UAM_ConfirmMail_Remail"> 
     348                  {'UAM_ConfirmMail_Remail_false'|@translate}<br> 
     349                <input type="radio" value="true" {$UAM_CONFIRMMAIL_REMAIL_TRUE} name="UAM_ConfirmMail_Remail"> 
     350                  {'UAM_ConfirmMail_Remail_true'|@translate}<br><br> 
    322351              </li> 
    323             </ul> 
    324  
    325             <br><hr><br> 
    326  
    327             <li> 
    328               <label class="cluetip" title="{'UAM_validationlimitTitle'|translate}|{'UAM_validationlimitTitle_d'|translate}"> 
    329                 {'UAM_ValidationLimit_Info'|@translate} 
    330               </label> 
    331             <br><br> 
    332               <input type="radio" value="false" {$UAM_CONFIRMMAIL_TIMEOUT_FALSE} name="UAM_ConfirmMail_TimeOut"> 
    333                  {'UAM_ConfirmMail_TimeOut_false'|@translate}<br> 
    334               <input type="radio" value="true" {$UAM_CONFIRMMAIL_TIMEOUT_TRUE} name="UAM_ConfirmMail_TimeOut"> 
    335                  {'UAM_ConfirmMail_TimeOut_true'|@translate} 
    336               <input type="text" name="UAM_ConfirmMail_Delay" value="{$UAM_CONFIRMMAIL_DELAY}" size="5" style="text-align: center;"><br><br> 
    337             </li> 
    338  
    339             <li> 
    340               <label class="cluetip" title="{'UAM_remailTitle'|translate}|{'UAM_remailTitle_d'|translate}"> 
    341                 {'UAM_ConfirmMail_Remail'|@translate} 
    342               </label> 
    343             <br><br> 
    344               <input type="radio" value="false" {$UAM_CONFIRMMAIL_REMAIL_FALSE} name="UAM_ConfirmMail_Remail"> 
    345                  {'UAM_ConfirmMail_Remail_false'|@translate}<br> 
    346               <input type="radio" value="true" {$UAM_CONFIRMMAIL_REMAIL_TRUE} name="UAM_ConfirmMail_Remail"> 
    347                  {'UAM_ConfirmMail_Remail_true'|@translate}<br><br> 
    348             </li> 
    349  
    350             <ul> 
    351               <li> 
    352                 <label class="cluetip" title="{'UAM_remailtxt1Title'|translate}|{'UAM_remailtxt1Title_d'|translate}"> 
    353                   {'UAM_ConfirmMail_ReMail_Txt1'|@translate} 
    354                 </label> 
    355                 <br><br> 
    356                   <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt1" id="UAM_ConfirmMail_ReMail_Txt1" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT1}</textarea> 
    357                 <br><br> 
    358               </li> 
     352 
     353              <ul> 
     354                <li> 
     355                  <label class="cluetip" title="{'UAM_remailtxt1Title'|translate}|{'UAM_remailtxt1Title_d'|translate}"> 
     356                    {'UAM_ConfirmMail_ReMail_Txt1'|@translate} 
     357                  </label> 
     358                  <br><br> 
     359                    <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt1" id="UAM_ConfirmMail_ReMail_Txt1" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT1}</textarea> 
     360                  <br><br> 
     361                </li> 
    359362<!-- 
    360               {* if 'FCK_PATH'|@defined *} 
    361                 <div style="text-align:right;"> 
    362                   <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt1'); return false;">FCK Editor On/Off</a> 
    363                 </div> 
    364               {* /if *} 
     363                {* if 'FCK_PATH'|@defined *} 
     364                  <div style="text-align:right;"> 
     365                    <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt1'); return false;">FCK Editor On/Off</a> 
     366                  </div> 
     367                {* /if *} 
    365368--> 
    366369 
    367               <li> 
    368                 <label class="cluetip" title="{'UAM_remailtxt2Title'|translate}|{'UAM_remailtxt2Title_d'|translate}"> 
    369                   {'UAM_ConfirmMail_ReMail_Txt2'|@translate} 
    370                 </label> 
    371                 <br><br> 
    372                   <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt2" id="UAM_ConfirmMail_ReMail_Txt2" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT2}</textarea><br> 
    373               </li> 
     370                <li> 
     371                  <label class="cluetip" title="{'UAM_remailtxt2Title'|translate}|{'UAM_remailtxt2Title_d'|translate}"> 
     372                    {'UAM_ConfirmMail_ReMail_Txt2'|@translate} 
     373                  </label> 
     374                  <br><br> 
     375                    <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt2" id="UAM_ConfirmMail_ReMail_Txt2" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT2}</textarea><br> 
     376                </li> 
    374377<!-- 
    375               {* if 'FCK_PATH'|@defined *} 
    376                 <div style="text-align:right;"> 
    377                   <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt2'); return false;">FCK Editor On/Off</a> 
    378                 </div> 
    379               {* /if *} 
     378                {* if 'FCK_PATH'|@defined *} 
     379                  <div style="text-align:right;"> 
     380                    <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt2'); return false;">FCK Editor On/Off</a> 
     381                  </div> 
     382                {* /if *} 
    380383--> 
    381             </ul> 
     384              </ul> 
     385          </ul> 
     386{if $UAM_CONFIRM_MAIL_FALSE} 
     387</div> 
     388{/if} 
    382389        </ul> 
    383390      </fieldset> 
     
    401408         
    402409          <ul> 
    403             <li><label class="cluetip" title="{'UAM_gttextTitle'|translate}|{'UAM_gttextTitle_d'|translate}">{'UAM_GhostTracker_ReminderText'|@translate}</label><br><br> 
    404               <textarea class="uam_textfields" name="UAM_GhostTracker_ReminderText" id="UAM_GhostTracker_ReminderText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GHOSTRACKER_REMINDERTEXT}</textarea> 
    405             <br><br> 
    406             </li> 
    407  
     410            <li> 
     411              <label class="cluetip" title="{'UAM_gttextTitle'|translate}|{'UAM_gttextTitle_d'|translate}">{'UAM_GhostTracker_ReminderText'|@translate}</label> 
     412            <br><br> 
     413              <textarea class="uam_textfields" name="UAM_GhostTracker_ReminderText" id="UAM_GhostTracker_ReminderText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GHOSTRACKER_REMINDERTEXT}</textarea><br><br> 
     414            </li> 
    408415<!-- 
    409416            {* if 'FCK_PATH'|@defined *} 
     
    413420            {* /if *} 
    414421--> 
     422 
     423            <li><label class="cluetip" title="{'UAM_GTAutoTitle'|translate}|{'UAM_GTAutoTitle_d'|translate}">{'UAM_GTAuto'|@translate}</label> 
     424            <br><br> 
     425              <input type="radio" value="false" {$UAM_GTAUTO_FALSE} name="UAM_GTAuto">{'UAM_GTAuto_false'|@translate}<br> 
     426              <input type="radio" value="true" {$UAM_GTAUTO_TRUE} name="UAM_GTAuto">{'UAM_GTAuto_true'|@translate}<br><br> 
     427            </li> 
     428             
     429            {if $UAM_GTAUTO_FALSE} 
     430              <div class="uam_hide"> 
     431            {/if} 
     432                <ul> 
     433                  <li><label class="cluetip" title="{'UAM_GTAutoDelTitle'|translate}|{'UAM_GTAutoDelTitle_d'|translate}">{'UAM_GTAutoDel'|@translate}</label> 
     434                  <br><br> 
     435                    <input type="radio" value="false" {$UAM_GTAUTODEL_FALSE} name="UAM_GTAutoDel">{'UAM_GTAutoDel_false'|@translate}<br> 
     436                    <input type="radio" value="true" {$UAM_GTAUTODEL_TRUE} name="UAM_GTAutoDel">{'UAM_GTAutoDel_true'|@translate}<br><br> 
     437                      <textarea class="uam_textfields" name="UAM_GTAutoDelText" id="UAM_GTAutoDelText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GTAUTODEL_TEXT}</textarea> 
     438                      <br><br> 
     439                       
     440                      {if 'FCK_PATH'|@defined} 
     441                        <div style="text-align:right;"> 
     442                          <a href="#" onClick="toogleEditor('UAM_GTAutoDelText'); return false;">FCK Editor On/Off</a> 
     443                        </div> 
     444                      {/if} 
     445                  </li> 
     446 
     447                  {if $UAM_GTAUTODEL_TRUE} 
     448                    <div class="uam_hide"> 
     449                  {/if} 
     450                      <li><label class="cluetip" title="{'UAM_GTAutoGpTitle'|translate}|{'UAM_GTAutoGpTitle_d'|translate}">{'UAM_GTAutoGp'|@translate}</label><br><br> 
     451                        <ul> 
     452                          <li> 
     453                            <label> 
     454                              {'UAM_Expired_Group'|@translate} 
     455                            </label> 
     456                          <br> 
     457                            <div id="uam_leftmargin"> 
     458                              {html_options name="UAM_Downgrade_Group" options=$Downgrade_Group.group_options selected=$Downgrade_Group.group_selected} 
     459                            </div> 
     460                          <br><br> 
     461                          </li> 
     462 
     463                          <li> 
     464                            <label> 
     465                              {'UAM_Expired_Status'|@translate} 
     466                            </label> 
     467                          <br> 
     468                            <div id="uam_leftmargin"> 
     469                              {html_options name="UAM_Downgrade_Status" options=$Downgrade_Status.Status_options selected=$Downgrade_Status.Status_selected} 
     470                            </div> 
     471                          <br><br> 
     472                          </li> 
     473                        </ul> 
     474 
     475                        <ul> 
     476                          <li><label class="cluetip" title="{'UAM_GTAutoMailTitle'|translate}|{'UAM_GTAutoMailTitle_d'|translate}">{'UAM_GTAutoMail'|@translate}</label><br><br> 
     477                            <input type="radio" value="false" {$UAM_GTAUTOMAIL_FALSE} name="UAM_GTAutoMail">{'UAM_GTAutoMail_false'|@translate}<br> 
     478                            <input type="radio" value="true" {$UAM_GTAUTOMAIL_TRUE} name="UAM_GTAutoMail">{'UAM_GTAutoMail_true'|@translate}<br><br><br> 
     479                            <textarea class="uam_textfields" name="UAM_GTAutoMailText" id="UAM_GTAutoMailText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GTAUTOMAILTEXT}</textarea><br><br> 
     480                          </li> 
     481                        </ul> 
     482                      </li> 
     483                  {if $UAM_GTAUTODEL_TRUE} 
     484                    </div> 
     485                  {/if} 
     486                </ul> 
     487            {if $UAM_GTAUTO_FALSE} 
     488              </div> 
     489            {/if} 
    415490          </ul> 
    416      
     491 
     492          <br><hr><br> 
     493 
    417494          <li><label class="cluetip" title="{'UAM_lastvisitTitle'|translate}|{'UAM_lastvisitTitle_d'|translate}">{'UAM_LastVisit'|@translate}</label><br><br> 
    418495            <input type="radio" value="false" {$UAM_ADDLASTVISIT_FALSE} name="UAM_Add_LastVisit_Column">{'UAM_LastVisit_false'|@translate}<br> 
  • extensions/NBC_UserAdvManager/trunk/admin/template/uam.css

    r7106 r8065  
    1010  text-decoration: underline; 
    1111  font-weight:bold; 
     12} 
     13 
     14div.uam_hide 
     15{ 
     16  display: none; 
    1217} 
    1318 
  • extensions/NBC_UserAdvManager/trunk/changelog.txt.php

    r7955 r8065  
    204204 
    205205-- 2.15.9 : Bug 2010 fixed - No confirmation email when information email is not set 
     206 
     207-- 2.15.10 : Bug 2050 fixed - Compatibility with Captcha 
     208 
     209 
     210*************************************** 
     211***** Plugin history (branch 2.16)***** 
     212*************************************** 
     213-- 2.16.0 : Bug 1430 and 1840 fixed - Automated tasks are available to delete or downgrade ghost users with or without email notification 
     214 
    206215*/ 
    207216?> 
  • extensions/NBC_UserAdvManager/trunk/include/functions.inc.php

    r7968 r8065  
    152152 * Additional controls on user registration check 
    153153 */ 
    154 function UAM_RegistrationCheck($err, $user) 
    155 { 
    156   global $errors, $conf; 
     154function UAM_RegistrationCheck($errors, $user) 
     155{ 
     156  global $conf; 
    157157 
    158158  // Exclusion of Adult_Content users 
    159159  if ($user['username'] != "16" and $user['username'] != "18") 
    160160  { 
    161  
    162 // *********************************************************** 
    163 // We need to reset the standard Piwigo's register controls    
    164 // because the call of register_user_check trigger resets them 
    165 // *********************************************************** 
    166  
    167     // ********************************** 
    168     // Standard Piwigo's username control 
    169     // ********************************** 
    170     if ($_POST['login'] == '') 
    171     { 
    172       return l10n('reg_err_login1'); 
    173     } 
    174     if (preg_match('/^.* $/', $_POST['login'])) 
    175     { 
    176       return l10n('reg_err_login2'); 
    177     } 
    178     if (preg_match('/^ .*$/', $_POST['login'])) 
    179     { 
    180       return l10n('reg_err_login3'); 
    181     } 
    182     if (get_userid($_POST['login'])) 
    183     { 
    184       return l10n('reg_err_login5'); 
    185     } 
    186  
    187     if ($conf['insensitive_case_logon'] == true) 
    188     { 
    189       $login_error = validate_login_case($_POST['login']); 
    190       if ($login_error != '') 
    191       { 
    192         return l10n($login_error); 
    193       } 
    194     } 
    195  
    196     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 
    197     { 
    198       // Email doblons check 
    199       $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // before  arobase 
    200       $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // domain name 
    201       $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i'; 
    202    
    203       if (!preg_match($regex, $_POST['email'])) 
    204       { 
    205         return l10n('reg_err_mail_address'); 
    206       } 
    207      
    208       $query = ' 
    209 SELECT count(*) 
    210 FROM '.USERS_TABLE.' 
    211 WHERE upper('.$conf['user_fields']['email'].') = upper(\''.$_POST['email'].'\') 
    212 ;'; 
    213       list($count) = pwg_db_fetch_row(pwg_query($query)); 
    214       if ($count != 0) 
    215       { 
    216         return l10n('reg_err_mail_address_dbl'); 
    217       } 
    218     } 
    219  
    220     if (script_basename() == 'register') // not the same email variable if we are on users registration page or on admin's user registration page 
    221     { 
    222       // Email doblons check 
    223       $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // before  arobase 
    224       $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // domain name 
    225       $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i'; 
    226    
    227       if (!preg_match($regex, $_POST['mail_address'])) 
    228       { 
    229         return l10n('reg_err_mail_address'); 
    230       } 
    231      
    232       $query = ' 
    233 SELECT count(*) 
    234 FROM '.USERS_TABLE.' 
    235 WHERE upper('.$conf['user_fields']['email'].') = upper(\''.$_POST['mail_address'].'\') 
    236 ;'; 
    237       list($count) = pwg_db_fetch_row(pwg_query($query)); 
    238       if ($count != 0) 
    239       { 
    240         return l10n('reg_err_mail_address_dbl'); 
    241       } 
    242     } 
    243 // ****************************************** 
    244 // End of Piwigo's standard register controls 
    245 // ****************************************** 
    246  
    247  
    248 // ****************************************** 
    249 // Here begins the advanced register controls 
    250 // ****************************************** 
     161    load_language('plugin.lang', UAM_PATH); 
     162 
    251163    $PasswordCheck = 0; 
    252164 
     
    263175        { 
    264176          $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck); 
    265           return($lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14]); 
     177          $lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14]; 
     178          array_push($errors, $lang['reg_err_pass']); 
    266179        } 
    267180      } 
     
    273186        { 
    274187          $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck); 
    275           return($lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14]); 
     188          $lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14]; 
     189          array_push($errors, $lang['reg_err_pass']); 
    276190        } 
    277191      } 
     
    279193 
    280194    // Username without forbidden keys 
    281     if (isset($conf_UAM[6]) and $conf_UAM[6] == 'true' and !empty($_POST['login']) and ValidateUsername($_POST['login']) and !is_admin()) 
    282     { 
    283       $_POST['login'] = ''; 
    284       return($lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_UAM[7]."'"); 
     195    if (isset($conf_UAM[6]) and $conf_UAM[6] == 'true' and !empty($user['username']) and ValidateUsername($user['username']) and !is_admin()) 
     196    { 
     197      $lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_UAM[7]."'"; 
     198      array_push($errors, $lang['reg_err_login1']); 
    285199    } 
    286200 
    287201    // Email without forbidden domains 
    288     if (isset($conf_UAM[11]) and $conf_UAM[11] == 'true' and !empty($_POST['mail_address']) and ValidateEmailProvider($_POST['mail_address']) and !is_admin()) 
    289     { 
    290       $_POST['mail_address'] = ''; 
    291       return($lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_UAM[12]."'"); 
    292     } 
     202    if (isset($conf_UAM[11]) and $conf_UAM[11] == 'true' and !empty($user['email']) and ValidateEmailProvider($user['email']) and !is_admin()) 
     203    { 
     204      $lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_UAM[12]."'"; 
     205      array_push($errors, $lang['reg_err_login1']); 
     206    } 
     207    return $errors; 
    293208  } 
    294209} 
     
    306221  { 
    307222    $user_idsOK = array(); 
    308     if (!check_consult($user['id'], $user_idsOK)) 
     223    if (!UAM_check_profile($user['id'], $user_idsOK)) 
    309224    { 
    310225      $user_idsOK[] = $user['id']; 
     
    397312 * Triggered on login_success 
    398313 *  
    399  * redirects a visitor (except for admins, webmasters and generic statuses) to his profile.php page 
    400  *  
    401  * Thx to LucMorizur 
    402  */ 
    403 function UAM_RedirectToProfile() 
     314 * Triggers scheduled tasks at login 
     315 * Redirects a visitor (except for admins, webmasters and generic statuses) to his profile.php page (Thx to LucMorizur) 
     316 *  
     317 */ 
     318function UAM_LoginTasks() 
    404319{ 
    405320  global $conf, $user; 
     
    407322  $conf_UAM = unserialize($conf['UserAdvManager']); 
    408323   
     324  // Performing scheduled tasks   
     325  if ((isset($conf_UAM[21]) and $conf_UAM[21] == 'true')) 
     326  { 
     327    if ((isset($conf_UAM[22]) and $conf_UAM[22] == 'true')) 
     328    { 
     329      UAM_ScheduledTasks(); 
     330    } 
     331  } 
     332 
     333  // Performing redirection   
    409334  $query =' 
    410335SELECT user_id, status 
     
    413338;'; 
    414339  $data = pwg_db_fetch_assoc(pwg_query($query)); 
    415    
     340 
    416341  if ($data['status'] <> "admin" and $data['status'] <> "webmaster" and $data['status'] <> "generic") 
    417342  { 
    418     if ((isset($conf_UAM[21]) and $conf_UAM[21] == 'true')) 
    419     { 
    420       $user_idsOK = array(); 
    421       if (!check_consult($user['id'], $user_idsOK)) 
    422         redirect(PHPWG_ROOT_PATH.'profile.php'); 
    423     } 
    424   } 
    425 } 
    426  
    427 /** 
    428  * Triggered on login_success 
    429  *  
    430  * Executes optional post-login tasks like GhostTracker auto tasks 
    431  *  
    432  */ 
    433 function UAM_Tasks() 
    434 { 
    435   global $conf, $user; 
     343    $user_idsOK = array(); 
     344    if (!UAM_check_profile($user['id'], $user_idsOK)) 
     345      redirect(PHPWG_ROOT_PATH.'profile.php'); 
     346  } 
     347} 
     348 
     349/** 
     350 * Triggered on UAM_LoginTasks() 
     351 *  
     352 * Executes optional post-login tasks 
     353 *  
     354 */ 
     355function UAM_ScheduledTasks() 
     356{ 
     357  global $conf, $user, $page; 
    436358   
    437359  $conf_UAM = unserialize($conf['UserAdvManager']); 
     360   
     361  $collection = array(); 
     362   
     363  $page['filtered_users'] = get_ghosts_autotasks(); 
    438364 
    439365  // Ghost accounts auto deletion 
    440366  if ((isset($conf_UAM[22]) and $conf_UAM[22] == 'true') and (isset($conf_UAM[23]) and $conf_UAM[23] == 'true')) 
    441   { 
    442      
     367  {        
     368                foreach($page['filtered_users'] as $listed_user) 
     369    { 
     370      array_push($collection, $listed_user['id']); 
     371    } 
     372 
     373    if (count($collection) > 0) 
     374        { 
     375        if (in_array($user['id'], $collection)) 
     376        { 
     377        invalidate_user_cache(); 
     378         
     379        foreach ($collection as $user_id) 
     380        { 
     381          //delete_user($user_id); 
     382        } 
     383        logout_user(); 
     384        redirect(UAM_PATH.'del_account.php'); 
     385        } 
     386      else 
     387      { 
     388        foreach ($collection as $user_id) 
     389        { 
     390          //delete_user($user_id); 
     391        } 
     392      } 
     393    } 
    443394  } 
    444395 
    445396  // Ghost accounts auto group or status downgrade with or without information email sending 
    446397  if ((isset($conf_UAM[22]) and $conf_UAM[22] == 'true') and (isset($conf_UAM[23]) and $conf_UAM[23] == 'false') and ((isset($conf_UAM[27]) and $conf_UAM[27] <> -1) or (isset($conf_UAM[28]) and $conf_UAM[28] <> -1))) 
    447   { 
    448      
     398  {  
     399                foreach($page['filtered_users'] as $listed_user) 
     400    { 
     401      array_push($collection, $listed_user['id']); 
     402    } 
     403 
     404    if (count($collection) > 0) 
     405        { 
     406        if (in_array($user['id'], $collection)) 
     407        {  
     408        foreach ($collection as $user_id) 
     409        { 
     410          // Auto change group and / or status 
     411          // Delete user from all groups 
     412          $query = " 
     413DELETE FROM ".USER_GROUP_TABLE." 
     414WHERE user_id = '".$user_id."' 
     415  AND ( 
     416    group_id = '".$conf_UAM[2]."' 
     417  OR  
     418    group_id = '".$conf_UAM[3]."' 
     419  ) 
     420;"; 
     421 
     422          pwg_query($query); 
     423 
     424          // Change user status 
     425          if (!is_admin() and $conf_UAM[28] <> -1) 
     426          { 
     427            $query = " 
     428UPDATE ".USER_INFOS_TABLE." 
     429SET status = '".$conf_UAM[28]."' 
     430WHERE user_id = '".$user_id."' 
     431;"; 
     432            pwg_query($query); 
     433          } 
     434 
     435          // Change user group 
     436          if (!is_admin() and $conf_UAM[27] <> -1) 
     437          { 
     438            $query = " 
     439INSERT INTO ".USER_GROUP_TABLE." 
     440  (user_id, group_id) 
     441VALUES 
     442  ('".$user_id."', '".$conf_UAM[27]."') 
     443;"; 
     444            pwg_query($query); 
     445          } 
     446           
     447          // Auto send email notification on group / status downgrade 
     448          if ((isset($conf_UAM[24]) and $conf_UAM[24] == 'true')) 
     449          { 
     450            // Reset confirmed user status to unvalidated 
     451                                                $query = ' 
     452UPDATE '.USER_CONFIRM_MAIL_TABLE.' 
     453SET date_check = NULL 
     454WHERE user_id = "'.$user_id.'" 
     455;'; 
     456                                                pwg_query($query); 
     457 
     458            // Get users information for email notification 
     459                                                $query = ' 
     460SELECT id, username, mail_address 
     461FROM '.USERS_TABLE.' 
     462WHERE id = '.$user_id.' 
     463;'; 
     464                                                $data = pwg_db_fetch_assoc(pwg_query($query)); 
     465             
     466            demotion_mail($user_id, $data['username'], $data['mail_address']); 
     467          } 
     468        } 
     469        invalidate_user_cache(); 
     470        log_user($user['id'], false); 
     471        redirect(make_index_url()); 
     472        } 
     473      else 
     474      { 
     475        foreach ($collection as $user_id) 
     476        { 
     477          // Auto change group and / or status 
     478          // Delete user from all groups 
     479          $query = " 
     480DELETE FROM ".USER_GROUP_TABLE." 
     481WHERE user_id = '".$user_id."' 
     482  AND ( 
     483    group_id = '".$conf_UAM[2]."' 
     484  OR  
     485    group_id = '".$conf_UAM[3]."' 
     486  ) 
     487;"; 
     488 
     489          pwg_query($query); 
     490 
     491          // Change user status 
     492          if (!is_admin() and $conf_UAM[28] <> -1) 
     493          { 
     494            $query = " 
     495UPDATE ".USER_INFOS_TABLE." 
     496SET status = '".$conf_UAM[28]."' 
     497WHERE user_id = '".$user_id."' 
     498;"; 
     499            pwg_query($query); 
     500          } 
     501 
     502          // Change user group 
     503          if (!is_admin() and $conf_UAM[27] <> -1) 
     504          { 
     505            $query = " 
     506INSERT INTO ".USER_GROUP_TABLE." 
     507  (user_id, group_id) 
     508VALUES 
     509  ('".$user_id."', '".$conf_UAM[27]."') 
     510;"; 
     511            pwg_query($query); 
     512          } 
     513 
     514          // Auto send email notification on group / status downgrade 
     515          if ((isset($conf_UAM[24]) and $conf_UAM[24] == 'true')) 
     516          { 
     517            // Reset confirmed user status to unvalidated 
     518                                                $query = ' 
     519UPDATE '.USER_CONFIRM_MAIL_TABLE.' 
     520SET date_check = NULL 
     521WHERE user_id = "'.$user_id.'" 
     522;'; 
     523                                                pwg_query($query); 
     524 
     525            // Get users information for email notification 
     526                                                $query = ' 
     527SELECT id, username, mail_address 
     528FROM '.USERS_TABLE.' 
     529WHERE id = '.$user_id.' 
     530;'; 
     531                                                $data = pwg_db_fetch_assoc(pwg_query($query)); 
     532             
     533            demotion_mail($user_id, $data['username'], $data['mail_address']); 
     534          } 
     535        } 
     536      } 
     537    } 
    449538  } 
    450539} 
     
    513602function SendMail2User($typemail, $id, $username, $password, $email, $confirm) 
    514603{ 
    515   // Only available for next Piwigo release (bug in switch_lang function) 
    516604  global $conf; 
    517605 
     
    659747function ResendMail2User($typemail, $user_id, $username, $email, $confirm) 
    660748{ 
    661   // Only available for next Piwigo release (bug in switch_lang function) 
    662749  global $conf; 
    663750 
     
    667754   
    668755        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); 
    669    
    670         $infos1_perso = ""; 
    671   $infos2_perso = ""; 
    672756   
    673757// We have to get the user's language in database 
     
    765849function ghostreminder($user_id, $username, $email) 
    766850{ 
    767   // Only available for next Piwigo release (bug in switch_lang function) 
    768851  global $conf; 
    769852 
     
    824907 
    825908/** 
     909 * Function called from functions.inc.php to send notification email when user have been downgraded 
     910 * 
     911 * @param : user id, username, email address, confirmation 
     912 *  
     913 */ 
     914function demotion_mail($id, $username, $email) 
     915{ 
     916  global $conf; 
     917 
     918  $conf_UAM = unserialize($conf['UserAdvManager']); 
     919   
     920        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); 
     921   
     922        $custom_txt = ""; 
     923 
     924// We have to get the user's language in database 
     925  $query =' 
     926SELECT user_id, language 
     927FROM '.USER_INFOS_TABLE.' 
     928WHERE user_id = '.$id.' 
     929;'; 
     930  $data = pwg_db_fetch_assoc(pwg_query($query)); 
     931 
     932// Check if user is already registered (profile changing) - If not (new registration), language is set to current gallery language 
     933  if (empty($data)) 
     934  { 
     935// And switch gallery to this language before using personalized and multilangual contents 
     936    $language = pwg_get_session_var( 'lang_switch', $user['language'] ); 
     937    switch_lang_to($language); 
     938  } 
     939  else 
     940  { 
     941// And switch gallery to this language before using personalized and multilangual contents 
     942    $language = $data['language']; // Usefull for debugging 
     943    switch_lang_to($data['language']); 
     944    load_language('plugin.lang', UAM_PATH); 
     945  } 
     946 
     947  $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Demotion of %s', stripslashes($username))); 
     948       
     949  if (isset($conf_UAM[26]) and $conf_UAM[26] <> '') 
     950  { 
     951    if (function_exists('get_user_language_desc')) 
     952    { 
     953      $custom_txt = get_user_language_desc($conf_UAM[26])."\n\n"; 
     954    } 
     955    else $custom_txt = l10n($conf_UAM[26])."\n\n";  
     956  } 
     957 
     958  $infos1 = array( 
     959    get_l10n_args('User: %s', stripslashes($username)), 
     960    get_l10n_args('Email: %s', $email), 
     961    get_l10n_args('', ''), 
     962  ); 
     963 
     964  $infos2 = array 
     965  ( 
     966    get_l10n_args('Link: %s', ResetConfirmMail($id)), 
     967    get_l10n_args('', ''), 
     968  );  
     969 
     970 
     971// Sending the email with subject and contents 
     972  pwg_mail($email, array( 
     973    'subject' => $subject, 
     974    'content' => ($custom_txt.l10n_args($infos1)."\n\n".l10n_args($infos2)."\n\n").get_absolute_root_url(), 
     975  )); 
     976 
     977// ********************** 
     978// Email sending debugger 
     979// This is only to trace  
     980// the send of emails for 
     981// debugging              
     982// ********************** 
     983//$content = ($infos1."\n\n".$infos2."\n\n").get_absolute_root_url();    
     984//MailLog($email,$subject,$content,$language); 
     985// ********************** 
     986 
     987// Switching back to default language 
     988switch_lang_back(); 
     989} 
     990 
     991/** 
    826992 * Function called from functions AddConfirmMail and ResetConfirmMail for validation key generation 
    827993 *  
     
    8801046    pwg_query($query); 
    8811047 
     1048    // Delete user from all groups 
    8821049    $query = " 
    8831050DELETE FROM ".USER_GROUP_TABLE." 
     
    8911058    pwg_query($query); 
    8921059 
     1060    // Set user unvalidated status 
    8931061    if (!is_admin() and $conf_UAM[8] <> -1) 
    8941062    { 
     
    9011069    } 
    9021070 
    903     if ( $conf_UAM[2] <> -1 ) 
     1071    // Set user unvalidated group 
     1072    if (!is_admin() and $conf_UAM[2] <> -1) 
    9041073    { 
    9051074      $query = " 
     
    9501119  } 
    9511120 
    952   if ( $conf_UAM[2] <> -1 ) 
     1121  if (!is_admin() and $conf_UAM[2] <> -1) 
    9531122  { 
    9541123    $query = " 
     
    11101279    $data = pwg_db_fetch_assoc(pwg_query($query)); 
    11111280         
    1112     if (!empty($data) and isset($data['user_id']) and !isset($data['date_check'])) 
     1281    //if (!empty($data) and isset($data['user_id']) and !isset($data['date_check'])) 
     1282    if (!empty($data) and isset($data['user_id'])) 
    11131283    { 
    11141284      $query = " 
     
    13871557        if (isset($email) and isset($conf_UAM[12]) and $conf_UAM[12] <> '') 
    13881558        { 
    1389                 //$ncsemail = strtolower($email); 
    13901559                $conf_MailExclusion = preg_split("/[\s,]+/",$conf_UAM[12]); 
    13911560                for ($i = 0 ; $i < count($conf_MailExclusion) ; $i++) 
     
    15471716} 
    15481717 
     1718 
     1719/** 
     1720 * Function called from functions.inc.php - Get all ghost users to delete or downgrade automatically on any user login 
     1721 *  
     1722 * @return : List of users to delete or downgrade automatically 
     1723 *  
     1724 */ 
     1725function get_ghosts_autotasks() 
     1726{ 
     1727        global $conf, $page; 
     1728 
     1729  $conf_UAM = unserialize($conf['UserAdvManager']); 
     1730   
     1731  $users = array(); 
     1732   
     1733        // search users depending expiration date and reminder sent 
     1734  $query = ' 
     1735SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id, 
     1736                lv.lastvisit, 
     1737                lv.reminder 
     1738FROM '.USERS_TABLE.' AS u 
     1739  INNER JOIN '.USER_LASTVISIT_TABLE.' AS lv 
     1740    ON u.'.$conf['user_fields']['id'].' = lv.user_id 
     1741WHERE (TO_DAYS(NOW()) - TO_DAYS(lv.lastvisit) >= "'.$conf_UAM[17].'") 
     1742  AND lv.reminder = "true" 
     1743ORDER BY lv.lastvisit ASC;'; 
     1744 
     1745        $result = pwg_query($query); 
     1746       
     1747  while ($row = pwg_db_fetch_assoc($result)) 
     1748  { 
     1749        $user = $row; 
     1750    $user['groups'] = array(); 
     1751 
     1752    array_push($users, $user); 
     1753        } 
     1754 
     1755        // add group lists 
     1756  $user_ids = array(); 
     1757  foreach ($users as $i => $user) 
     1758  { 
     1759        $user_ids[$i] = $user['id']; 
     1760        } 
     1761   
     1762        return $users; 
     1763} 
     1764 
     1765 
    15491766/** 
    15501767 * Function called from UAM_admin.php - Get all users to display the number of days since their last visit 
     
    18232040 
    18242041/** 
    1825  * check_consult - Thx to LucMorizur 
     2042 * UAM_check_profile - Thx to LucMorizur 
    18262043 * checks if a user id is registered as having already 
    18272044 * visited his profile.php page. 
     
    18362053 *  
    18372054 */ 
    1838 function check_consult($uid, &$user_idsOK) 
     2055function UAM_check_profile($uid, &$user_idsOK) 
    18392056{ 
    18402057  $t = array(); 
  • extensions/NBC_UserAdvManager/trunk/include/upgradedb.inc.php

    r7955 r8065  
    22/** 
    33 * @author Eric@piwigo.org 
    4  * @copyright 2010 
    5  *  
     4 *   
    65 * Upgrade processes for old plugin version 
    76 * Called from maintain.inc.php on plugin activation 
     
    9695function upgrade_212_213() 
    9796{ 
    98 /* Create missing table */ 
     97  // Create missing table 
    9998  $query = " 
    10099ALTER TABLE ".USER_CONFIRM_MAIL_TABLE." 
     
    104103  pwg_query($query); 
    105104 
    106 /* Upgrade plugin configuration */ 
     105  // Upgrade plugin configuration 
    107106        global $conf; 
    108107 
     
    164163  global $conf; 
    165164 
    166 /* Changing parameter name */ 
     165  // Changing parameter name 
    167166  $q = ' 
    168167UPDATE '.CONFIG_TABLE.' 
     
    179178  pwg_query($q); 
    180179 
    181 /* Upgrading ConfirmMail options */ 
     180  // Upgrading ConfirmMail options 
    182181  $query = ' 
    183182SELECT value 
     
    214213  global $conf; 
    215214 
    216 /* Upgrading options */ 
     215  // Upgrading options 
    217216  $query = ' 
    218217SELECT value 
     
    268267} 
    269268 
    270 /* upgrade from 2.15.9 to 2.16.0 */ 
     269/* upgrade from 2.15.x to 2.16.0 */ 
    271270/* ***************************** */ 
    272 function upgrade_2159_2160() 
     271function upgrade_215_2160() 
    273272{ 
    274273  global $conf; 
    275274 
    276 /* Upgrading options */ 
     275  // Upgrading options 
    277276  $query = ' 
    278277SELECT value 
     
    291290  $Newconf_UAM[25] = 'Sorry, your account has been deleted due to a too long time passed since your last visit.'; 
    292291  $Newconf_UAM[26] = 'Sorry, your account has been deprecated due to a too long time passed since your last visit. Please, use the following link to revalidate your account.'; 
     292  $Newconf_UAM[27] = '-1'; 
     293  $Newconf_UAM[28] = '-1'; 
    293294   
    294295  $update_conf = serialize($Newconf_UAM); 
     
    306307  $query = ' 
    307308INSERT INTO '.CONFIG_TABLE.' (param, value, comment) 
    308 VALUES ("UserAdvManager_Version","2.15.8","UAM version check") 
     309VALUES ("UserAdvManager_Version","2.16.0","UAM version check") 
    309310  ;'; 
    310311   
  • extensions/NBC_UserAdvManager/trunk/language/fr_FR/help/plugin.lang.php

    r7935 r8065  
    1313'; 
    1414$lang['UAM_miscTitle'] = 'Suivi des inscrits et fonctions diverses'; 
    15 $lang['UAM_miscTitle_d'] = ' 
    16 - Gestion des visiteurs fantômes<br> 
    17 - Suivi des visiteurs inscrits<br> 
    18 - Pseudo obligatoire sur commentaire pour les visiteurs<br> 
    19 ... 
    20 '; 
    2115$lang['UAM_casenTitle'] = 'Noms d\'utilisateurs : Sensibilité à la casse'; 
    2216$lang['UAM_carexcTitle'] = 'Noms d\'utilisateurs : Exclusion de certains caractères'; 
     
    5650$lang['UAM_remailtxt2Title'] = 'Message de rappel sans regénération de clé'; 
    5751$lang['UAM_ghosttrackerTitle'] = 'Gestion des visiteurs fantômes (aussi appelée Ghost Tracker)'; 
    58 $lang['UAM_ghosttrackerTitle_d'] = 'L\'activation de cette fonction permet la gestion des visiteurs inscrits en fonction de la fréquence de leurs visites. Une fois atteint le délai entre 2 visites successives, le visiteur apparaît dans le tableau de l\'onglet &quot;Ghost Tracker&quot; d\'où il est possible de le relancer par email.<br><br> 
    59 <b style=&quot;color: red;&quot;>IMPORTANT : A première activation de cette fonction, ou à sa réactivation après une longue période pendant laquelle de nouveaux visiteurs se sont inscrits, il convient d\'initialiser le Ghost Tracker (voir les instructions correspondantes sur l\'onglet &quot;Ghost Tracker&quot;).</b>'; 
    6052$lang['UAM_gttextTitle'] = 'Message de rappel Ghost Tracker'; 
    6153$lang['UAM_lastvisitTitle'] = 'Suivi des utilisateurs inscrits'; 
     
    134126<b>Fonction de tri du tableau</b>: Vous pouvez trier les données affichées en cliquant sur les entêtes de colonnes. L\'utilisation de la touche MAJ ou SHIFT permet de trier sur 1 à 4 colonnes simultanées maximum.'; 
    135127$lang['UAM_confirmmailTitle'] = 'Confirmation d\'inscription'; 
    136 $lang['UAM_confirmmailTitle_d'] = 'Cette option permet soit à un utilisateur de valider son inscription en cliquant sur un lien reçu dans un email envoyé dès son enregistrement sur la galerie soit à l\'administrateur d\'activer manuellement les inscriptions.<br><br> 
     128$lang['UAM_confirmmailTitle_d'] = 'Cette option permet soit à un utilisateur de valider son inscription en cliquant sur un lien reçu dans un email envoyé dès son enregistrement sur la galerie, soit à l\'administrateur d\'activer manuellement les inscriptions.<br><br> 
    137129Dans le premier cas, le message envoyé comprend une partie fixe, avec le lien d\'activation généré à partir d\'une clef aléatoire (cette clé peut éventuellement être régénérée via l\'onglet &quot;Suivi des validations&quot;), et une partie personnalisable par un texte d\'accueil. 
    138130<br><br> 
     
    154146 
    155147 
    156 // --------- Starting below: New or revised $lang ---- from version 2.15.7 
    157 $lang['UAM_GTAutoTitle'] = 'Gestion automatique des utilisateurs fantomes'; 
    158 $lang['UAM_GTAutoTitle_d'] = 'Cette option permet d\'appliquer des règles de gestion automatisée des visiteurs fantômes. Lorsque ce mode est actif, on partira du principe qu\'un visiteur ayant atteind la limite maximale entre deux visites et ayant déjà été notifié par mail est considéré comme expiré.'; 
    159 $lang['UAM_GTAutoDelTitle'] = 'Suppression automatique des comptes expirés'; 
    160 $lang['UAM_GTAutoDelTitle_d'] = 'Supprime automatiquement le compte d\'un utilisateur lorsque celui-ci est expiré. La suppression survient lors de la connexion de l\'utilisateur qui est alors redirigé vers une page annonçant que sont compte a été détruit. Un texte personnalisé peut être saisi dans le champ ci-dessous.<br> 
    161 Ce champ est compatible avec l\'extension FCK Editor et, pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.<br><br> 
    162 Note : Lorsque cette option est active, les autres règles automatiques ne sont pas accessibles.'; 
    163 $lang['UAM_GTAutoGpTitle'] = 'Changement automatique de groupe / statut'; 
    164 $lang['UAM_GTAutoGpTitle_d'] = 'Changement automatique de groupe / statut'; 
    165 $lang['UAM_GTAutoMailTitle'] = 'Emailing automatique des comptes expirés'; 
    166 $lang['UAM_GTAutoMailTitle_d'] = 'Emailing automatique des comptes expirés'; 
    167 // --------- End: New or revised $lang ---- from version 2.15.7 
    168  
    169  
    170148// --------- Starting below: New or revised $lang ---- from version 2.16.0 
     149$lang['UAM_ghosttrackerTitle_d'] = 'L\'activation de cette fonction permet la gestion des visiteurs inscrits en fonction de la fréquence de leurs visites. 2 fonctionnements sont possibles:<br><br> 
     150- Gestion manuelle : Lorsque le délai entre 2 visites successives est atteint, le visiteur apparaît dans le tableau de l\'onglet &quot;Ghost Tracker&quot; d\'où il est possible de le relancer manuellement par email ou le supprimer.<br><br> 
     151- Gestion automatisée : Lorsque le délai entre 2 visites successives est atteint, le visiteur est automatiquement soit supprimé, soit basculé dans un groupe et/ou statut d\'attente. Dans ce deuxième cas, un email d\'information peut lui être envoyé.<br><br><br> 
     152<b style=&quot;color: red;&quot;>IMPORTANT : A première activation de cette fonction, ou à sa réactivation après une longue période pendant laquelle de nouveaux visiteurs se sont inscrits, il convient d\'initialiser le Ghost Tracker (voir les instructions correspondantes sur l\'onglet &quot;Ghost Tracker&quot;).</b>'; 
     153$lang['UAM_miscTitle_d'] = ' 
     154- Gestion automatique ou manuelle des visiteurs fantômes<br> 
     155- Suivi des visiteurs inscrits<br> 
     156- Pseudo obligatoire sur commentaire pour les visiteurs<br> 
     157... 
     158'; 
    171159$lang['UAM_mailexcTitle_d'] = 'Par défaut, Piwigo accepte toutes les adresses de messagerie au format xxx@yyy.zz. L\'activation de cette option permet d\'exclure certains domaines selon le format : @[nom_du_domaine].[extension_du_domaine].<br><br> 
    172160Exemples :<br> 
     
    191179$lang['UAM_gttextTitle_d'] = 'Saisissez ici le texte qui apparaîtra dans l\'email de rappel pour inciter l\'utilisateur à revenir visiter votre galerie (NB: Le texte pré-renseigné à l\'installation du plugin est donné à titre d\'exemple).<br><br> 
    192180Pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.'; 
     181$lang['UAM_GTAutoTitle'] = 'Gestion automatique des utilisateurs fantomes'; 
     182$lang['UAM_GTAutoTitle_d'] = 'Cette option permet d\'appliquer des règles de gestion automatisée des visiteurs fantômes. 
     183<br><br>Principe de base : Un compte d\'utilisateur ayant atteind la limite maximale entre deux visites <b>et</b> ayant déjà été notifié par email est considéré comme expiré. On peut alors appliquer des règles de traitement automatisées telles que la suppression automatique des comptes expirés ou leur rétrogradation en restreignant l\'accès à la galerie (bascule automatique dans un groupe et/ou un statut à accès restreint). 
     184<br><br>Le déclenchement de ces automatismes se réalise lors de la connexion des utilisateurs (n\'importe quel utilisateur !)à la galerie.'; 
     185$lang['UAM_GTAutoDelTitle'] = 'Suppression automatique des comptes expirés'; 
     186$lang['UAM_GTAutoDelTitle_d'] = 'Supprime automatiquement le compte d\'un utilisateur lorsque celui-ci est expiré. 
     187<br><br>Fonction à utiliser avec précaution car la suppression des comptes est définitive et sans appel !<br><br> 
     188La suppression survient lors de la connexion de l\'utilisateur qui est alors redirigé vers une page annonçant que son compte a été détruit. Un texte personnalisé peut être saisi dans le champ ci-dessous.<br> 
     189Ce champ est compatible avec l\'extension FCK Editor et, pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.<br><br> 
     190Note : Lorsque cette option est active, les autres règles automatiques ne sont pas accessibles.'; 
     191$lang['UAM_GTAutoGpTitle'] = 'Changement automatique de groupe / statut'; 
     192$lang['UAM_GTAutoGpTitle_d'] = 'Le changement automatique de groupe ou de statut équivaut à une rétrogradation des comptes concernés et fonctionne sur le même principe que le groupe ou le statut de validation (voir &quot;Paramétrage des confirmations et validations d\'inscriptions&quot;). Il conviendra donc de définir un groupe et/ou un statut rétrogradant l\'accès à la galerie. Si cela a déjà été défini avec l\'utilisation de la fonction Confirmation d\'inscription, on peut utiliser ces mêmes groupe / statut.'; 
     193$lang['UAM_GTAutoMailTitle'] = 'Email automatique sur changement de groupe / statut'; 
     194$lang['UAM_GTAutoMailTitle_d'] = 'Lorsqu\'un compte est expiré (changement de groupe / statut rétrogradant le visiteur), un email d\'information peut être envoyé pour préciser les raisons de ce changement et le moyen de recouvrer l\'accès initial à la galerie. 
     195<br>Pour ce faire, un lien de revalidation de l\'inscription est joint à l\'email (génération automatique d\'une nouvelle clé de validation). 
     196<br><br>Saisissez aussi le texte personnalisé qui expliquera les raisons de la rétrogradation et qui accompagnera le lien de validation. Le texte personnalisé n\'est pas obligatoire mais vivement conseillé. En effet, vos visiteurs inscrits n\'apprécieront que moyennement de recevoir un email ne contenant qu\'un simple lien sans plus d\'explications. ;-) 
     197<br><br>Pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif. 
     198<br><br><b style=&quot;color: red;&quot;>Attention : L\'emploi de cette fonction est intimement lié à l\'option de confirmation d\'inscription par l\'utilisateur (confirmation par mail) et ne peut pas être activée sans cette option.</b>'; 
    193199// --------- End: New or revised $lang ---- from version 2.16.0 
    194200?> 
  • extensions/NBC_UserAdvManager/trunk/language/fr_FR/plugin.lang.php

    r7935 r8065  
    271271 
    272272// --------- Starting below: New or revised $lang ---- from version 2.16.0 
     273$lang['UAM_Expired_Group'] = '<b>Groupe</b> pour les utilisateurs dont l\'inscription aura expirée<br>'; 
     274$lang['UAM_Expired_Status'] = '<b>Statut</b> pour les utilisateurs dont l\'inscription aura expirée<br>'; 
    273275$lang['UAM_GTAuto'] = 'Gestion automatique des utilisateurs fantomes'; 
    274276$lang['UAM_GTAuto_false'] = ' Désactiver (valeur par défaut)'; 
     
    278280$lang['UAM_GTAutoDel_false'] = ' Désactiver (valeur par défaut)'; 
    279281$lang['UAM_GTAutoDel_true'] = ' Activer'; 
    280 $lang['UAM_GTAutoMail'] = 'Emailing de rappel automatique'; 
     282$lang['UAM_GTAutoMail'] = 'Email automatique sur changement de groupe / statut'; 
    281283$lang['UAM_GTAutoMail_false'] = ' Désactiver (valeur par défaut)'; 
    282284$lang['UAM_GTAutoMail_true'] = ' Activer'; 
     285$lang['Deleted_Account_Redirection_Page'] = 'Accès refusé - Compte détruit !'; 
     286$lang['title_redir_page'] = 'Accès refusé pour cause de compte détruit !'; 
     287$lang['Error_GTAutoMail_cannot_be_set_without_ConfirmMail'] = 'Erreur de cohérence dans la configuration choisie :<br><br> 
     288"Paramétrage des suivis des inscrits et autres options > Gestion des visiteurs fantômes (Ghost Tracker) > Gestion automatique des utilisateurs fantomes  > Email automatique sur changement de groupe / statut" ne peut pas être activé si "Paramétrage des confirmations et validations d\'inscriptions  > Confirmation d\'inscription - Validation par le visiteur" n\'est pas activé au préalable.<br><br> 
     289Pour garantir la cohérence, l\'option "Email automatique sur changement de groupe / statut" a été automatiquement repositionnée en "désactivé".<br><br>'; 
     290$lang['Demotion of %s'] = 'Rétrogradation de %s'; 
    283291// --------- End: New or revised $lang ---- from version 2.16.0 
    284292?> 
  • extensions/NBC_UserAdvManager/trunk/main.inc.php

    r7955 r8065  
    22/* 
    33Plugin Name: UserAdvManager 
    4 Version: 2.16.0-alpha 
     4Version: 2.16.0b 
    55Description: Renforcer la gestion des utilisateurs - Enforce users management 
    66Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid=216 
     
    4747 
    4848// Redirection to profile page 
    49 add_event_handler('login_success', 'RedirectToProfile'); 
     49add_event_handler('login_success', 'UAM_LoginTasks'); 
     50 
    5051 
    5152// *** Important ! This is necessary to make email exclusion work in admin's users management panel *** 
  • extensions/NBC_UserAdvManager/trunk/maintain.inc.php

    r7955 r8065  
    2626Best regards, 
    2727 
    28 The admin of the gallery.','false','false','false'); 
     28The admin of the gallery.','false','false','false','false','false','false','Sorry, your account has been deleted due to a too long time passed since your last visit.','Sorry, your account has been deprecated due to a too long time passed since your last visit. Please, use the following link to revalidate your account.',-1,-1); 
    2929 
    3030  $q = ' 
     
    180180  } 
    181181 
    182  
     182/* Check for upgrade from 2.15 to 2.16 */ 
     183/* *********************************** */ 
    183184        $query = ' 
    184185SELECT param 
     
    190191  if ($count == 0) 
    191192  { 
    192     upgrade_2159_2160(); 
     193    /* upgrade from branch 2.15 to 2.16 */ 
     194    /* ******************************** */ 
     195    upgrade_215_2160(); 
    193196  } 
    194197 
Note: See TracChangeset for help on using the changeset viewer.