Ignore:
Timestamp:
Oct 29, 2009, 2:25:30 AM (14 years ago)
Author:
Eric
Message:

[NBC_UserAdvManager] final coding for release 2.12.0 :

  • Improving plugin upgrade process (database auto upgrade from branch 2.10 and 2.11 to new branch 2.12)
  • Adding new function (Ghost Tracker - Tracking of ghost users) from bug 1194 : fully functionnal.
  • Language files updated for new Ghost Tracker feature.
  • Some code improvement.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/NBC_UserAdvManager/trunk/include/functions_UserAdvManager.inc.php

    r4135 r4143  
    145145
    146146
     147/* Function called from UserAdvManager_admin.php to send a reminder mail for ghost users */
     148function ghostreminder($user_id, $username, $email)
     149{
     150  global $conf;
     151  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
     152 
     153        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     154 
     155        $infos1_perso = "";
     156
     157  $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Ghost_remainder_of_%s', $username));
     158     
     159  if (function_exists('get_user_language_desc') and isset($conf_nbc_UserAdvManager[19]) and $conf_nbc_UserAdvManager[19] <> '' and isset($conf_nbc_UserAdvManager[17]) and $conf_nbc_UserAdvManager[17] == 'true')
     160  {
     161    $infos1 = get_user_language_desc($conf_nbc_UserAdvManager[19])."\n\n";
     162    resetlastvisit($user_id);
     163  }
     164
     165  pwg_mail($email, array(
     166    'subject' => $subject,
     167    'content' => $infos1.get_absolute_root_url(),
     168  ));
     169
     170/* ********************** */
     171/* Email sending debugger */
     172/* This is only to trace  */
     173/* the send of emails for */
     174/* debugging              */
     175/* ********************** */ 
     176//  MailLog($email,$subject);
     177/* ********************** */
     178}
     179
     180
    147181/* Function called from functions AddConfirmMail and ResetConfirmMail for validation key generation */
    148182function FindAvailableConfirmMailID()
     
    152186    $id = generate_key(16);
    153187    $query = "
    154       SELECT COUNT(*)
    155       FROM ".USER_CONFIRM_MAIL_TABLE."
    156       WHERE id = '".$id."'
    157     ;";
     188SELECT COUNT(*)
     189FROM ".USER_CONFIRM_MAIL_TABLE."
     190WHERE id = '".$id."'
     191;";
    158192    list($count) = mysql_fetch_row(pwg_query($query));
    159193
     
    176210  {
    177211    $query = "
    178       SELECT status
    179       FROM ".USER_INFOS_TABLE."
    180       WHERE user_id = '".$user_id."'
    181     ;";
     212SELECT status
     213FROM ".USER_INFOS_TABLE."
     214WHERE user_id = '".$user_id."'
     215;";
    182216    list($status) = mysql_fetch_row(pwg_query($query));
    183217   
    184218    $query = "
    185       INSERT INTO ".USER_CONFIRM_MAIL_TABLE."
    186       (id, user_id, mail_address, status, date_check)
    187       VALUES
    188       ('".$Confirm_Mail_ID."', '".$user_id."', '".$email."', '".$status."', null)
    189     ;";
     219INSERT INTO ".USER_CONFIRM_MAIL_TABLE."
     220  (id, user_id, mail_address, status, date_check)
     221VALUES
     222  ('".$Confirm_Mail_ID."', '".$user_id."', '".$email."', '".$status."', null)
     223;";
    190224    pwg_query($query);
    191225
    192226    $query = "
    193       DELETE FROM ".USER_GROUP_TABLE."
    194       WHERE user_id = '".$user_id."'
    195       AND (
    196         group_id = '".$conf_nbc_UserAdvManager[3]."'
    197                         OR
    198         group_id = '".$conf_nbc_UserAdvManager[4]."'
    199       )
    200     ;";
     227DELETE FROM ".USER_GROUP_TABLE."
     228WHERE user_id = '".$user_id."'
     229  AND (
     230    group_id = '".$conf_nbc_UserAdvManager[3]."'
     231  OR
     232    group_id = '".$conf_nbc_UserAdvManager[4]."'
     233  )
     234;";
    201235    pwg_query($query);
    202236
     
    204238    {
    205239      $query = "
    206         UPDATE ".USER_INFOS_TABLE."
    207         SET status = '".$conf_nbc_UserAdvManager[9]."'
    208         WHERE user_id = '".$user_id."'
    209       ;";
     240UPDATE ".USER_INFOS_TABLE."
     241SET status = '".$conf_nbc_UserAdvManager[9]."'
     242WHERE user_id = '".$user_id."'
     243;";
    210244      pwg_query($query);
    211245    }
     
    214248    {
    215249      $query = "
    216         INSERT INTO ".USER_GROUP_TABLE."
    217         (user_id, group_id)
    218         VALUES
    219         ('".$user_id."', '".$conf_nbc_UserAdvManager[3]."')
    220       ;";
     250INSERT INTO ".USER_GROUP_TABLE."
     251  (user_id, group_id)
     252VALUES
     253  ('".$user_id."', '".$conf_nbc_UserAdvManager[3]."')
     254;";
    221255      pwg_query($query);
    222256    }
     
    239273  {
    240274    $query = "
    241                         UPDATE ".USER_CONFIRM_MAIL_TABLE."
    242                         SET id = '".$Confirm_Mail_ID."'
    243                         WHERE user_id = '".$user_id."'
    244     ;";
     275UPDATE ".USER_CONFIRM_MAIL_TABLE."
     276SET id = '".$Confirm_Mail_ID."'
     277WHERE user_id = '".$user_id."'
     278;";
    245279    pwg_query($query);
    246280
    247281                $query = "
    248         UPDATE ".USER_INFOS_TABLE."
    249       SET registration_date = '".$dbnow."'
    250       WHERE user_id = '".$user_id."'
    251       ;";
     282UPDATE ".USER_INFOS_TABLE."
     283SET registration_date = '".$dbnow."'
     284WHERE user_id = '".$user_id."'
     285;";
    252286                pwg_query($query);
    253287   
     
    257291
    258292
     293/* Function called from function_UserAdvManager.inc.php to reset last visit date after sending a reminder */
     294function resetlastvisit($user_id)
     295{
     296  global $conf;
     297
     298  list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
     299
     300  $query = "
     301UPDATE ".USER_LASTVISIT_TABLE."
     302SET lastvisit = '".$dbnow."'
     303WHERE user_id = '".$user_id."'
     304;";
     305  pwg_query($query);
     306}
     307
     308
    259309/* Function called from main.inc.php - Triggered on user deletion */
    260310function DeleteConfirmMail($user_id)
    261311{
    262312  $query = "
    263     DELETE FROM ".USER_CONFIRM_MAIL_TABLE."
    264     WHERE user_id = '".$user_id."'
    265   ;";
     313DELETE FROM ".USER_CONFIRM_MAIL_TABLE."
     314WHERE user_id = '".$user_id."'
     315;";
    266316  pwg_query($query);
    267317}
     
    279329
    280330  $query = "
    281     SELECT COUNT(*)
    282     FROM ".USER_CONFIRM_MAIL_TABLE."
    283     WHERE id = '".$id."'
    284   ;";
     331SELECT COUNT(*)
     332FROM ".USER_CONFIRM_MAIL_TABLE."
     333WHERE id = '".$id."'
     334;";
    285335  list($count) = mysql_fetch_row(pwg_query($query));
    286336
     
    288338  {
    289339    $query = "
    290       SELECT user_id, status, date_check
    291       FROM ".USER_CONFIRM_MAIL_TABLE."
    292       WHERE id = '".$id."'
    293     ;";
     340SELECT user_id, status, date_check
     341FROM ".USER_CONFIRM_MAIL_TABLE."
     342WHERE id = '".$id."'
     343;";
    294344    $data = mysql_fetch_array(pwg_query($query));
    295345       
     
    297347    {
    298348      $query = "
    299         SELECT registration_date
    300         FROM ".USER_INFOS_TABLE."
    301         WHERE user_id = '".$data['user_id']."'
    302       ;";
     349SELECT registration_date
     350FROM ".USER_INFOS_TABLE."
     351WHERE user_id = '".$data['user_id']."'
     352;";
    303353      list($registration_date) = mysql_fetch_row(pwg_query($query));
    304354
     
    328378
    329379                                                $query = '
    330                                                         UPDATE '.USER_CONFIRM_MAIL_TABLE.'
    331                                                         SET date_check="'.$dbnow.'"
    332                                                         WHERE id = "'.$id.'"
    333                                                 ;';
     380UPDATE '.USER_CONFIRM_MAIL_TABLE.'
     381SET date_check="'.$dbnow.'"
     382WHERE id = "'.$id.'"
     383;';
    334384                                                pwg_query($query);
    335385     
     
    337387                                                {
    338388                                                        $query = "
    339                                                                 DELETE FROM ".USER_GROUP_TABLE."
    340                                                                 WHERE user_id = '".$data['user_id']."'
    341                                                                 AND group_id = '".$conf_nbc_UserAdvManager[3]."'
    342                                                         ;";
     389DELETE FROM ".USER_GROUP_TABLE."
     390WHERE user_id = '".$data['user_id']."'
     391  AND group_id = '".$conf_nbc_UserAdvManager[3]."'
     392;";
    343393                                                        pwg_query($query);
    344394                                                }
     
    347397                                                {
    348398                                                        $query = "
    349                                                                 INSERT INTO ".USER_GROUP_TABLE."
    350                                                                         (user_id, group_id)
    351                                                                 VALUES
    352                                                                         ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
    353                                                                 ;";
     399INSERT INTO ".USER_GROUP_TABLE."
     400  (user_id, group_id)
     401VALUES
     402  ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
     403;";
    354404                                                        pwg_query($query);
    355405                                                }
     
    358408                                                {
    359409                                                        $query = "
    360                                                                 UPDATE ".USER_INFOS_TABLE."
    361                                                                 SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
    362                                                                 WHERE user_id = '".$data['user_id']."'
    363                                                         ;";
     410UPDATE ".USER_INFOS_TABLE."
     411SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
     412WHERE user_id = '".$data['user_id']."'
     413;";
    364414                                                        pwg_query($query);
    365415                                                }
     
    380430
    381431                                        $query = '
    382                                                 UPDATE '.USER_CONFIRM_MAIL_TABLE.'
    383                                                 SET date_check="'.$dbnow.'"
    384                                                 WHERE id = "'.$id.'"
    385                                         ;';
     432UPDATE '.USER_CONFIRM_MAIL_TABLE.'
     433SET date_check="'.$dbnow.'"
     434WHERE id = "'.$id.'"
     435;';
    386436                                        pwg_query($query);
    387437     
     
    389439                                        {
    390440                                                $query = "
    391                                                         DELETE FROM ".USER_GROUP_TABLE."
    392                                                         WHERE user_id = '".$data['user_id']."'
    393                                                         AND group_id = '".$conf_nbc_UserAdvManager[3]."'
    394                                                 ;";
     441DELETE FROM ".USER_GROUP_TABLE."
     442WHERE user_id = '".$data['user_id']."'
     443AND group_id = '".$conf_nbc_UserAdvManager[3]."'
     444;";
    395445                                                pwg_query($query);
    396446                                        }
     
    399449                                        {
    400450                                                $query = "
    401                                                         DELETE FROM ".USER_GROUP_TABLE."
    402                                                         WHERE user_id = '".$data['user_id']."'
    403                                                         AND group_id = '".$conf_nbc_UserAdvManager[4]."'
    404                                                 ;";
     451DELETE FROM ".USER_GROUP_TABLE."
     452WHERE user_id = '".$data['user_id']."'
     453AND group_id = '".$conf_nbc_UserAdvManager[4]."'
     454;";
    405455                                                pwg_query($query);
    406456
    407457                                                $query = "
    408                                                         INSERT INTO ".USER_GROUP_TABLE."
    409                                                                 (user_id, group_id)
    410                                                         VALUES
    411                                                                 ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
    412                                                 ;";
     458INSERT INTO ".USER_GROUP_TABLE."
     459  (user_id, group_id)
     460VALUES
     461  ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
     462;";
    413463                                                pwg_query($query);
    414464                                        }
     
    417467                                        {
    418468                                                $query = "
    419                                                         UPDATE ".USER_INFOS_TABLE."
    420                                                         SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
    421                                                         WHERE user_id = '".$data['user_id']."'
    422                                                 ;";
     469UPDATE ".USER_INFOS_TABLE."
     470SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
     471WHERE user_id = '".$data['user_id']."'
     472;";
    423473                                                pwg_query($query);
    424474                                        }
     
    445495       
    446496  $query = "
    447     SELECT COUNT(*)
    448     FROM ".USER_CONFIRM_MAIL_TABLE."
    449     WHERE user_id = '".$id."'
    450   ;";
     497SELECT COUNT(*)
     498FROM ".USER_CONFIRM_MAIL_TABLE."
     499WHERE user_id = '".$id."'
     500;";
    451501  list($count) = mysql_fetch_row(pwg_query($query));
    452502
     
    454504  {
    455505    $query = "
    456       SELECT user_id, status, date_check
    457       FROM ".USER_CONFIRM_MAIL_TABLE."
    458       WHERE user_id = '".$id."'
    459     ;";
     506SELECT user_id, status, date_check
     507FROM ".USER_CONFIRM_MAIL_TABLE."
     508WHERE user_id = '".$id."'
     509;";
    460510    $data = mysql_fetch_array(pwg_query($query));
    461511
     
    465515
    466516                        $query = "
    467                                 UPDATE ".USER_CONFIRM_MAIL_TABLE."
    468                                 SET date_check='".$dbnow."'
    469                                 WHERE user_id = '".$data['user_id']."'
    470                         ;";
     517UPDATE ".USER_CONFIRM_MAIL_TABLE."
     518SET date_check='".$dbnow."'
     519WHERE user_id = '".$data['user_id']."'
     520;";
    471521                        pwg_query($query);
    472522             
     
    474524                        {
    475525                                $query = "
    476                                         DELETE FROM ".USER_GROUP_TABLE."
    477                                         WHERE user_id = '".$data['user_id']."'
    478                                         AND group_id = '".$conf_nbc_UserAdvManager[3]."'
    479                                 ;";
     526DELETE FROM ".USER_GROUP_TABLE."
     527WHERE user_id = '".$data['user_id']."'
     528  AND group_id = '".$conf_nbc_UserAdvManager[3]."'
     529;";
    480530                                pwg_query($query);
    481531                        }
     
    484534                        {
    485535                                $query = "
    486                                         DELETE FROM ".USER_GROUP_TABLE."
    487                                         WHERE user_id = '".$data['user_id']."'
    488                                         AND group_id = '".$conf_nbc_UserAdvManager[4]."'
     536DELETE FROM ".USER_GROUP_TABLE."
     537WHERE user_id = '".$data['user_id']."'
     538  AND group_id = '".$conf_nbc_UserAdvManager[4]."'
    489539                                ;";
    490540                                pwg_query($query);
    491541       
    492542                                $query = "
    493                                         INSERT INTO ".USER_GROUP_TABLE."
    494                                                 (user_id, group_id)
    495                                         VALUES
    496                                                 ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
    497                                 ;";
     543INSERT INTO ".USER_GROUP_TABLE."
     544  (user_id, group_id)
     545VALUES
     546  ('".$data['user_id']."', '".$conf_nbc_UserAdvManager[4]."')
     547;";
    498548                                pwg_query($query);
    499549                        }
     
    502552                        {
    503553                                $query = "
    504                                         UPDATE ".USER_INFOS_TABLE."
    505                                         SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
    506                                         WHERE user_id = '".$data['user_id']."'
    507                                 ;";
     554UPDATE ".USER_INFOS_TABLE."
     555SET status = '".(isset($data['status']) ? $data['status'] : $conf_nbc_UserAdvManager[5])."'
     556WHERE user_id = '".$data['user_id']."'
     557;";
    508558                                pwg_query($query);
    509559                        }
     
    523573  {
    524574    $query = "
    525       SELECT ".$conf['user_fields']['username']."
    526       FROM ".USERS_TABLE."
    527       WHERE LOWER(".$conf['user_fields']['username'].") = '".strtolower($username)."'
    528     ;";
     575SELECT ".$conf['user_fields']['username']."
     576FROM ".USERS_TABLE."
     577WHERE LOWER(".$conf['user_fields']['username'].") = '".strtolower($username)."'
     578;";
    529579    list($username) = mysql_fetch_row(pwg_query($query));
    530580
     
    532582  }
    533583}
    534 
    535 
    536 /* Obsolete function - Check for single email in database */
    537 //function SearchMail($email)
    538 //{
    539 //  global $conf, $lang;
    540 // 
    541 //  if (isset($email))
    542 //  {
    543 //    $query = "
    544 //      SELECT COUNT(*)
    545 //      FROM ".USERS_TABLE."
    546 //      WHERE ".$conf['user_fields']['email']." = '".$email."'
    547 //    ;";
    548 //    list($nbr_mail) = mysql_fetch_row(pwg_query($query));
    549 // 
    550 //    return isset($nbr_mail) ? $nbr_mail : 0;
    551 //  }
    552 //}
    553584
    554585
     
    612643        /* search users depending expiration date */
    613644  $query = '
    614                 SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
    615                                                                                 u.'.$conf['user_fields']['username'].' AS username,
    616                                                                                 u.'.$conf['user_fields']['email'].' AS email,
    617                                                                                 ui.status,
    618                                                                                 ui.adviser,
    619                                                                                 ui.enabled_high,
    620                                                                                 ui.level,
    621                                                                                 ui.registration_date
    622                 FROM '.USERS_TABLE.' AS u
    623     INNER JOIN '.USER_INFOS_TABLE.' AS ui
    624       ON u.'.$conf['user_fields']['id'].' = ui.user_id
    625     LEFT JOIN '.USER_GROUP_TABLE.' AS ug
    626       ON u.'.$conf['user_fields']['id'].' = ug.user_id
    627                 WHERE u.'.$conf['user_fields']['id'].' >= 3
    628                 AND (TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) >= "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'"
    629                         OR TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) < "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'")';
     645SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
     646                u.'.$conf['user_fields']['username'].' AS username,
     647                u.'.$conf['user_fields']['email'].' AS email,
     648                ui.status,
     649                ui.adviser,
     650                ui.enabled_high,
     651                ui.level,
     652                ui.registration_date
     653FROM '.USERS_TABLE.' AS u
     654  INNER JOIN '.USER_INFOS_TABLE.' AS ui
     655    ON u.'.$conf['user_fields']['id'].' = ui.user_id
     656  LEFT JOIN '.USER_GROUP_TABLE.' AS ug
     657    ON u.'.$conf['user_fields']['id'].' = ug.user_id
     658  WHERE u.'.$conf['user_fields']['id'].' >= 3
     659    AND (TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) >= "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'"
     660    OR TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) < "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'")';
    630661
    631662        if ($conf_nbc_UserAdvManager[3] <> '-1' and $conf_nbc_UserAdvManager[9] == '-1')
    632663  {
    633664    $query.= '
    634     AND ug.group_id = '.$conf_nbc_UserAdvManager[3];
     665  AND ug.group_id = '.$conf_nbc_UserAdvManager[3];
    635666  }
    636667  if ($conf_nbc_UserAdvManager[3] == '-1' and $conf_nbc_UserAdvManager[9] <> '-1')
    637668  {
    638669    $query.= '
    639     AND ui.status = \''.$conf_nbc_UserAdvManager[9]."'";
     670  AND ui.status = \''.$conf_nbc_UserAdvManager[9]."'";
    640671  }
    641672  if ($conf_nbc_UserAdvManager[3] <> '-1' and $conf_nbc_UserAdvManager[9] <> '-1')
    642673  {
    643674    $query.= '
    644     AND ug.group_id = \''.$conf_nbc_UserAdvManager[3]."'";
     675  AND ug.group_id = \''.$conf_nbc_UserAdvManager[3]."'";
    645676  }
    646677  $query.= '
    647   ORDER BY id ASC
     678ORDER BY id ASC
    648679;';
    649680
     
    670701  {
    671702        $query = '
    672         SELECT user_id, group_id
    673                         FROM '.USER_GROUP_TABLE.'
    674       WHERE user_id IN ('.implode(',', $user_ids).')
    675                 ;';
     703SELECT user_id, group_id
     704FROM '.USER_GROUP_TABLE.'
     705WHERE user_id IN ('.implode(',', $user_ids).')
     706;';
    676707       
    677708                $result = pwg_query($query);
     
    689720}
    690721
     722
     723/* Function called from UserAdvManager.php - Get ghost users */
     724function get_ghost_user_list()
     725{
     726        global $conf, $page;
     727         
     728        /* Get UserAdvManager configuration */
     729        $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array(); 
     730 
     731  $users = array();
     732
     733        /* search users depending expiration date */
     734  $query = '
     735SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
     736                u.'.$conf['user_fields']['username'].' AS username,
     737                u.'.$conf['user_fields']['email'].' AS email,
     738                lv.lastvisit,
     739                lv.reminder
     740FROM '.USERS_TABLE.' AS u
     741  INNER JOIN '.USER_LASTVISIT_TABLE.' AS lv
     742    ON u.'.$conf['user_fields']['id'].' = lv.user_id
     743WHERE (TO_DAYS(NOW()) - TO_DAYS(lv.lastvisit) >= "'.$conf_nbc_UserAdvManager[18].'")
     744ORDER BY id ASC;';
     745
     746        $result = pwg_query($query);
     747     
     748  while ($row = mysql_fetch_array($result))
     749  {
     750        $user = $row;
     751    $user['groups'] = array();
     752
     753    array_push($users, $user);
     754        }
     755
     756        /* add group lists */
     757  $user_ids = array();
     758  foreach ($users as $i => $user)
     759  {
     760        $user_ids[$i] = $user['id'];
     761        }
     762
     763        return $users;
     764}
     765
     766
    691767/* Function called from UserAdvManager.php - to determine who is expired or not and giving a different display color */
    692768function expiration($id)
     
    701777       
    702778        $query = "
    703         SELECT registration_date
    704     FROM ".USER_INFOS_TABLE."
    705     WHERE user_id = '".$id."'
    706     ;";
     779SELECT registration_date
     780FROM ".USER_INFOS_TABLE."
     781WHERE user_id = '".$id."'
     782;";
    707783        list($registration_date) = mysql_fetch_row(pwg_query($query));
    708784
     
    734810        }
    735811}
     812
    736813
    737814/**
     
    811888}
    812889
    813 /* Function called from maintain.inc.php - to determine if database upgrade is needed */
     890/* Function called from maintain.inc.php - to check if database upgrade is needed */
    814891function table_exist($table)
    815892{
Note: See TracChangeset for help on using the changeset viewer.