[geeklog-cvs] Geeklog-1.x/public_html/admin user.php,1.195,1.196

Blaine Lang blaine at qs1489.pair.com
Sun Nov 25 00:19:05 EST 2007


Update of /cvsroot/geeklog/Geeklog-1.x/public_html/admin
In directory qs1489.pair.com:/tmp/cvs-serv5679

Modified Files:
	user.php 
Log Message:
Added user 'batch admin' feature to send out account reminders to users that have not frequented the site recently

Index: user.php
===================================================================
RCS file: /cvsroot/geeklog/Geeklog-1.x/public_html/admin/user.php,v
retrieving revision 1.195
retrieving revision 1.196
diff -C2 -d -r1.195 -r1.196
*** user.php	23 Nov 2007 12:40:49 -0000	1.195
--- user.php	25 Nov 2007 05:19:03 -0000	1.196
***************
*** 697,701 ****
      $user_templates = new Template($_CONF['path_layout'] . 'admin/user');
      $user_templates->set_file (array ('form' => 'batchdelete.thtml',
!                                       'options' => 'batchdelete_options.thtml'));
      $user_templates->set_var ('site_admin_url', $_CONF['site_admin_url']);
      $user_templates->set_var ('usr_type', $usr_type);
--- 697,702 ----
      $user_templates = new Template($_CONF['path_layout'] . 'admin/user');
      $user_templates->set_file (array ('form' => 'batchdelete.thtml',
!                                       'options' => 'batchdelete_options.thtml',
!                                       'reminder' => 'reminder.thtml'));
      $user_templates->set_var ('site_admin_url', $_CONF['site_admin_url']);
      $user_templates->set_var ('usr_type', $usr_type);
***************
*** 762,773 ****
  
      $header_arr[] = array('text' => $LANG28[7], 'field' => 'email', 'sort' => true);
  
!     $text_arr = array(
!         'has_menu'     => true,
!         'has_extras'   => true,
!         'title'        => $LANG28[54],
!         'icon'         => $_CONF['layout_url'] . '/images/icons/user.' . $_IMAGE_TYPE,
!         'form_url'     => $_CONF['site_admin_url'] . "/user.php?mode=batchdelete&usr_type=$usr_type&usr_time=$usr_time",
!         'help_url'     => ''
      );
  
--- 763,783 ----
  
      $header_arr[] = array('text' => $LANG28[7], 'field' => 'email', 'sort' => true);
+     $header_arr[] = array('text' => 'Reminders', 'field' => 'num_reminders', 'sort' => true);
+     $menu_arr = array (
+                     array('url' => $_CONF['site_admin_url'] . '/user.php',
+                           'text' => $LANG28[11]),
+                     array('url' => $_CONF['site_admin_url'] . '/user.php?mode=importform',
+                           'text' => $LANG28[23]),
+                     array('url' => $_CONF['site_admin_url'],
+                           'text' => $LANG_ADMIN['admin_home'])
+     );
  
!     $text_arr = array('has_menu'     => true,
!                       'has_extras'   => true,
!                       'title'        => $LANG28[54],
!                       'instructions' => "$desc",
!                       'icon'         => $_CONF['layout_url'] . '/images/icons/user.' . $_IMAGE_TYPE,
!                       'form_url'     => $_CONF['site_admin_url'] . "/user.php?mode=batchdelete&usr_type=$usr_type&usr_time=$usr_time",
!                       'help_url'     => ''
      );
  
***************
*** 778,782 ****
      $select_userinfo = ", lastlogin as lastlogin_short $list_sql ";
  
!     $sql = "SELECT {$_TABLES['users']}.uid,username,fullname,email,photo,status,regdate$select_userinfo "
           . "FROM {$_TABLES['users']} $join_userinfo WHERE 1=1";
  
--- 788,792 ----
      $select_userinfo = ", lastlogin as lastlogin_short $list_sql ";
  
!     $sql = "SELECT {$_TABLES['users']}.uid,username,fullname,email,photo,status,regdate,num_reminders$select_userinfo "
           . "FROM {$_TABLES['users']} $join_userinfo WHERE 1=1";
  
***************
*** 804,809 ****
      );
  
      $display .= ADMIN_list ("user", "ADMIN_getListField_users", $header_arr, $text_arr,
!         $query_arr, $defsort_arr, '', '', $listoptions);
  
      // $display .= "<input type=\"hidden\" name=\"mode\" value=\"batchdeleteexec\"></form>" . LB;
--- 814,824 ----
      );
  
+     $user_templates->set_var('lang_reminder',$LANG28[77]);
+     $user_templates->set_var('action_reminder',$LANG28[78]);
+     $user_templates->parse('test','reminder');
+ 
+     $form_arr['top'] = $user_templates->get_var('test');
      $display .= ADMIN_list ("user", "ADMIN_getListField_users", $header_arr, $text_arr,
!         $query_arr, $defsort_arr, '', '', $listoptions,$form_arr);
  
      // $display .= "<input type=\"hidden\" name=\"mode\" value=\"batchdeleteexec\"></form>" . LB;
***************
*** 851,854 ****
--- 866,947 ----
  
  
+ 
+ /**
+ * This function used to send out reminders to users to access the site or account may be deleted
+ *
+ * @return   string          HTML with success or error message
+ *
+ */
+ function batchreminders()
+ {
+     global $_CONF, $_TABLES, $LANG28;
+     $msg = '';
+     $user_list = array();
+     if (isset($_POST['delitem'])) {
+         $user_list = $_POST['delitem'];
+     }
+ 
+     if (count($user_list) == 0) {
+         $msg = $LANG28[79] . "<br>";
+     }
+     $c = 0;
+ 
+     if (isset($_POST['delitem']) AND is_array($_POST['delitem'])) {
+         foreach($_POST['delitem'] as $delitem) {
+             $userid = COM_applyFilter($delitem);
+             $useremail = DB_getItem ($_TABLES['users'], 'email', "uid = '$userid'");
+             $username = DB_getItem ($_TABLES['users'], 'username', "uid = '$userid'");
+             $lastlogin = DB_getItem ($_TABLES['userinfo'], 'lastlogin', "uid = '$userid'");
+             $lasttime = COM_getUserDateTimeFormat ($lastlogin);
+             if (file_exists ($_CONF['path_data'] . 'reminder_email.txt')) {
+                 $template = new Template ($_CONF['path_data']);
+                 $template->set_file (array ('mail' => 'reminder_email.txt'));
+                 $template->set_var ('site_url', $_CONF['site_url']);
+                 $template->set_var ('site_name', $_CONF['site_name']);
+                 $template->set_var ('site_slogan', $_CONF['site_slogan']);
+                 $template->set_var ('lang_username', $LANG04[2]);
+                 $template->set_var ('username', $username);
+                 $template->set_var ('name', COM_getDisplayName ($uid));
+                 $template->set_var ('lastlogin',$lasttime[0]);
+ 
+                 $template->parse ('output', 'mail');
+                 $mailtext = $template->get_var ('output');
+             } else {
+                 if ($lastlogin == 0) {
+                     $mailtext = $LANG28[83] . "\n\n";
+                 } else {
+                     $mailtext = sprintf($LANG28[82],$lasttime[0]) . "\n\n";
+                 }
+                 $mailtext .= sprintf($LANG28[84],$username) . "\n";
+                 $mailtext .= sprintf($LANG28[85],$_CONF['site_url'] . '/users.php?mode=getpassword') . "\n\n";
+ 
+             }
+             $subject = sprintf($LANG28[81],$_CONF['site_name']);
+             if ($_CONF['site_mail'] !== $_CONF['noreply_mail']) {
+                 $mailfrom = $_CONF['noreply_mail'];
+                 global $LANG_LOGIN;
+                 $mailtext .= LB . LB . $LANG04[159];
+             } else {
+                 $mailfrom = $_CONF['site_mail'];
+             }
+ 
+             if (COM_mail ($useremail, $subject, $mailtext, $mailfrom)) {
+                 DB_query("UPDATE {$_TABLES['users']} SET num_reminders=num_reminders+1 WHERE uid=$userid");
+                 $c++;
+             } else {
+                 COM_errorLog("Error attempting to send account reminder to use:$username ($userid)");
+             }
+         }
+     }
+ 
+     // Since this function is used for deletion only, its necessary to say that
+     // zero where deleted instead of just leaving this message away.
+     COM_numberFormat($c); // just in case we have more than 999)..
+     $msg .= "{$LANG28[80]}: $c<br>\n";
+     return $msg;
+ 
+ }
+ 
+ 
  /**
  * This function allows the administrator to import batches of users
***************
*** 1103,1106 ****
--- 1196,1205 ----
      $display .= batchdelete();
      $display .= COM_siteFooter();
+ } elseif ($mode == 'Send Reminder') {
+     $msg = batchreminders();
+     $display .= COM_siteHeader ('menu', $LANG28[11])
+         . COM_showMessage($msg)
+         . batchdelete()
+         . COM_siteFooter();
  } else if ($mode == 'batchdeleteexec') {
      $msg = batchdeleteexec();




More information about the geeklog-cvs mailing list