2006-12-02 04:36:16 +00:00
< ? php
2009-07-23 06:55:39 +00:00
2006-12-02 04:36:16 +00:00
/*
2008-12-22 03:15:04 +00:00
* e107 website system
*
* Copyright ( C ) 2001 - 2008 e107 Inc ( e107 . org )
* Released under the terms and conditions of the
* GNU General Public License ( http :// www . gnu . org / licenses / gpl . txt )
*
* Administration Area - Users
*
* $Source : / cvs_backup / e107_0 . 8 / e107_admin / users . php , v $
2009-07-23 15:21:41 +00:00
* $Revision : 1.45 $
* $Date : 2009 - 07 - 23 15 : 21 : 41 $
2009-07-22 17:04:59 +00:00
* $Author : e107coders $
2008-12-22 03:15:04 +00:00
*
2006-12-02 04:36:16 +00:00
*/
2009-07-23 06:55:39 +00:00
require_once ( '../class2.php' );
2009-07-08 06:58:00 +00:00
include_lan ( e_LANGUAGEDIR . e_LANGUAGE . '/lan_user.php' );
2008-12-22 03:15:04 +00:00
if ( ! getperms ( '4' ))
2007-08-06 19:35:17 +00:00
{
2009-07-23 06:55:39 +00:00
header ( 'location:' . $e107 -> url -> getUrl ( 'core:core' , 'main' , 'action=index' ));
2008-12-22 03:15:04 +00:00
exit ;
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
if ( varset ( $_POST [ 'useraction' ]))
2009-07-08 06:58:00 +00:00
{
2009-07-23 06:55:39 +00:00
foreach ( $_POST [ 'useraction' ] as $key => $val )
2009-07-08 06:58:00 +00:00
{
2009-07-23 06:55:39 +00:00
if ( $val )
2009-07-08 07:00:26 +00:00
{
2009-07-23 06:55:39 +00:00
$_POST [ 'useraction' ] = $val ;
$_POST [ 'userip' ] = $_POST [ 'userip' ][ $key ];
$_POST [ 'userid' ] = $key ;
2009-07-08 07:00:26 +00:00
break ;
}
2009-07-08 06:58:00 +00:00
}
}
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == 'userinfo' )
2007-08-06 19:35:17 +00:00
{
2008-12-22 03:15:04 +00:00
header ( 'location:' . e_ADMIN . " userinfo.php? " . $e107 -> tp -> toDB ( $_POST [ 'userip' ]));
2006-12-02 04:36:16 +00:00
exit ;
}
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == 'usersettings' )
2007-08-06 19:35:17 +00:00
{
2009-07-23 06:55:39 +00:00
header ( 'location:' . $e107 -> url -> getUrl ( 'core:user' , 'main' , 'func=settings&id=' . ( int ) $_POST [ 'userid' ]));
2006-12-02 04:36:16 +00:00
exit ;
}
2007-08-06 19:35:17 +00:00
2006-12-02 04:36:16 +00:00
2009-01-18 01:39:20 +00:00
function headerjs ()
{
2009-07-23 06:55:39 +00:00
require_once ( e_HANDLER . 'js_helper.php' );
2009-01-18 01:39:20 +00:00
return " <script type='text/javascript' src=' " . e_FILE_ABS . " jslib/core/admin.js'></script> " ;
}
2009-07-23 06:55:39 +00:00
require_once ( e_HANDLER . 'message_handler.php' );
$emessage = & eMessage :: getInstance ();
if ( isset ( $_POST [ 'delete_rank' ]))
2009-01-18 01:39:20 +00:00
{
2009-07-23 06:55:39 +00:00
foreach ( $_POST [ 'delete_rank' ] as $k => $v )
2009-01-18 01:39:20 +00:00
{
deleteRank ( $k );
}
}
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'updateRanks' ]))
2009-01-11 04:13:01 +00:00
{
updateRanks ();
}
2006-12-02 04:36:16 +00:00
$e_sub_cat = 'users' ;
2009-07-23 06:55:39 +00:00
require_once ( 'auth.php' );
2009-07-08 06:58:00 +00:00
$user = new users ;
2009-07-23 06:55:39 +00:00
require_once ( e_HANDLER . 'form_handler.php' );
require_once ( e_HANDLER . 'userclass_class.php' );
include_once ( e_HANDLER . 'user_extended_class.php' );
require_once ( e_HANDLER . 'validator_class.php' );
require_once ( e_HANDLER . 'user_handler.php' );
// $userMethods = new UserHandler;
2009-07-08 06:58:00 +00:00
// $colList = $userMethods->getNiceNames(TRUE);
2008-12-29 09:31:36 +00:00
$ue = new e107_user_extended ;
2008-12-21 11:07:58 +00:00
$userMethods = new UserHandler ;
2008-06-13 20:20:23 +00:00
$user_data = array ();
2009-07-08 06:58:00 +00:00
$frm = new e_form ;
2009-07-08 10:31:53 +00:00
$rs = new form ;
2008-12-22 03:15:04 +00:00
if ( e_QUERY )
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
$tmp = explode ( '.' , e_QUERY );
2008-12-22 03:15:04 +00:00
$action = $tmp [ 0 ];
$sub_action = varset ( $tmp [ 1 ], '' );
$id = varset ( $tmp [ 2 ], 0 );
$from = varset ( $tmp [ 3 ], 0 );
2009-07-23 06:55:39 +00:00
unset ( $tmp );
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
$from = varset ( $from , 0 );
2006-12-02 04:36:16 +00:00
$amount = 30 ;
2009-07-23 06:55:39 +00:00
if ( $action == 'ranks' )
2008-12-22 03:15:04 +00:00
{
show_ranks ();
}
2006-12-02 04:36:16 +00:00
// ------- Check for Bounces --------------
2007-08-06 19:35:17 +00:00
$bounce_act = '' ;
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'check_bounces' ]))
$bounce_act = 'first_check' ;
if ( isset ( $_POST [ 'delnonbouncesubmit' ]))
$bounce_act = 'delnonbounce' ;
if ( isset ( $_POST [ 'clearemailbouncesubmit' ]))
$bounce_act = 'clearemailbounce' ;
if ( isset ( $_POST [ 'delcheckedsubmit' ]))
$bounce_act = 'delchecked' ;
if ( isset ( $_POST [ 'delallsubmit' ]))
$bounce_act = 'delall' ;
2007-08-06 19:35:17 +00:00
if ( $bounce_act )
{
2009-07-23 06:55:39 +00:00
$user -> check_bounces ( $bounce_act , implode ( ',' , $_POST [ 'delete_email' ]));
require_once ( " footer.php " );
2006-12-02 04:36:16 +00:00
exit ;
}
2007-08-06 19:35:17 +00:00
// ------- Resend Email. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'resend_mail' ]))
2007-08-06 19:35:17 +00:00
{
$user -> resend ( $_POST [ 'resend_id' ], $_POST [ 'resend_key' ], $_POST [ 'resend_name' ], $_POST [ 'resend_email' ]);
2006-12-02 04:36:16 +00:00
}
2007-08-06 19:35:17 +00:00
2006-12-02 04:36:16 +00:00
// ------- Resend Email. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'resend_to_all' ]))
2007-08-06 19:35:17 +00:00
{
2006-12-02 04:36:16 +00:00
$user -> resend_to_all ();
}
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'execute_batch' ]))
2009-07-22 17:04:59 +00:00
{
$user -> process_batch ();
}
2006-12-02 04:36:16 +00:00
2009-07-23 06:55:39 +00:00
2006-12-02 04:36:16 +00:00
// ------- Test Email. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'test_mail' ]))
2007-08-06 19:35:17 +00:00
{
2009-07-23 06:55:39 +00:00
require_once ( e_HANDLER . 'mail_validation_class.php' );
list ( $adminuser , $adminhost ) = split ( " @ " , SITEADMINEMAIL );
2006-12-02 04:36:16 +00:00
$validator = new email_validation_class ;
2009-07-23 06:55:39 +00:00
$validator -> localuser = $adminuser ;
$validator -> localhost = $adminhost ;
$validator -> timeout = 5 ;
$validator -> debug = 1 ;
$validator -> html_debug = 1 ;
2006-12-02 04:36:16 +00:00
$text = " <div style=' " . ADMIN_WIDTH . " '> " ;
ob_start ();
$email_status = $validator -> ValidateEmailBox ( $_POST [ 'test_email' ]);
$text .= ob_get_contents ();
ob_end_clean ();
$text .= " </div> " ;
$caption = $_POST [ 'test_email' ] . " - " ;
2009-07-23 06:55:39 +00:00
$caption .= ( $email_status == 1 ) ? " Valid " : " Invalid " ;
if ( $email_status == 1 )
{
2006-12-02 04:36:16 +00:00
$text .= " <form method='post' action=' " . e_SELF . $qry . " '>
2008-12-22 03:15:04 +00:00
< div style = 'text-align:left' >
< input type = 'hidden' name = 'useraction' value = 'resend' /> \n
< input type = 'hidden' name = 'userid' value = '".$_POST[' test_id ']."' /> \n
< input class = 'button' type = 'submit' name = 'resend_' value = '".USRLAN_112."' /> \n </ div ></ form > \n " ;
$text .= " <div> " ;
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
$ns -> tablerender ( $caption , $text );
unset ( $id , $action , $sub_cation );
2006-12-02 04:36:16 +00:00
}
// ------- Update Options. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'update_options' ]))
2007-08-06 19:35:17 +00:00
{
2008-12-21 11:07:58 +00:00
$temp = array ();
$temp [ 'avatar_upload' ] = ( FILE_UPLOADS ? $_POST [ 'avatar_upload' ] : 0 );
$temp [ 'im_width' ] = $_POST [ 'im_width' ];
$temp [ 'im_height' ] = $_POST [ 'im_height' ];
$temp [ 'photo_upload' ] = ( FILE_UPLOADS ? $_POST [ 'photo_upload' ] : 0 );
$temp [ 'del_unv' ] = $_POST [ 'del_unv' ];
$temp [ 'profile_rate' ] = $_POST [ 'profile_rate' ];
$temp [ 'profile_comments' ] = $_POST [ 'profile_comments' ];
$temp [ 'track_online' ] = $_POST [ 'track_online' ];
$temp [ 'force_userupdate' ] = $_POST [ 'force_userupdate' ];
$temp [ 'memberlist_access' ] = $_POST [ 'memberlist_access' ];
$temp [ 'user_new_period' ] = $_POST [ 'user_new_period' ];
2009-07-23 06:55:39 +00:00
if ( $admin_log -> logArrayDiffs ( $temp , $pref , 'USET_03' ))
2008-12-21 11:07:58 +00:00
{
2009-07-23 06:55:39 +00:00
save_prefs ();
// Only save if changes
2008-12-21 11:07:58 +00:00
$user -> show_message ( USRLAN_1 );
}
else
{
$user -> show_message ( USRLAN_193 );
}
2006-12-02 04:36:16 +00:00
}
// ------- Prune Users. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'prune' ]))
2007-12-09 16:42:23 +00:00
{
2008-12-22 03:15:04 +00:00
$e107cache -> clear ( 'online_menu_member_total' );
$e107cache -> clear ( 'online_menu_member_newest' );
$text = USRLAN_56 . ' ' ;
$bantype = $_POST [ 'prune_type' ];
2009-07-23 06:55:39 +00:00
if ( $bantype == 30 )
// older than 30 days.
2009-06-24 20:10:34 +00:00
{
2009-07-23 06:55:39 +00:00
$bantype = 2 ;
2009-06-24 20:10:34 +00:00
$ins = " AND user_join < " . strtotime ( " -30 days " );
}
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Select ( " user " , " user_id, user_name " , " user_ban= { $bantype } " . $ins ))
2006-12-02 04:36:16 +00:00
{
2008-12-22 03:15:04 +00:00
$uList = $sql -> db_getList ();
2009-07-23 06:55:39 +00:00
foreach ( $uList as $u )
2008-12-22 03:15:04 +00:00
{
$text .= $u [ 'user_name' ] . " " ;
2009-07-23 06:55:39 +00:00
$sql -> db_Delete ( " user " , " user_id=' { $u [ 'user_id' ] } ' " );
$sql -> db_Delete ( " user_extended " , " user_extended_id=' { $u [ 'user_id' ] } ' " );
2008-12-22 03:15:04 +00:00
}
$admin_log -> log_event ( 'USET_04' , str_replace ( array ( '--COUNT--' , '--TYPE--' ), array ( count ( $uList ), $bantype ), USRLAN_160 ), E_LOG_INFORMATIVE );
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
$ns -> tablerender ( USRLAN_57 , " <div style='text-align:center'><b> " . $text . " </b></div> " );
unset ( $text );
2006-12-02 04:36:16 +00:00
}
// ------- Quick Add User --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'adduser' ]))
2008-01-01 12:38:05 +00:00
{
2008-12-22 03:15:04 +00:00
if ( ! $_POST [ 'ac' ] == md5 ( ADMINPWCHANGE ))
2008-01-01 12:38:05 +00:00
{
2008-12-22 03:15:04 +00:00
exit ;
2006-12-02 04:36:16 +00:00
}
2008-12-21 11:07:58 +00:00
$e107cache -> clear ( 'online_menu_member_total' );
$e107cache -> clear ( 'online_menu_member_newest' );
2009-07-23 06:55:39 +00:00
$error = false ;
if ( isset ( $_POST [ 'generateloginname' ]))
2008-06-13 20:20:23 +00:00
{
2008-12-21 11:07:58 +00:00
$_POST [ 'loginname' ] = $userMethods -> generateUserLogin ( $pref [ 'predefinedLoginName' ]);
2008-06-13 20:20:23 +00:00
}
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'generatepassword' ]))
2008-06-13 20:20:23 +00:00
{
2009-07-23 06:55:39 +00:00
$_POST [ 'password1' ] = $userMethods -> generateRandomString ( '**********' );
// 10-char password should be enough
2008-12-21 11:07:58 +00:00
$_POST [ 'password2' ] = $_POST [ 'password1' ];
2008-06-13 20:20:23 +00:00
}
2008-12-21 11:07:58 +00:00
// Now validate everything
2009-07-23 06:55:39 +00:00
$allData = validatorClass :: validateFields ( $_POST , $userMethods -> userVettingInfo , true );
// Do basic validation
validatorClass :: checkMandatory ( 'user_name,user_loginname' , $allData );
// Check for missing fields (email done in userValidation() )
validatorClass :: dbValidateArray ( $allData , $userMethods -> userVettingInfo , 'user' , 0 );
// Do basic DB-related checks
$userMethods -> userValidation ( $allData );
// Do user-specific DB checks
if ( ! isset ( $allData [ 'errors' ][ 'user_password' ]))
{
// No errors in password - keep it outside the main data array
2009-01-11 21:06:52 +00:00
$savePassword = $allData [ 'data' ][ 'user_password' ];
2009-07-23 06:55:39 +00:00
unset ( $allData [ 'data' ][ 'user_password' ]);
// Delete the password value in the output array
2008-01-01 12:38:05 +00:00
}
2009-07-23 06:55:39 +00:00
unset ( $_POST [ 'password1' ]);
// Restrict the scope of this
unset ( $_POST [ 'password2' ]);
if ( ! check_class ( $pref [ 'displayname_class' ], $allData [ 'data' ][ 'user_class' ]))
2008-01-01 12:38:05 +00:00
{
2009-01-11 21:06:52 +00:00
if ( $allData [ 'data' ][ 'user_name' ] != $allData [ 'data' ][ 'user_loginname' ])
2008-12-21 11:07:58 +00:00
{
$allData [ 'errors' ][ 'user_name' ] = ERR_FIELDS_DIFFERENT ;
}
2008-01-01 12:38:05 +00:00
}
2008-12-21 11:07:58 +00:00
if ( count ( $allData [ 'errors' ]))
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
require_once ( e_HANDLER . " message_handler.php " );
$temp = validatorClass :: makeErrorList ( $allData , 'USER_ERR_' , '%n - %x - %t: %v' , '<br />' , $userMethods -> userVettingInfo );
message_handler ( 'P_ALERT' , $temp );
$error = true ;
2008-01-01 12:38:05 +00:00
}
2008-06-13 20:20:23 +00:00
// Always save some of the entered data - then we can redisplay on error
2009-07-23 06:55:39 +00:00
$user_data = & $allData [ 'data' ];
2008-12-22 03:15:04 +00:00
if ( ! $error )
2008-06-13 20:20:23 +00:00
{
2008-12-21 11:07:58 +00:00
$message = '' ;
2008-12-29 09:31:36 +00:00
$user_data [ 'user_password' ] = $userMethods -> HashPassword ( $savePassword , $loginname );
2008-12-21 11:07:58 +00:00
$user_data [ 'user_join' ] = time ();
if ( $userMethods -> needEmailPassword ())
2009-07-23 06:55:39 +00:00
{
// Save separate password encryption for use with email address
$user_data [ 'user_prefs' ] = serialize ( array ( 'email_password' => $userMethods -> HashPassword ( $savePassword , $user_data [ 'user_email' ])));
2008-12-29 09:31:36 +00:00
}
2009-07-23 06:55:39 +00:00
$userMethods -> userClassUpdate ( $allData [ 'data' ], 'userall' );
// Set any initial classes
2008-12-21 11:07:58 +00:00
$userMethods -> addNonDefaulted ( $user_data );
2009-07-23 06:55:39 +00:00
validatorClass :: addFieldTypes ( $userMethods -> userVettingInfo , $allData );
2009-06-12 20:41:35 +00:00
//FIXME - (SecretR) there is a better way to fix this (missing default value, sql error in strict mode - user_realm is to be deleted from DB later)
2009-04-27 10:42:14 +00:00
$allData [ 'data' ][ 'user_realm' ] = '' ;
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Insert ( 'user' , $allData ))
2008-12-21 11:07:58 +00:00
{
2009-07-23 06:55:39 +00:00
// Add to admin log
2008-12-21 11:07:58 +00:00
$admin_log -> log_event ( 'USET_02' , " UName: { $user_data [ 'user_name' ] } ; Email: { $user_data [ 'user_email' ] } " , E_LOG_INFORMATIVE );
// Add to user audit trail
2009-07-23 06:55:39 +00:00
$admin_log -> user_audit ( USER_AUDIT_ADD_ADMIN , $user_data , 0 , $user_data [ 'user_loginname' ]);
$e_event -> trigger ( 'userfull' , $user_data );
// send everything available for user data - bit sparse compared with user-generated signup
if ( isset ( $_POST [ 'sendconfemail' ]))
{
// Send confirmation email to user
require_once ( e_HANDLER . 'mail.php' );
2008-12-29 09:31:36 +00:00
$e_message = str_replace ( array ( '--SITE--' , '--LOGIN--' , '--PASSWORD--' ), array ( SITEURL , $loginname , $savePassword ), USRLAN_185 ) . USRLAN_186 ;
2008-12-21 11:07:58 +00:00
if ( sendemail ( $user_data [ 'user_email' ], USRLAN_187 . SITEURL , $e_message , $user_data [ 'user_login' ], '' , '' ))
{
$message = USRLAN_188 . '<br /><br />' ;
}
else
{
$message = USRLAN_189 . '<br /><br />' ;
}
}
2009-07-23 06:55:39 +00:00
$message .= str_replace ( '--NAME--' , $user_data [ 'user_name' ], USRLAN_174 );
if ( isset ( $_POST [ 'generateloginname' ]))
$message .= '<br /><br />' . USRLAN_173 . ': ' . $loginname ;
if ( isset ( $_POST [ 'generatepassword' ]))
$message .= '<br /><br />' . USRLAN_172 . ': ' . $savePassword ;
unset ( $user_data );
// Don't recycle the data once the user's been accepted without error
2008-01-01 12:38:05 +00:00
}
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
if ( isset ( $message ))
$user -> show_message ( $message );
2006-12-02 04:36:16 +00:00
}
2007-08-06 19:35:17 +00:00
// ------- Bounce --> Unverified --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == " reqverify " )
2007-08-06 19:35:17 +00:00
{
2009-07-23 06:55:39 +00:00
$sql -> db_Select ( " user " , " * " , " user_id=' " . $_POST [ 'userid' ] . " ' " );
2007-08-06 19:35:17 +00:00
$row = $sql -> db_Fetch ();
extract ( $row );
2009-07-23 06:55:39 +00:00
$sql -> db_Update ( " user " , " user_ban='2' WHERE user_id=' " . $_POST [ 'userid' ] . " ' " );
2007-08-06 19:35:17 +00:00
$user -> show_message ( " User now has to verify " );
$action = " main " ;
2009-07-23 06:55:39 +00:00
if ( ! $sub_action )
2006-12-02 04:36:16 +00:00
{
2009-07-23 06:55:39 +00:00
$sub_action = " user_id " ;
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
}
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == " ban " )
{
$user -> user_ban ( $_POST [ 'userid' ]);
}
2007-08-06 19:35:17 +00:00
2006-12-02 04:36:16 +00:00
// ------- Unban User --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == " unban " )
2008-01-01 12:38:05 +00:00
{
2009-07-22 17:04:59 +00:00
$user -> user_unban ( $_POST [ 'userid' ]);
}
// ------- Delete User --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == 'deluser' )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
$user -> user_delete ( $_POST [ 'userid' ], true );
}
// ---- Update User's class --------------------
if ( isset ( $_POST [ 'updateclass' ]))
{
$user -> user_userclass ( $_POST [ 'userid' ], $_POST [ 'userclass' ]);
}
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == 'userclass' )
{
// header('location:'.e_ADMIN.'userclass.php?'.$e107->tp->toDB($_POST['userid'].'.'.e_QUERY));
// exit;
$user -> show_userclass ( $_POST [ 'userid' ]);
2006-12-02 04:36:16 +00:00
}
// ------- Resend Email Confirmation. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == 'resend' )
2008-01-01 12:38:05 +00:00
{
2006-12-02 04:36:16 +00:00
$qry = ( e_QUERY ) ? " ? " . e_QUERY : " " ;
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Select ( " user " , " * " , " user_id=' " . $_POST [ 'userid' ] . " ' " ))
{
2006-12-02 04:36:16 +00:00
$resend = $sql -> db_Fetch ();
$text .= " <form method='post' action=' " . e_SELF . $qry . " '><div style='text-align:center'> \n " ;
$text .= USRLAN_116 . " <b> " . $resend [ 'user_name' ] . " </b><br /><br />
2008-12-22 03:15:04 +00:00
< input type = 'hidden' name = 'resend_id' value = '".$_POST[' userid ']."' /> \n
< input type = 'hidden' name = 'resend_name' value = '".$resend[' user_name ']."' /> \n
< input type = 'hidden' name = 'resend_key' value = '".$resend[' user_sess ']."' /> \n
< input type = 'hidden' name = 'resend_email' value = '".$resend[' user_email ']."' /> \n
< input class = 'button' type = 'submit' name = 'resend_mail' value = '".USRLAN_112."' /> \n </ div ></ form > \n " ;
2006-12-02 04:36:16 +00:00
$caption = USRLAN_112 ;
2009-07-23 06:55:39 +00:00
$ns -> tablerender ( $caption , $text );
require_once ( " footer.php " );
2006-12-02 04:36:16 +00:00
exit ;
}
}
// ------- TEst Email confirmation. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == 'test' )
2008-01-01 12:38:05 +00:00
{
2006-12-02 04:36:16 +00:00
$qry = ( e_QUERY ) ? " ? " . e_QUERY : " " ;
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Select ( " user " , " * " , " user_id=' " . $_POST [ 'userid' ] . " ' " ))
{
2006-12-02 04:36:16 +00:00
$test = $sql -> db_Fetch ();
$text .= " <form method='post' action=' " . e_SELF . $qry . " '><div style='text-align:center'> \n " ;
$text .= USRLAN_117 . " <br /><b> " . $test [ 'user_email' ] . " </b><br /><br />
2008-12-22 03:15:04 +00:00
< input type = 'hidden' name = 'test_email' value = '".$test[' user_email ']."' /> \n
< input type = 'hidden' name = 'test_id' value = '".$_POST[' userid ']."' /> \n
< input class = 'button' type = 'submit' name = 'test_mail' value = '".USRLAN_118."' /> \n </ div ></ form > \n " ;
2006-12-02 04:36:16 +00:00
$caption = USRLAN_118 ;
2009-07-23 06:55:39 +00:00
$ns -> tablerender ( $caption , $text );
require_once ( " footer.php " );
2006-12-02 04:36:16 +00:00
exit ;
}
}
2008-01-01 12:38:05 +00:00
// ------- Make Admin --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == " admin " && getperms ( '3' ))
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
$sql -> db_Select ( " user " , " user_id, user_name " , " user_id=' " . $_POST [ 'userid' ] . " ' " );
2006-12-02 04:36:16 +00:00
$row = $sql -> db_Fetch ();
2009-07-23 06:55:39 +00:00
$sql -> db_Update ( " user " , " user_admin='1' WHERE user_id=' " . $_POST [ 'userid' ] . " ' " );
2008-01-16 22:18:27 +00:00
$admin_log -> log_event ( 'USET_08' , str_replace ( array ( '--UID--' , '--NAME--' ), array ( $row [ 'user_id' ], $row [ 'user_name' ]), USRLAN_164 ), E_LOG_INFORMATIVE );
2007-03-25 02:01:06 +00:00
$user -> show_message ( $row [ 'user_name' ] . " " . USRLAN_3 . " <a href=' " . e_ADMIN . " administrator.php?edit. { $row [ 'user_id' ] } '> " . USRLAN_4 . " </a> " );
2006-12-02 04:36:16 +00:00
$action = " main " ;
2009-07-23 06:55:39 +00:00
if ( ! $sub_action )
{
$sub_action = " user_id " ;
}
if ( ! $id )
{
$id = " DESC " ;
}
2006-12-02 04:36:16 +00:00
}
// ------- Remove Admin --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == " unadmin " && getperms ( '3' ))
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
$sql -> db_Select ( " user " , " * " , " user_id=' " . $_POST [ 'userid' ] . " ' " );
2008-12-22 03:15:04 +00:00
$row = $sql -> db_Fetch ();
extract ( $row );
if ( $user_perms == " 0 " )
{
$user -> show_message ( USRLAN_5 );
}
else
{
2009-07-23 06:55:39 +00:00
$sql -> db_Update ( " user " , " user_admin='0', user_perms='' WHERE user_id=' " . $_POST [ 'userid' ] . " ' " );
2008-12-22 03:15:04 +00:00
$admin_log -> log_event ( 'USET_09' , str_replace ( array ( '--UID--' , '--NAME--' ), array ( $row [ 'user_id' ], $row [ 'user_name' ]), USRLAN_165 ), E_LOG_INFORMATIVE );
$user -> show_message ( $user_name . " " . USRLAN_6 );
$action = " main " ;
2009-07-23 06:55:39 +00:00
if ( ! $sub_action )
{
$sub_action = " user_id " ;
}
if ( ! $id )
{
$id = " DESC " ;
}
2008-12-22 03:15:04 +00:00
}
2006-12-02 04:36:16 +00:00
}
// ------- Approve User. --------------
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'useraction' ]) && $_POST [ 'useraction' ] == " verify " )
2006-12-02 04:36:16 +00:00
{
2009-07-22 17:04:59 +00:00
$user -> user_activate ( $_POST [ 'userid' ]);
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
if ( isset ( $action ) && $action == " uset " )
2008-01-01 12:38:05 +00:00
{
2008-12-22 03:15:04 +00:00
$user -> show_message ( USRLAN_87 );
$action = " main " ;
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
if ( isset ( $action ) && $action == " cu " )
2008-01-01 12:38:05 +00:00
{
2008-12-22 03:15:04 +00:00
$user -> show_message ( USRLAN_88 );
$action = " main " ;
// $sub_action = "user_id";
2006-12-02 04:36:16 +00:00
}
/*
echo " action= " . $action . " <br /> " ;
echo " subaction= " . $sub_action . " <br /> " ;
echo " id= " . $id . " <br /> " ;
echo " from= " . $from . " <br /> " ;
echo " amount= " . $amount . " <br /> " ;
*/
2009-07-23 06:55:39 +00:00
$unverified = $sql -> db_Count ( " user " , " (*) " , " WHERE user_ban = 2 " );
if ( ! e_QUERY )
$action = " main " ;
2008-01-01 12:38:05 +00:00
switch ( $action )
{
2009-07-23 06:55:39 +00:00
case " unverified " :
$user -> show_existing_users ( $action , $sub_action , $id , $from , $amount );
break ;
case " options " :
$user -> show_prefs ();
break ;
2008-12-21 11:07:58 +00:00
case " prune " :
2009-07-23 06:55:39 +00:00
$user -> show_prune ();
break ;
2008-12-21 11:07:58 +00:00
case " create " :
2009-07-23 06:55:39 +00:00
$userMethods -> deleteExpired ();
// Remove time-expired users
$user -> user_add ( $user_data );
break ;
2008-12-21 11:07:58 +00:00
default :
2009-07-23 06:55:39 +00:00
$user -> show_existing_users ( $action , $sub_action , $id , $from , $amount );
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
require_once ( " footer.php " );
2007-12-09 16:42:23 +00:00
class users
{
2009-07-08 06:58:00 +00:00
var $fields = array ();
var $fieldpref = array ();
2009-07-17 07:53:13 +00:00
var $sortorder = " asc " ;
var $sortorderrev = " desc " ;
var $sortfield = " user_id " ;
var $from = 0 ;
2009-07-08 06:58:00 +00:00
function users ()
2007-12-09 16:42:23 +00:00
{
2009-07-23 06:55:39 +00:00
global $pref , $user_pref , $sql , $tp ;
if ( isset ( $pref [ 'admin_user_disp' ]))
2007-12-09 16:42:23 +00:00
{
2009-07-23 06:55:39 +00:00
$user_pref [ 'admin_users_columns' ] = ( $pref [ 'admin_user_disp' ]) ? explode ( " | " , $pref [ 'admin_user_disp' ]) : array ( 'user_status' , 'user_name' , 'user_class' );
save_prefs ( 'user' );
unset ( $pref [ 'admin_user_disp' ]);
2009-07-17 07:53:13 +00:00
save_prefs ();
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
$this -> usersSaveColumnPref ();
$this -> fieldpref = ( ! $user_pref [ 'admin_users_columns' ]) ? array ( 'user_name' , 'user_class' ) : $user_pref [ 'admin_users_columns' ];
2009-07-08 06:58:00 +00:00
2009-07-23 06:55:39 +00:00
/* if ( e_QUERY )
2009-07-17 07:53:13 +00:00
{
2009-07-23 06:55:39 +00:00
$tmp = explode ( '.' , e_QUERY );
$action = $tmp [ 0 ]; // main
$sub_action = varset ( $tmp [ 1 ], '' );
$id = varset ( $tmp [ 2 ], 0 );
$from = varset ( $tmp [ 3 ], 0 );
unset ( $tmp );
2009-07-17 07:53:13 +00:00
} */
2009-07-23 06:55:39 +00:00
global $sub_action , $id , $from ;
if ( $from )
{
$this -> sortfield = $sub_action ;
2009-07-17 07:53:13 +00:00
$this -> sortorder = $id ;
$this -> sortorderrev = ( $this -> sortorder == 'asc' ) ? 'desc' : 'asc' ;
$this -> from = $from ;
}
2009-07-23 06:55:39 +00:00
$this -> fields = array ( 'checkboxes' => array ( 'title' => '' , 'width' => '3%' , 'forced' => true , 'thclass' => 'center first' ), 'user_id' => array ( 'title' => 'Id' , 'width' => '5%' , 'forced' => true ), 'user_status' => array ( 'title' => ADLAN_134 , 'width' => 'auto' ), 'user_name' => array ( 'title' => LAN_USER_01 , 'type' => 'text' , 'width' => 'auto' , 'thclass' => 'left first' ),
// Display name
'user_loginname' => array ( 'title' => LAN_USER_02 , 'type' => 'text' , 'width' => 'auto' ),
// User name
'user_login' => array ( 'title' => LAN_USER_03 , 'type' => 'text' , 'width' => 'auto' ),
// Real name (no real vetting)
'user_customtitle' => array ( 'title' => LAN_USER_04 , 'type' => 'text' , 'width' => 'auto' ),
// No real vetting
'user_password' => array ( 'title' => LAN_USER_05 , 'type' => 'text' , 'width' => 'auto' ), 'user_sess' => array ( 'title' => LAN_USER_06 , 'type' => 'text' , 'width' => 'auto' ),
// Photo
'user_image' => array ( 'title' => LAN_USER_07 , 'type' => 'text' , 'width' => 'auto' ),
// Avatar
'user_email' => array ( 'title' => LAN_USER_08 , 'type' => 'text' , 'width' => 'auto' ), 'user_signature' => array ( 'title' => LAN_USER_09 , 'type' => 'text' , 'width' => 'auto' ), 'user_hideemail' => array ( 'title' => LAN_USER_10 , 'type' => 'int' , 'width' => 'auto' ), 'user_xup' => array ( 'title' => LAN_USER_11 , 'type' => 'text' , 'width' => 'auto' ), 'user_class' => array ( 'title' => LAN_USER_12 , 'type' => 'class' ), 'user_join' => array ( 'title' => LAN_USER_14 , 'width' => 'auto' ), 'user_lastvisit' => array ( 'title' => LAN_USER_15 , 'width' => 'auto' ), 'user_currentvisit' => array ( 'title' => LAN_USER_16 , 'width' => 'auto' ), 'user_comments' => array ( 'title' => LAN_USER_17 , 'width' => 'auto' ), 'user_ip' => array ( 'title' => LAN_USER_18 , 'width' => 'auto' ), 'user_ban' => array ( 'title' => LAN_USER_19 , 'width' => 'auto' ), 'user_prefs' => array ( 'title' => LAN_USER_20 , 'width' => 'auto' ), 'user_visits' => array ( 'title' => LAN_USER_21 , 'width' => 'auto' ), 'user_admin' => array ( 'title' => LAN_USER_22 , 'width' => 'auto' ), 'user_perms' => array ( 'title' => LAN_USER_23 , 'width' => 'auto' ), 'user_pwchange' => array ( 'title' => LAN_USER_24 , 'width' => 'auto' ),);
$sql -> db_Select ( " user_extended_struct " );
while ( $row = $sql -> db_Fetch ())
2007-12-09 16:42:23 +00:00
{
2009-07-08 06:58:00 +00:00
$field = " user_ " . $row [ 'user_extended_struct_name' ];
$title = ucfirst ( str_replace ( " user_ " , " " , $field ));
2009-07-23 06:55:39 +00:00
$this -> fields [ $field ] = array ( 'title' => $title , 'width' => 'auto' );
2007-12-09 16:42:23 +00:00
}
2009-07-23 06:55:39 +00:00
$this -> fields [ 'options' ] = array ( 'title' => LAN_OPTIONS , 'width' => '10%' , " thclass " => " center last " , 'forced' => true );
2009-07-22 17:04:59 +00:00
}
2009-07-23 06:55:39 +00:00
function process_batch ()
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
list ( $type , $tmp , $uclass ) = explode ( " _ " , $_POST [ 'execute_batch' ]);
2009-07-22 17:04:59 +00:00
$method = " user_ " . $type ;
2009-07-23 06:55:39 +00:00
if ( method_exists ( $this , $method ) && isset ( $_POST [ 'user_selected' ]))
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
foreach ( $_POST [ 'user_selected' ] as $userid )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
if ( $type == 'userclass' )
{
$append = ( $uclass ) ? 'append' : FALSE ;
$this -> $method ( $userid , array ( $uclass ), $append );
}
else
{
$this -> $method ( $userid );
}
2009-07-22 17:04:59 +00:00
}
}
}
2009-07-23 06:55:39 +00:00
function user_delete ( $userid , $confirm = false )
{
global $sql , $admin_log , $e_event , $ns ;
if ( $_POST [ 'confirm' ] || ! $confirm )
2009-07-22 17:04:59 +00:00
{
$uid = ( $confirm ) ? intval ( $_POST [ 'userid' ]) : $userid ;
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Delete ( " user " , " user_id= " . $uid . " AND user_perms != '0' AND user_perms != '0.' " ))
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
$sql -> db_Delete ( " user_extended " , " user_extended_id=' " . $uid . " ' " );
2009-07-22 17:04:59 +00:00
$admin_log -> log_event ( 'USET_07' , str_replace ( '--UID--' , $uid , USRLAN_163 ), E_LOG_INFORMATIVE );
2009-07-23 06:55:39 +00:00
$e_event -> trigger ( 'userdelete' , $temp = array ( 'user_id' => $uid ));
2009-07-22 17:04:59 +00:00
$this -> show_message ( USRLAN_10 );
}
2009-07-23 06:55:39 +00:00
if ( ! $sub_action )
{
$sub_action = " user_id " ;
}
if ( ! $id )
{
$id = " DESC " ;
}
2009-07-22 17:04:59 +00:00
}
else
2009-07-23 06:55:39 +00:00
{
// Put up confirmation
if ( $sql -> db_Select ( " user " , " * " , " user_id=' " . $_POST [ 'userid' ] . " ' " ))
2009-07-22 17:04:59 +00:00
{
$row = $sql -> db_Fetch ();
$qry = ( e_QUERY ) ? " ? " . e_QUERY : " " ;
$text .= " <form method='post' action=' " . e_SELF . $qry . " '><div style='text-align:center'> \n " ;
$text .= " <div>
< input type = 'hidden' name = 'useraction' value = 'deluser' />
2009-07-23 06:55:39 +00:00
< input type = 'hidden' name = 'userid' value = '{$row[' user_id ']}' /></ div > " .USRLAN_13. "
2009-07-22 17:04:59 +00:00
< br />< br />< span class = 'indent' > #{$row['user_id']} : {$row['user_name']}</span>
< br />< br />
< input type = 'submit' class = 'button' name = 'confirm' value = '".USRLAN_17."' />
& nbsp ; & nbsp ;
< input type = 'button' class = 'button' name = 'cancel' value = '".LAN_CANCEL."' onclick = \ " location.href=' " . e_SELF . $qry . " ' \" />
</ div >
</ form >
" ;
2009-07-23 06:55:39 +00:00
$ns -> tablerender ( USRLAN_16 , $text );
require_once ( " footer.php " );
2009-07-22 17:04:59 +00:00
exit ;
}
}
}
2009-07-23 06:55:39 +00:00
function user_unban ( $userid )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
global $sql , $admin_log ;
$sql -> db_Select ( " user " , " user_name,user_ip " , " user_id=' " . $userid . " ' " );
2009-07-22 17:04:59 +00:00
$row = $sql -> db_Fetch ();
2009-07-23 06:55:39 +00:00
$sql -> db_Update ( " user " , " user_ban='0' WHERE user_id=' " . $userid . " ' " );
$sql -> db_Delete ( " banlist " , " banlist_ip=' { $row [ 'user_ip' ] } ' " );
2009-07-22 17:04:59 +00:00
$admin_log -> log_event ( 'USET_06' , str_replace ( array ( '--UID--' , '--NAME--' ), array ( $userid , $row [ 'user_name' ]), USRLAN_162 ), E_LOG_INFORMATIVE );
$this -> show_message ( USRLAN_9 . " ( " . $userid . " . " . $row [ 'user_name' ] . " ) " );
$action = " main " ;
2009-07-23 06:55:39 +00:00
if ( ! $sub_action )
{
$sub_action = " user_id " ;
}
2009-07-22 17:04:59 +00:00
}
2009-07-23 06:55:39 +00:00
2009-07-22 17:04:59 +00:00
function user_activate ( $userid )
{
2009-07-23 06:55:39 +00:00
global $sql , $e_event , $admin_log , $userMethods ;
$uid = intval ( $userid );
if ( $sql -> db_Select ( " user " , " * " , " user_id=' " . $uid . " ' " ))
2009-07-22 17:04:59 +00:00
{
if ( $row = $sql -> db_Fetch ())
{
$dbData = array ();
$dbData [ 'WHERE' ] = " user_id= " . $uid ;
2009-07-23 06:55:39 +00:00
$dbData [ 'data' ] = array ( 'user_ban' => '0' , 'user_sess' => '' );
2009-07-22 17:04:59 +00:00
// Add in the initial classes as necessary
2009-07-23 06:55:39 +00:00
if ( $userMethods -> userClassUpdate ( $row , 'userall' ))
2009-07-22 17:04:59 +00:00
{
$dbData [ 'data' ][ 'user_class' ] = $row [ 'user_class' ];
}
$userMethods -> addNonDefaulted ( $dbData );
2009-07-23 06:55:39 +00:00
validatorClass :: addFieldTypes ( $userMethods -> userVettingInfo , $dbData );
2009-07-22 17:04:59 +00:00
$sql -> db_Update ( 'user' , $dbData );
$admin_log -> log_event ( 'USET_10' , str_replace ( array ( '--UID--' , '--NAME--' ), array ( $row [ 'user_id' ], $row [ 'user_name' ]), USRLAN_166 ), E_LOG_INFORMATIVE );
2009-07-23 06:55:39 +00:00
$e_event -> trigger ( 'userfull' , $row );
// 'New' event
2009-07-22 17:04:59 +00:00
$this -> show_message ( USRLAN_86 . " (# " . $userid . " : " . $row [ 'user_name' ] . " ) " );
2009-07-23 06:55:39 +00:00
if ( ! $action )
{
$action = " main " ;
}
if ( ! $sub_action )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
$sub_action = " user_id " ;
}
if ( ! $id )
{
$id = " DESC " ;
}
if ( $pref [ 'user_reg_veri' ] == 2 )
{
if ( $sql -> db_Select ( " user " , " user_email, user_name " , " user_id = ' { $uid } ' " ))
2009-07-22 17:04:59 +00:00
{
$row = $sql -> db_Fetch ();
$message = USRLAN_114 . " " . $row [ 'user_name' ] . " , \n \n " . USRLAN_122 . " " . SITENAME . " . \n \n " . USRLAN_123 . " \n \n " ;
2009-07-23 06:55:39 +00:00
$message .= str_replace ( " { SITEURL} " , SITEURL , USRLAN_139 );
require_once ( e_HANDLER . " mail.php " );
if ( sendemail ( $row [ 'user_email' ], USRLAN_113 . " " . SITENAME , $message ))
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
// echo str_replace("\n","<br>",$message);
2009-07-22 17:04:59 +00:00
$this -> show_message ( " Email sent to: " . $row [ 'user_name' ]);
}
else
{
$this -> show_message ( " Failed to send to: " . $row [ 'user_name' ], 'error' );
}
}
}
}
}
2009-07-08 06:58:00 +00:00
}
2009-07-23 06:55:39 +00:00
function usersSaveColumnPref ()
2009-07-08 06:58:00 +00:00
{
2009-07-23 06:55:39 +00:00
global $pref , $user_pref , $admin_log ;
if ( isset ( $_POST [ 'submit-e-columns' ]))
2007-12-09 16:42:23 +00:00
{
2009-07-08 06:58:00 +00:00
$user_pref [ 'admin_users_columns' ] = $_POST [ 'e-columns' ];
save_prefs ( 'user' );
2006-12-02 04:36:16 +00:00
}
2009-07-08 06:58:00 +00:00
}
2009-07-23 06:55:39 +00:00
2009-07-17 07:53:13 +00:00
function showUserStatus ( $row )
{
2009-07-23 06:55:39 +00:00
if ( $row [ 'user_perms' ] == " 0 " )
{
$text .= " <div class='fcaption' style='padding-left:3px;padding-right:3px;text-align:center;white-space:nowrap'> " . LAN_MAINADMIN . " </div> " ;
}
else
if ( $row [ 'user_admin' ])
{
$text .= " <div class='fcaption' style='padding-left:3px;padding-right:3px;;text-align:center'><a href=' " . e_SELF . " ?main.user_admin. " . ( $id == " desc " ? " asc " : " desc " ) . " '> " . LAN_ADMIN . " </a></div> " ;
}
else
if ( $row [ 'user_ban' ] == 1 )
{
2009-07-17 07:53:13 +00:00
$text .= " <div class='fcaption' style='padding-left:3px;padding-right:3px;text-align:center;white-space:nowrap'><a href=' " . e_SELF . " ?main.user_ban. " . ( $id == " desc " ? " asc " : " desc " ) . " '> " . LAN_BANNED . " </a></div> " ;
}
2009-07-23 06:55:39 +00:00
else
if ( $row [ 'user_ban' ] == 2 )
{
$text .= " <div class='fcaption' style='padding-left:3px;padding-right:3px;text-align:center;white-space:nowrap' > " . LAN_NOTVERIFIED . " </div> " ;
}
else
if ( $row [ 'user_ban' ] == 3 )
{
$text .= " <div class='fcaption' style='padding-left:3px;padding-right:3px;text-align:center;white-space:nowrap' > " . LAN_BOUNCED . " </div> " ;
}
else
{
$text .= " " ;
}
return $text ;
2009-07-17 07:53:13 +00:00
}
2009-07-23 06:55:39 +00:00
2009-07-17 07:53:13 +00:00
function showUserOptions ( $row )
{
extract ( $row );
$text .= " <div>
< input type = 'hidden' name = 'userid[{$user_id}]' value = '{$user_id}' />
< input type = 'hidden' name = 'userip[{$user_id}]' value = '{$user_ip}' />
< select name = 'useraction[{$user_id}]' onchange = 'this.form.submit()' class = 'tbox' style = 'width:75%' >
< option selected = 'selected' value = '' >& nbsp ; </ option > " ;
2009-07-23 06:55:39 +00:00
if ( $user_perms != " 0 " )
{
$text .= " <option value='userinfo'> " . USRLAN_80 . " </option>
2009-07-17 07:53:13 +00:00
< option value = 'usersettings' > " .LAN_EDIT. " </ option > " ;
2009-07-23 06:55:39 +00:00
switch ( $user_ban )
{
case 0 :
$text .= " <option value='ban'> " . USRLAN_30 . " </option> \n " ;
break ;
case 1 :
// Banned user
$text .= " <option value='unban'> " . USRLAN_33 . " </option> \n " ;
break ;
case 2 :
// Unverified
$text .= " <option value='ban'> " . USRLAN_30 . " </option>
2009-07-17 07:53:13 +00:00
< option value = 'verify' > " .USRLAN_32. " </ option >
< option value = 'resend' > " .USRLAN_112. " </ option >
< option value = 'test' > " .USRLAN_118. " </ option > " ;
2009-07-23 06:55:39 +00:00
break ;
case 3 :
// Bounced
$text .= " <option value='ban'> " . USRLAN_30 . " </option>
2009-07-17 07:53:13 +00:00
< option value = 'reqverify' > " .USRLAN_181. " </ option >
< option value = 'verify' > " .USRLAN_182. " </ option >
< option value = 'test' > " .USRLAN_118. " </ option > " ;
2009-07-23 06:55:39 +00:00
break ;
default :
}
if ( ! $user_admin && ! $user_ban && $user_ban != 2 && getperms ( '3' ))
{
$text .= " <option value='admin'> " . USRLAN_35 . " </option> \n " ;
}
else
if ( $user_admin && $user_perms != " 0 " && getperms ( '3' ))
2009-07-17 07:53:13 +00:00
{
2009-07-23 06:55:39 +00:00
$text .= " <option value='unadmin'> " . USRLAN_34 . " </option> \n " ;
2009-07-17 07:53:13 +00:00
}
2009-07-23 06:55:39 +00:00
}
if ( $user_perms == " 0 " && ! getperms ( " 0 " ))
{
$text .= " " ;
}
elseif ( $user_id != USERID || getperms ( " 0 " ))
{
$text .= " <option value='userclass'> " . USRLAN_36 . " </option> \n " ;
}
if ( $user_perms != " 0 " )
{
$text .= " <option value='deluser'> " . LAN_DELETE . " </option> \n " ;
}
$text .= " </select></div> " ;
2009-07-17 07:53:13 +00:00
return $text ;
}
2009-07-23 06:55:39 +00:00
function show_search_filter ()
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
// TODO - This is to be replaced with a generic search-filter class element.
$text = " <form method='post' action=' " . e_SELF . " ? " . e_QUERY . " '>
2009-07-22 17:04:59 +00:00
< table class = 'adminform' > \n " ;
$text .= " <tr><td><input class='tbox' type='text' name='searchquery' size='20' value='' maxlength='50' /> \n
< input class = 'button' type = 'submit' name = 'searchsubmit' value = '".USRLAN_90."' /> \n
\n " ;
$text .= " </td></tr></table>
</ form > \n " ;
return $text ;
}
2009-07-08 06:58:00 +00:00
2009-07-23 06:55:39 +00:00
function show_existing_users ( $action , $sub_action , $id , $from , $amount )
2009-07-08 06:58:00 +00:00
{
2009-07-23 06:55:39 +00:00
global $sql , $frm , $ns , $tp , $mySQLdefaultdb , $pref , $unverified , $userMethods ;
$e107 = e107 :: getInstance ();
2009-07-22 17:04:59 +00:00
$text = " <div> " . $this -> show_search_filter ();
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'searchquery' ]) && $_POST [ 'searchquery' ] != " " )
2006-12-02 04:36:16 +00:00
{
2008-06-06 19:14:20 +00:00
$_POST [ 'searchquery' ] = $tp -> toDB ( trim ( $_POST [ 'searchquery' ]));
2009-07-23 06:55:39 +00:00
$query = 'WHERE ' . $query .= ( strpos ( $_POST [ 'searchquery' ], " @ " ) !== false ) ? " user_email REGEXP(' " . $_POST [ 'searchquery' ] . " ') OR " : " " ;
$query .= ( strpos ( $_POST [ 'searchquery' ], " . " ) !== false ) ? " user_ip REGEXP(' " . $_POST [ 'searchquery' ] . " ') OR " : " " ;
foreach ( $this -> fieldpref as $disp )
2006-12-02 04:36:16 +00:00
{
2008-12-21 11:07:58 +00:00
$query .= $disp . " REGEXP(' " . $_POST [ 'searchquery' ] . " ') OR " ;
2006-12-02 04:36:16 +00:00
}
$query .= " user_login REGEXP(' " . $_POST [ 'searchquery' ] . " ') OR " ;
$query .= " user_name REGEXP(' " . $_POST [ 'searchquery' ] . " ') " ;
2009-07-23 06:55:39 +00:00
if ( $action == 'unverified' )
2006-12-02 04:36:16 +00:00
{
2008-12-22 03:15:04 +00:00
$query .= ' AND user_ban = 2 ' ;
2006-12-02 04:36:16 +00:00
}
2008-12-22 03:15:04 +00:00
$query .= ' ORDER BY user_id' ;
}
else
2008-12-21 11:07:58 +00:00
{
2008-12-22 03:15:04 +00:00
$query = '' ;
2009-07-23 06:55:39 +00:00
if ( $action == 'unverified' )
2006-12-02 04:36:16 +00:00
{
2008-12-22 03:15:04 +00:00
$query = 'WHERE user_ban = 2 ' ;
2006-12-02 04:36:16 +00:00
}
2008-12-22 03:15:04 +00:00
$query .= 'ORDER BY ' . ( $sub_action ? $sub_action : 'user_id' ) . ' ' . ( $id ? $id : 'DESC' ) . " LIMIT $from , $amount " ;
2006-12-02 04:36:16 +00:00
}
2008-12-22 03:15:04 +00:00
// $user_total = db_Count($table, $fields = '(*)',
$qry_insert = 'SELECT u.*, ue.* FROM `#user` AS u LEFT JOIN `#user_extended` AS ue ON ue.user_extended_id = u.user_id ' ;
2009-07-23 06:55:39 +00:00
if ( $user_total = $sql -> db_Select_gen ( $qry_insert . $query ))
2008-12-21 11:07:58 +00:00
{
2009-07-08 06:58:00 +00:00
$text .= " <form method='post' action=' " . e_SELF . " ? " . e_QUERY . " '>
< fieldset id = 'core-users-list' >
< legend class = 'e-hideme' > " .NWSLAN_4. " </ legend >
2009-07-23 06:55:39 +00:00
< table cellpadding = '0' cellspacing = '0' class = 'adminlist' > " . $frm->colGroup ( $this->fields , $this->fieldpref ). $frm->thead ( $this->fields , $this->fieldpref , " main . [ FIELD ] . [ ASC ] . [ FROM ] " ). " < tbody > " ;
2008-12-22 03:15:04 +00:00
while ( $row = $sql -> db_Fetch ())
2008-12-21 11:07:58 +00:00
{
2006-12-02 04:36:16 +00:00
extract ( $row );
$text .= " <tr>
2009-07-22 17:04:59 +00:00
< td class = 'center' > " . $frm->checkbox ('user_selected[]', $user_id ). " </ td >
< td class = 'center' style = 'width:5%; text-align:center' > { $user_id } </ td > " ;
2008-12-21 11:07:58 +00:00
// Display Chosen options
$datefields = array ( " user_lastpost " , " user_lastvisit " , " user_join " , " user_currentvisit " );
$boleanfields = array ( " user_admin " , " user_hideemail " , " user_ban " );
2009-07-23 06:55:39 +00:00
foreach ( $this -> fieldpref as $disp )
2006-12-02 04:36:16 +00:00
{
2009-07-08 06:58:00 +00:00
$text .= " <td style='white-space:nowrap'> " ;
2009-07-23 06:55:39 +00:00
if ( $disp == 'user_class' )
2008-12-21 11:07:58 +00:00
{
if ( $user_class )
{
2009-07-23 06:55:39 +00:00
$tmp = explode ( " , " , $user_class );
while ( list ( $key , $class_id ) = each ( $tmp ))
2008-12-21 11:07:58 +00:00
{
2008-12-21 22:17:05 +00:00
$text .= $e107 -> user_class -> uc_get_classname ( $class_id ) . " <br /> \n " ;
2008-12-21 11:07:58 +00:00
}
}
else
{
$text .= " " ;
}
}
2009-07-23 06:55:39 +00:00
elseif ( $disp == 'user_ip' )
2008-12-21 16:19:29 +00:00
{
$text .= $e107 -> ipDecode ( $user_ip );
}
2008-12-21 11:07:58 +00:00
elseif ( in_array ( $disp , $boleanfields ))
{
2009-07-23 06:55:39 +00:00
$text .= ( $row [ $disp ] == 1 ) ? ADMIN_TRUE_ICON : '' ;
2008-12-21 11:07:58 +00:00
}
2009-07-23 06:55:39 +00:00
elseif ( in_array ( $disp , $datefields ))
2008-12-21 11:07:58 +00:00
{
2008-12-22 03:15:04 +00:00
$text .= ( $row [ $disp ]) ? strftime ( $pref [ 'shortdate' ], $row [ $disp ]) . ' ' : ' ' ;
2008-12-21 11:07:58 +00:00
}
2009-07-23 06:55:39 +00:00
elseif ( $disp == 'user_name' )
2008-12-21 11:07:58 +00:00
{
2009-07-23 06:55:39 +00:00
$text .= " <a href=' " . $e107 -> url -> getUrl ( 'core:user' , 'main' , 'func=profile&id=' . $row [ 'user_id' ]) . " '> { $row [ 'user_name' ] } </a> " ;
2008-12-21 11:07:58 +00:00
}
2009-07-23 06:55:39 +00:00
elseif ( $disp == " user_status " )
2009-07-17 07:53:13 +00:00
{
2009-07-23 06:55:39 +00:00
$text .= $this -> showUserStatus ( $row );
2009-07-17 07:53:13 +00:00
}
2008-12-21 11:07:58 +00:00
else
{
2009-07-23 06:55:39 +00:00
$text .= $row [ $disp ] . ' ' ;
2008-12-21 11:07:58 +00:00
}
2009-07-23 06:55:39 +00:00
if ( ! in_array ( $disp , $boleanfields ) && isset ( $prev [ $disp ]) && $row [ $disp ] == $prev [ $disp ] && $prev [ $disp ] != " " )
{
// show matches
2008-12-21 11:07:58 +00:00
$text .= " <b>*</b> " ;
}
$text .= " </td> " ;
$prev [ $disp ] = $row [ $disp ];
2006-12-02 04:36:16 +00:00
}
2008-12-22 03:15:04 +00:00
// -------------------------------------------------------------
2009-07-23 06:55:39 +00:00
$qry = ( e_QUERY ) ? " ? " . e_QUERY : " " ;
2006-12-02 04:36:16 +00:00
$text .= "
2009-07-17 07:53:13 +00:00
< td style = 'width:30%' class = 'center' > " . $this->showUserOptions ( $row ). " </ td ></ tr > " ;
2006-12-02 04:36:16 +00:00
}
2009-07-22 17:04:59 +00:00
$text .= " </tbody>
</ table >
< div class = 'buttons-bar center' > " . $this->show_batch_options ();
2009-07-23 06:55:39 +00:00
$users = ( e_QUERY != " unverified " ) ? $sql -> db_Count ( " user " ) : $unverified ;
2009-07-22 17:04:59 +00:00
if ( $users > $amount && ! $_POST [ 'searchquery' ])
2008-12-21 11:07:58 +00:00
{
2009-07-22 17:04:59 +00:00
$parms = " { $users } , { $amount } , { $from } , " . e_SELF . " ? " . ( e_QUERY ? " $action . $sub_action . $id . " : " main.user_id.desc. " ) . " [FROM] " ;
$text .= $tp -> parseTemplate ( " { NEXTPREV= { $parms } } " );
2008-12-21 11:07:58 +00:00
}
2009-07-23 06:55:39 +00:00
if ( $action == " unverified " )
2008-12-21 11:07:58 +00:00
{
2009-07-22 17:04:59 +00:00
$text .= "
< form method = 'post' action = '".e_SELF.$qry."' > " ;
2009-07-23 06:55:39 +00:00
if ( $pref [ 'mail_bounce_pop3' ] != '' )
{
2009-07-22 17:04:59 +00:00
$text .= " <input type='submit' class='button' name='check_bounces' value= \" " . USRLAN_143 . " \" /> \n " ;
}
$text .= " <input type='submit' class='button' name='resend_to_all' value= \" " . USRLAN_144 . " \" />
</ form > " ;
2008-12-21 11:07:58 +00:00
}
2009-07-22 17:04:59 +00:00
$text .= " </div> " ;
}
$text .= " </fieldset></form>
2006-12-02 04:36:16 +00:00
</ div > " ;
2009-07-23 06:55:39 +00:00
$emessage = & eMessage :: getInstance ();
2008-12-22 03:15:04 +00:00
// ======================
2009-07-23 06:55:39 +00:00
$total_cap = ( isset ( $_POST [ 'searchquery' ])) ? $user_total : $users ;
$caption = USRLAN_77 . " (total: $total_cap ) " ;
$ns -> tablerender ( $caption , $emessage -> render () . $text );
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
function show_batch_options ()
2009-07-22 17:04:59 +00:00
{
2009-07-23 15:21:41 +00:00
2009-07-23 06:55:39 +00:00
$text = " <span class='f-left' style='padding-left:15px'><img src=' " . e_IMAGE . " generic/branchbottom.gif' alt='' />
2009-07-22 17:04:59 +00:00
< select class = 'tbox' name = 'execute_batch' onchange = 'this.form.submit()' >
< option value = '' > With selected ...</ option >
< option value = 'ban_selected' > " .USRLAN_30. " </ option >
< option value = 'unban_selected' > " .USRLAN_33. " </ option >
< option value = 'activate_selected' > " .USRLAN_32. " </ option >
< option value = 'delete_selected' > " .LAN_DELETE. " </ option >
2009-07-23 06:55:39 +00:00
< optgroup label = 'Assign Userclass..' >
" ;
$classes = get_userclass_list ();
foreach ( $classes as $key => $val )
{
if ( $key < 240 && $key != 0 )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
$text .= " <option value='userclass_selected_ " . $val [ 'userclass_name' ][ 'userclass_id' ] . " '> " . $val [ 'userclass_name' ][ 'userclass_name' ] . " </option> \n " ;
2009-07-22 17:04:59 +00:00
}
2009-07-23 06:55:39 +00:00
}
$text .= " <option value='userclass_selected_0'> " . USRLAN_220 . " </option>
2009-07-22 17:04:59 +00:00
</ optgroup >
</ select ></ span >< span class = 'clear' >& nbsp ; </ span > " ;
return $text ;
}
2008-01-01 12:38:05 +00:00
2009-07-23 06:55:39 +00:00
2008-12-22 03:15:04 +00:00
function show_options ( $action )
2008-01-01 12:38:05 +00:00
{
2006-12-02 04:36:16 +00:00
global $unverified ;
2008-12-22 03:15:04 +00:00
// ##### Display options
if ( $action == '' )
2007-09-28 20:50:23 +00:00
{
2008-12-22 03:15:04 +00:00
$action = 'main' ;
2006-12-02 04:36:16 +00:00
}
2008-12-22 03:15:04 +00:00
// ##### Display options
2009-07-23 06:55:39 +00:00
$var [ 'main' ][ 'text' ] = USRLAN_71 ;
$var [ 'main' ][ 'link' ] = e_SELF ;
$var [ 'create' ][ 'text' ] = USRLAN_72 ;
$var [ 'create' ][ 'link' ] = e_SELF . '?create' ;
$var [ 'prune' ][ 'text' ] = USRLAN_73 ;
$var [ 'prune' ][ 'link' ] = e_SELF . '?prune' ;
$var [ 'options' ][ 'text' ] = LAN_OPTIONS ;
$var [ 'options' ][ 'link' ] = e_SELF . '?options' ;
if ( $unverified )
2006-12-02 04:36:16 +00:00
{
2009-07-23 06:55:39 +00:00
$var [ 'unveri' ][ 'text' ] = USRLAN_138 . " ( $unverified ) " ;
$var [ 'unveri' ][ 'link' ] = e_SELF . '?unverified' ;
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
$var [ 'rank' ][ 'text' ] = USRLAN_196 ;
$var [ 'rank' ][ 'link' ] = e_SELF . '?ranks' ;
2006-12-02 04:36:16 +00:00
// $var['mailing']['text']= USRLAN_121;
// $var['mailing']['link']="mailout.php";
2009-07-23 06:55:39 +00:00
show_admin_menu ( USRLAN_76 , $action , $var );
2006-12-02 04:36:16 +00:00
}
2008-01-01 12:38:05 +00:00
2008-12-22 03:15:04 +00:00
function show_prefs ()
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
global $ns , $pref , $e_userclass ;
if ( ! is_object ( $e_userclass ))
$e_userclass = new user_class ;
$pref [ 'memberlist_access' ] = varset ( $pref [ 'memberlist_access' ], e_UC_MEMBER );
2006-12-02 04:36:16 +00:00
$text = " <div style='text-align:center'>
2008-12-22 03:15:04 +00:00
< form method = 'post' action = '".e_SELF."?".e_QUERY."' >
2009-07-08 06:58:00 +00:00
< table class = 'adminlist' >
2008-12-22 03:15:04 +00:00
< colgroup >
< col style = 'width:60%' />
< col style = 'width:40%' />
</ colgroup >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_44. " :</ td >
2009-07-23 06:55:39 +00:00
< td > " .( $pref['avatar_upload'] ? " < input name = 'avatar_upload' type = 'radio' value = '1' checked = 'checked' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'avatar_upload' type = 'radio' value = '0' /> " .LAN_NO : " < input name = 'avatar_upload' type = 'radio' value = '1' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'avatar_upload' type = 'radio' value = '0' checked = 'checked' /> " .LAN_NO).(!FILE_UPLOADS ? " < span class = 'smalltext' > ( " .USRLAN_58. " ) </ span > " : " " ). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_53. " :</ td >
2009-07-23 06:55:39 +00:00
< td > " .( $pref['photo_upload'] ? " < input name = 'photo_upload' type = 'radio' value = '1' checked = 'checked' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'photo_upload' type = 'radio' value = '0' /> " .LAN_NO : " < input name = 'photo_upload' type = 'radio' value = '1' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'photo_upload' type = 'radio' value = '0' checked = 'checked' /> " .LAN_NO).(!FILE_UPLOADS ? " < span class = 'smalltext' > ( " .USRLAN_58. " ) </ span > " : " " ). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_47. " :</ td >
< td >
2008-12-22 03:15:04 +00:00
< input class = 'tbox' type = 'text' name = 'im_width' size = '10' value = '".$pref[' im_width ']."' maxlength = '5' /> ( " .USRLAN_48. " )
</ td ></ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_49. " :</ td >
< td >
2008-12-22 03:15:04 +00:00
< input class = 'tbox' type = 'text' name = 'im_height' size = '10' value = '".$pref[' im_height ']."' maxlength = '5' /> ( " .USRLAN_50. " )
</ td ></ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_126. " :</ td >
2009-07-23 06:55:39 +00:00
< td style = 'vertical-align:top' > " .( $pref['profile_rate'] ? " < input name = 'profile_rate' type = 'radio' value = '1' checked = 'checked' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'profile_rate' type = 'radio' value = '0' /> " .LAN_NO : " < input name = 'profile_rate' type = 'radio' value = '1' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'profile_rate' type = 'radio' value = '0' checked = 'checked' /> " .LAN_NO). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_127. " :</ td >
2009-07-23 06:55:39 +00:00
< td style = 'vertical-align:top' > " .( $pref['profile_comments'] ? " < input name = 'profile_comments' type = 'radio' value = '1' checked = 'checked' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'profile_comments' type = 'radio' value = '0' /> " .LAN_NO : " < input name = 'profile_comments' type = 'radio' value = '1' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'profile_comments' type = 'radio' value = '0' checked = 'checked' /> " .LAN_NO). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td style = 'vertical-align:top' > " .USRLAN_133. " :< br />< span class = 'smalltext' > " .USRLAN_134. " </ span ></ td >
2009-07-23 06:55:39 +00:00
< td style = 'vertical-align:top' > " .( $pref['force_userupdate'] ? " < input name = 'force_userupdate' type = 'radio' value = '1' checked = 'checked' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'force_userupdate' type = 'radio' value = '0' /> " .LAN_NO : " < input name = 'force_userupdate' type = 'radio' value = '1' /> " .LAN_YES. " & nbsp ; & nbsp ; < input name = 'force_userupdate' type = 'radio' value = '0' checked = 'checked' /> " .LAN_NO). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td style = 'vertical-align:top' > " .USRLAN_93. " < br />< span class = 'smalltext' > " .USRLAN_94. " </ span ></ td >
< td >
2008-12-22 03:15:04 +00:00
< input class = 'tbox' type = 'text' name = 'del_unv' size = '10' value = '".$pref[' del_unv ']."' maxlength = '5' /> " .USRLAN_95. "
</ td ></ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_130. " < br />< span class = 'smalltext' > " .USRLAN_131. " </ span ></ td >
< td >& nbsp ;
2008-12-22 03:15:04 +00:00
< input type = 'checkbox' name = 'track_online' value = '1' " .( $pref['track_online'] ? " checked = 'checked' " : " " ). " /> " .USRLAN_132. " & nbsp ; & nbsp ;
</ td >
</ tr >
< tr >
2009-07-08 06:58:00 +00:00
< td > " .USRLAN_146. " :</ td >
< td >< select name = 'memberlist_access' class = 'tbox' > \n " ;
2009-07-23 06:55:39 +00:00
$text .= $e_userclass -> vetted_tree ( 'memberlist_access' , array ( $e_userclass , 'select' ), $pref [ 'memberlist_access' ], " public,member,guest,admin,main,classes,nobody " );
2008-01-01 18:18:12 +00:00
$text .= " </select>
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
2006-12-02 04:36:16 +00:00
2008-12-21 11:07:58 +00:00
2008-12-22 03:15:04 +00:00
< tr >
2009-07-08 06:58:00 +00:00
< td style = 'vertical-align:top' > " .USRLAN_190. " < br />< span class = 'smalltext' > " .USRLAN_191. " </ span ></ td >
< td >
2008-12-22 03:15:04 +00:00
< input class = 'tbox' type = 'text' name = 'user_new_period' size = '10' value = '".varset($pref[' user_new_period '],0)."' maxlength = '5' /> " .USRLAN_192. "
</ td ></ tr >
2008-12-21 11:07:58 +00:00
2008-12-22 03:15:04 +00:00
< tr >
2009-07-08 06:58:00 +00:00
< td colspan = '2' class = 'center button-bar' >
2008-12-22 03:15:04 +00:00
< input class = 'button' type = 'submit' name = 'update_options' value = '".USRLAN_51."' />
</ td ></ tr >
2006-12-02 04:36:16 +00:00
2008-12-22 03:15:04 +00:00
</ table ></ form ></ div > " ;
2009-07-23 06:55:39 +00:00
$emessage = & eMessage :: getInstance ();
2009-07-22 17:04:59 +00:00
$ns -> tablerender ( USRLAN_52 , $emessage -> render () . $text );
2006-12-02 04:36:16 +00:00
}
2008-01-01 12:38:05 +00:00
2009-07-23 06:55:39 +00:00
function show_message ( $message , $type = '' )
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
$emessage = & eMessage :: getInstance ();
$emessage -> add ( $message , E_MESSAGE_SUCCESS );
2006-12-02 04:36:16 +00:00
}
2008-01-01 12:38:05 +00:00
2008-12-22 03:15:04 +00:00
function show_prune ()
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
global $ns , $sql ;
$unactive = $sql -> db_Count ( " user " , " (*) " , " WHERE user_ban=2 " );
$bounced = $sql -> db_Count ( " user " , " (*) " , " WHERE user_ban=3 " );
$older30 = $sql -> db_Count ( " user " , " (*) " , " WHERE user_ban=2 AND (user_join < " . strtotime ( " -30 days " ) . " ) " );
2006-12-02 04:36:16 +00:00
$text = " <div style='text-align:center'><br /><br />
2008-12-22 03:15:04 +00:00
< form method = 'post' action = '".e_SELF."' >
< table style = '".ADMIN_WIDTH."' class = 'fborder' >
< tr >
< td class = 'forumheader3' style = 'text-align:center' >< br /> " .LAN_DELETE. " :& nbsp ;
< select class = 'tbox' name = 'prune_type' > " ;
2009-07-23 06:55:39 +00:00
$prune_type = array ( 2 => USRLAN_138 . " [ " . $unactive . " ] " , '30' => USRLAN_138 . " ( " . USRLAN_219 . " ) [ " . $older30 . " ] " , 3 => USRLAN_145 . " [ " . $bounced . " ] " );
foreach ( $prune_type as $key => $val )
{
2008-12-22 03:15:04 +00:00
$text .= " <option value=' $key '> { $val } </option> \n " ;
}
2006-12-02 04:36:16 +00:00
$text .= " </select><br /><br /></td>
2008-12-22 03:15:04 +00:00
</ tr >
< tr >
< td class = 'forumheader' style = 'text-align:center' >
< input class = 'button' type = 'submit' name = 'prune' value = \ " " . USRLAN_55 . " \" />
</ td >
</ tr >
</ table >
</ form >
</ div > " ;
2009-07-23 06:55:39 +00:00
$emessage = & eMessage :: getInstance ();
2009-07-22 17:04:59 +00:00
$ns -> tablerender ( USRLAN_55 , $emessage -> render () . $text );
2006-12-02 04:36:16 +00:00
}
2008-01-01 12:38:05 +00:00
2008-06-13 20:20:23 +00:00
// Add a new user - may be passed existing data if there was an entry error on first pass
2009-07-22 17:04:59 +00:00
function user_add ( $user_data )
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
global $rs , $ns , $pref , $e_userclass ;
if ( ! is_object ( $e_userclass ))
$e_userclass = new user_class ;
$text = " <div> " . $rs -> form_open ( " post " , e_SELF . ( e_QUERY ? '?' . e_QUERY : '' ), " adduserform " ) . "
2009-07-22 17:04:59 +00:00
< table cellpadding = '0' cellspacing = '0' class = 'adminform' >
< colgroup span = '2' >
< col class = 'col-label' />
< col class = 'col-control' />
</ colgroup >
2008-12-22 03:15:04 +00:00
< tr >
2009-07-22 17:04:59 +00:00
< td > " .USRLAN_61. " </ td >
< td >
2009-07-23 06:55:39 +00:00
" . $rs->form_text ('username',40,varset( $user_data['user_name'] , " " ),varset( $pref['displayname_maxlength'] ,15)). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-22 17:04:59 +00:00
< td > " .USRLAN_128. " </ td >
< td >
2009-07-23 06:55:39 +00:00
" . $rs->form_text ('loginname',40,varset( $user_data['user_loginname'] , " " ),varset( $pref['loginname_maxlength'] ,30)). " & nbsp ; & nbsp ;
" . $rs->form_checkbox ('generateloginname',1,varset( $pref['predefinedLoginName'] ,false)).USRLAN_170. "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-22 17:04:59 +00:00
< td > " .USRLAN_129. " </ td >
< td >
2009-07-23 06:55:39 +00:00
" . $rs->form_text ( " realname " ,40,varset( $user_data['user_login'] , " " ),30). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-22 17:04:59 +00:00
< td > " .USRLAN_62. " </ td >
< td >
2009-07-23 06:55:39 +00:00
" . $rs->form_password ( " password1 " ,40, " " ,20). " & nbsp ; & nbsp ;
" . $rs->form_checkbox ('generatepassword',1,false).USRLAN_171. "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-22 17:04:59 +00:00
< td > " .USRLAN_63. " </ td >
< td >
2009-07-23 06:55:39 +00:00
" . $rs->form_password ( " password2 " ,40, " " ,20). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr >
< tr >
2009-07-22 17:04:59 +00:00
< td > " .USRLAN_64. " </ td >
< td >
2009-07-23 06:55:39 +00:00
" . $rs->form_text ( " email " ,60,varset( $user_data['user_email'] , " " ),100). "
2008-12-22 03:15:04 +00:00
</ td >
</ tr > \n " ;
2009-07-23 06:55:39 +00:00
if ( ! isset ( $user_data [ 'user_class' ]))
$user_data [ 'user_class' ] = varset ( $pref [ 'initial_user_classes' ], '' );
$temp = $e_userclass -> vetted_tree ( 'class' , array ( $e_userclass , 'checkbox_desc' ), $user_data [ 'user_class' ], 'classes' );
2008-12-22 03:15:04 +00:00
if ( $temp )
2008-01-01 12:38:05 +00:00
{
2008-12-22 03:15:04 +00:00
$text .= " <tr style='vertical-align:top'>
2009-07-08 06:58:00 +00:00
< td >
2008-12-22 03:15:04 +00:00
" .USRLAN_120. "
2009-07-08 06:58:00 +00:00
</ td >< td > { $temp } </ td >
2008-12-22 03:15:04 +00:00
</ tr > \n " ;
2006-12-02 04:36:16 +00:00
}
$text .= "
2008-12-22 03:15:04 +00:00
< tr style = 'vertical-align:top' >
2009-07-08 06:58:00 +00:00
< td colspan = '2' class = 'center' >
< input class = 'button' type = 'checkbox' name = 'sendconfemail' value = '1' /> " .USRLAN_181. "
</ td >
</ tr >
2009-07-22 17:04:59 +00:00
</ table >
< div class = 'buttons-bar center' >
2009-07-08 06:58:00 +00:00
< input class = 'button' type = 'submit' name = 'adduser' value = '".USRLAN_60."' />
< input type = 'hidden' name = 'ac' value = '".md5(ADMINPWCHANGE)."' />
2009-07-22 17:04:59 +00:00
</ div >
2008-12-22 03:15:04 +00:00
</ form >
</ div >
" ;
2009-07-23 06:55:39 +00:00
$emessage = & eMessage :: getInstance ();
$ns -> tablerender ( USRLAN_59 , $emessage -> render () . $text );
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
function resend ( $id , $key , $name , $email , $lfile = '' )
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
global $sql , $mailheader_e107id , $admin_log ;
$id = ( int ) $id ;
2008-12-22 03:15:04 +00:00
// Check for a Language field, and if present, send the email in the user's language.
2009-07-23 06:55:39 +00:00
if ( $lfile == " " )
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Select ( 'user_extended' , 'user_language' , 'user_extended_id = ' . $id ))
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
$row = $sql -> db_Fetch ();
2008-12-22 03:15:04 +00:00
$lfile = e_LANGUAGEDIR . $row [ 'user_language' ] . '/lan_signup.php' ;
}
}
2009-07-23 06:55:39 +00:00
if ( is_readable ( $lfile ))
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
require_once ( $lfile );
2008-12-22 03:15:04 +00:00
}
else
{
$row [ 'user_language' ] = e_LANGUAGE ;
2009-07-18 15:14:38 +00:00
//@FIXME use array
2009-07-23 06:55:39 +00:00
require_once ( e_LANGUAGEDIR . e_LANGUAGE . " /lan_signup.php " );
2008-12-22 03:15:04 +00:00
}
2009-07-23 06:55:39 +00:00
$return_address = ( substr ( SITEURL , - 1 ) == " / " ) ? SITEURL . " signup.php?activate. " . $id . " . " . $key : SITEURL . " /signup.php?activate. " . $id . " . " . $key ;
2009-07-06 07:50:44 +00:00
$message = LAN_EMAIL_01 . " " . $name . " \n \n " . LAN_SIGNUP_24 . " " . SITENAME . " . \n " . LAN_SIGNUP_21 . " \n \n " ;
2009-07-23 06:55:39 +00:00
$message .= $return_address . " \n \n " . SITENAME . " \n " . SITEURL ;
2008-12-22 03:15:04 +00:00
$mailheader_e107id = $id ;
2009-07-23 06:55:39 +00:00
require_once ( e_HANDLER . " mail.php " );
if ( sendemail ( $email , LAN_404 . " " . SITENAME , $message ))
2008-01-01 12:38:05 +00:00
{
2009-07-23 06:55:39 +00:00
// echo str_replace("\n","<br>",$message);
2008-12-22 03:15:04 +00:00
$admin_log -> log_event ( 'USET_11' , str_replace ( array ( '--ID--' , '--NAME--' , '--EMAIL--' ), array ( $id , $name , $email ), USRLAN_167 ), E_LOG_INFORMATIVE );
$this -> show_message ( USRLAN_140 . " : <a href='mailto: " . $email . " ?body= " . $return_address . " ' title= \" " . LAN_USER_08 . " \" > " . $name . " </a> ( " . $row [ 'user_language' ] . " ) " );
}
else
{
$this -> show_message ( USRLAN_141 . " : " . $name );
}
2006-12-02 04:36:16 +00:00
}
2009-07-23 06:55:39 +00:00
// ------- Ban User. --------------
2009-07-22 17:04:59 +00:00
function user_ban ( $user_id )
{
global $sql , $user , $admin_log ;
2009-07-23 06:55:39 +00:00
// $sub_action = $user_id;
$sql -> db_Select ( " user " , " * " , " user_id=' " . $user_id . " ' " );
$row = $sql -> db_Fetch ();
if (( $row [ 'user_perms' ] == " 0 " ) || ( $row [ 'user_perms' ] == " 0. " ))
{
$this -> show_message ( USRLAN_7 );
}
else
{
if ( $sql -> db_Update ( " user " , " user_ban='1' WHERE user_id=' " . $user_id . " ' " ))
{
$admin_log -> log_event ( 'USET_05' , str_replace ( array ( '--UID--' , '--NAME--' ), array ( $row [ 'user_id' ], $row [ 'user_name' ]), USRLAN_161 ), E_LOG_INFORMATIVE );
$this -> show_message ( USRLAN_8 );
}
if ( trim ( $row [ 'user_ip' ]) == " " )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
$this -> show_message ( USRLAN_135 );
2009-07-22 17:04:59 +00:00
}
else
{
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Count ( " user " , " (*) " , " WHERE user_ip = ' { $row [ 'user_ip' ] } ' " ) > 1 )
2009-07-22 17:04:59 +00:00
{
2009-07-23 06:55:39 +00:00
// Multiple users have same IP address
$this -> show_message ( str_replace ( " { IP} " , $row [ 'user_ip' ], USRLAN_136 ));
2009-07-22 17:04:59 +00:00
}
else
{
2009-07-23 06:55:39 +00:00
if ( $e107 -> add_ban ( 6 , USRLAN_149 . $row [ 'user_name' ] . '/' . $row [ 'user_loginname' ], $row [ 'user_ip' ], USERID ))
{
// Successful IP ban
$this -> show_message ( str_replace ( " { IP} " , $row [ 'user_ip' ], USRLAN_137 ));
2009-07-22 17:04:59 +00:00
}
else
{
2009-07-23 06:55:39 +00:00
// IP address on whitelist
$this -> show_message ( str_replace ( " { IP} " , $row [ 'user_ip' ], USRLAN_150 ));
2009-07-22 17:04:59 +00:00
}
}
}
2009-07-23 06:55:39 +00:00
}
$action = " main " ;
if ( ! $sub_action )
{
$sub_action = " user_id " ;
}
2009-07-22 17:04:59 +00:00
}
2006-12-02 04:36:16 +00:00
2009-07-23 06:55:39 +00:00
2008-01-01 12:38:05 +00:00
function resend_to_all ()
{
2009-07-23 06:55:39 +00:00
global $sql , $pref , $sql3 , $admin_log ;
2008-12-22 03:15:04 +00:00
$count = 0 ;
$pause_count = 1 ;
$pause_amount = ( $pref [ 'mail_pause' ]) ? $pref [ 'mail_pause' ] : 10 ;
$pause_time = ( $pref [ 'mail_pausetime' ]) ? $pref [ 'mail_pausetime' ] : 1 ;
2009-07-23 06:55:39 +00:00
if ( $sql -> db_Select_gen ( 'SELECT user_language FROM `#user_extended` LIMIT 1' ))
2008-12-22 03:15:04 +00:00
{
$query = " SELECT u.*, ue.* FROM `#user` AS u LEFT JOIN `#user_extended` AS ue ON ue.user_extended_id = u.user_id WHERE u.user_ban = 2 ORDER BY u.user_id DESC " ;
}
else
2008-01-01 12:38:05 +00:00
{
2008-12-22 03:15:04 +00:00
$query = 'SELECT * FROM `#user` WHERE user_ban=2' ;
}
2009-07-23 15:21:41 +00:00
$sql3 = e107 :: getDb ( 'sql3' );
2009-07-23 06:55:39 +00:00
$sql3 -> db_Select_gen ( $query );
while ( $row = $sql3 -> db_Fetch ())
2008-12-22 03:15:04 +00:00
{
echo $row [ 'user_id' ] . " " . $row [ 'user_sess' ] . " " . $row [ 'user_name' ] . " " . $row [ 'user_email' ] . " <br /> " ;
$this -> resend ( $row [ 'user_id' ], $row [ 'user_sess' ], $row [ 'user_name' ], $row [ 'user_email' ], $row [ 'user_language' ]);
2009-07-23 06:55:39 +00:00
if ( $pause_count > $pause_amount )
2008-12-22 03:15:04 +00:00
{
sleep ( $pause_time );
$pause_count = 1 ;
}
sleep ( 1 );
$pause_count ++ ;
$count ++ ;
}
if ( $count )
{
$admin_log -> log_event ( 'USET_12' , str_replace ( '--COUNT--' , $count , USRLAN_168 ), E_LOG_INFORMATIVE );
}
2006-12-02 04:36:16 +00:00
}
2007-08-06 19:35:17 +00:00
2008-12-22 03:15:04 +00:00
// ---------------------------------------------------------------------
// Bounce handling
// ---------------------------------------------------------------------
// $bounce_act has the task to perform:
// 'first_check' - initial read of list of bounces
// 'delnonbounce' - delete any emails that aren't bounces
// 'clearemailbounce' - delete email address for any user whose emails bounced
// 'delchecked' - delete the emails whose comma-separated IDs are in $bounce_arr
// 'delall' - delete all bounced emails
2009-07-23 06:55:39 +00:00
function check_bounces ( $bounce_act = 'first_check' , $bounce_arr = '' )
2007-08-06 19:35:17 +00:00
{
2008-12-22 03:15:04 +00:00
global $sql , $pref ;
2009-07-23 06:55:39 +00:00
include ( e_HANDLER . 'pop3_class.php' );
if ( ! trim ( $bounce_act ))
{
$bounce_act = 'first_check' ;
}
2008-12-22 03:15:04 +00:00
// echo "Check bounces. Action: {$bounce_act}; Entries: {$bounce_arr}<br />";
2009-07-23 06:55:39 +00:00
$obj = new receiveMail ( $pref [ 'mail_bounce_user' ], $pref [ 'mail_bounce_pass' ], $pref [ 'mail_bounce_email' ], $pref [ 'mail_bounce_pop3' ], varset ( $pref [ 'mail_bounce_type' ], 'pop3' ));
2008-12-22 03:15:04 +00:00
$del_count = 0 ;
2009-07-23 06:55:39 +00:00
if ( $bounce_act != 'first_check' )
{
// Must do some deleting
2008-12-22 03:15:04 +00:00
$obj -> connect ();
2009-07-23 06:55:39 +00:00
$tot = $obj -> getTotalMails ();
2008-12-22 03:15:04 +00:00
$del_array = explode ( ',' , $bounce_arr );
2009-07-23 06:55:39 +00:00
for ( $i = 1 ; $i <= $tot ; $i ++ )
{
// Scan all emails; delete current one if meets the criteria
$dodel = false ;
2008-12-22 03:15:04 +00:00
switch ( $bounce_act )
2007-09-28 20:50:23 +00:00
{
2008-12-22 03:15:04 +00:00
case 'delnonbounce' :
2009-07-23 06:55:39 +00:00
$head = $obj -> getHeaders ( $i );
$dodel = ( ! $head [ 'bounce' ]);
break ;
2008-12-22 03:15:04 +00:00
case 'clearemailbounce' :
2009-07-23 06:55:39 +00:00
if ( ! in_array ( $i , $del_array ))
break ;
$head = $obj -> getHeaders ( $i );
if ( $head [ 'bounce' ])
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
if ( preg_match ( " /[ \ ._a-zA-Z0-9-]+@[ \ ._a-zA-Z0-9-]+/i " , $obj -> getBody ( $i ), $result ))
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
$usr_email = trim ( $result [ 0 ]);
}
if ( $sql -> db_Select ( 'user' , 'user_id, user_name, user_email' , " user_email=' " . $usr_email . " ' " ))
{
$row = $sql -> db_Fetch ();
if ( $sql -> db_Update ( 'user' , " `user_email`='' WHERE `user_id` = ' " . $row [ 'user_id' ] . " ' " ) !== false )
{
2008-12-22 03:15:04 +00:00
// echo "Deleting user email {$row['user_email']} for user {$row['user_name']}, id={$row['user_id']}<br />";
2009-07-23 06:55:39 +00:00
$dodel = true ;
}
2008-12-22 03:15:04 +00:00
}
}
2009-07-23 06:55:39 +00:00
break ;
2008-12-22 03:15:04 +00:00
case 'delall' :
2009-07-23 06:55:39 +00:00
$dodel = true ;
break ;
2008-12-22 03:15:04 +00:00
case 'delchecked' :
2009-07-23 06:55:39 +00:00
$dodel = in_array ( $i , $del_array );
break ;
2007-09-28 20:50:23 +00:00
}
2008-12-22 03:15:04 +00:00
if ( $dodel )
{
2009-07-23 06:55:39 +00:00
// echo "Delete email ID {$i}<br />";
2008-12-22 03:15:04 +00:00
$obj -> deleteMails ( $i );
2009-07-23 06:55:39 +00:00
$del_count ++ ;
// Keep track of number of emails deleted
2008-12-22 03:15:04 +00:00
}
2009-07-23 06:55:39 +00:00
}
// End - Delete one email
$obj -> close_mailbox ();
// This actually deletes the emails
}
// End of email deletion
2008-12-22 03:15:04 +00:00
// Now list the emails that are left
$obj -> connect ();
2009-07-23 06:55:39 +00:00
$tot = $obj -> getTotalMails ();
$found = false ;
$DEL = ( $pref [ 'mail_bounce_delete' ]) ? true : false ;
2008-12-22 03:15:04 +00:00
$text = " <br /><div><form method='post' action=' " . e_SELF . $qry . " '><table class='fborder' style=' " . ADMIN_WIDTH . " '>
2006-12-02 04:36:16 +00:00
< tr >< td class = 'fcaption' style = 'width:5%' > #</td><td class='fcaption'>e107-id</td><td class='fcaption'>email</td><td class='fcaption'>Subject</td><td class='fcaption'>Bounce</td></tr>\n";
2009-07-23 06:55:39 +00:00
for ( $i = 1 ; $i <= $tot ; $i ++ )
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
$head = $obj -> getHeaders ( $i );
if ( $head [ 'bounce' ])
{
// Its a 'bounce' email
if ( ereg ( '.*X-e107-id:(.*)MIME' , $obj -> getBody ( $i ), $result ))
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
if ( $result [ 1 ])
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
$id [ $i ] = intval ( $result [ 1 ]);
// This should be a user ID - but not on special mailers!
2008-12-22 03:15:04 +00:00
// Try and pull out an email address from body - should be the one that failed
2009-07-23 06:55:39 +00:00
if ( preg_match ( " /[ \ ._a-zA-Z0-9-]+@[ \ ._a-zA-Z0-9-]+/i " , $obj -> getBody ( $i ), $result ))
2007-12-09 16:42:23 +00:00
{
2008-12-22 03:15:04 +00:00
$emails [ $i ] = " ' " . $result [ 0 ] . " ' " ;
2007-12-09 16:42:23 +00:00
}
2009-07-23 06:55:39 +00:00
$found = true ;
2008-12-22 03:15:04 +00:00
}
}
2009-07-23 06:55:39 +00:00
elseif ( preg_match ( " /[ \ ._a-zA-Z0-9-]+@[ \ ._a-zA-Z0-9-]+/i " , $obj -> getBody ( $i ), $result ))
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
if ( $result [ 0 ] && $result [ 0 ] != $pref [ 'mail_bounce_email' ])
2008-12-22 03:15:04 +00:00
{
$emails [ $i ] = " ' " . $result [ 0 ] . " ' " ;
2009-07-23 06:55:39 +00:00
$found = true ;
2008-12-22 03:15:04 +00:00
}
2009-07-23 06:55:39 +00:00
elseif ( $result [ 1 ] && $result [ 1 ] != $pref [ 'mail_bounce_email' ])
2008-12-22 03:15:04 +00:00
{
$emails [ $i ] = " ' " . $result [ 1 ] . " ' " ;
2009-07-23 06:55:39 +00:00
$found = true ;
2008-12-22 03:15:04 +00:00
}
}
if ( $DEL && $found )
2009-07-23 06:55:39 +00:00
{
// Auto-delete bounced emails once noticed (if option set)
2008-12-22 03:15:04 +00:00
$obj -> deleteMails ( $i );
$del_count ++ ;
}
2008-01-01 12:38:05 +00:00
}
2008-12-22 03:15:04 +00:00
else
2009-07-23 06:55:39 +00:00
{
// Its a warning message or similar
// $id[$i] = ''; // Don't worry about an ID for now
// Try and pull out an email address from body - should be the one that failed
if ( preg_match ( " /[ \ ._a-zA-Z0-9-]+@[ \ ._a-zA-Z0-9-]+/i " , $obj -> getBody ( $i ), $result ))
2008-12-22 03:15:04 +00:00
{
$wmails [ $i ] = " ' " . $result [ 0 ] . " ' " ;
}
2008-01-01 12:38:05 +00:00
}
2009-07-23 06:55:39 +00:00
$text .= " <tr><td class='forumheader3'> " . $i . " </td><td class='forumheader3'> " . $id [ $i ] . " </td><td class='forumheader3'> " . ( isset ( $emails [ $i ]) ? $emails [ $i ] : $wmails [ $i ]) . " </td><td class='forumheader3'> " . $head [ 'subject' ] . " </td><td class='forumheader3'> " . ( $head [ 'bounce' ] ? ADMIN_TRUE_ICON : ADMIN_FALSE_ICON );
2008-12-22 03:15:04 +00:00
$text .= " <input type='checkbox' name='delete_email[]' value=' { $i } ' /></td></tr> \n " ;
2007-12-09 16:42:23 +00:00
}
2008-12-22 03:15:04 +00:00
if ( $del_count )
{
$admin_log -> log_event ( 'USET_13' , str_replace ( '--COUNT--' , $del_count , USRLAN_169 ), E_LOG_INFORMATIVE );
}
if ( $tot )
2009-07-23 06:55:39 +00:00
{
// Option to delete emails - only if there are some in the list
2008-12-22 03:15:04 +00:00
$text .= " </table><table style=' " . ADMIN_WIDTH . " '><tr>
2008-07-03 21:23:47 +00:00
< td class = 'forumheader3' style = 'text-align: center;' >< input class = 'button' type = 'submit' name = 'delnonbouncesubmit' value = '".USRLAN_183."' /></ td > \n
< td class = 'forumheader3' style = 'text-align: center;' >< input class = 'button' type = 'submit' name = 'clearemailbouncesubmit' value = '".USRLAN_184."' /></ td > \n
< td class = 'forumheader3' style = 'text-align: center;' >< input class = 'button' type = 'submit' name = 'delcheckedsubmit' value = '".USRLAN_179."' /></ td > \n
< td class = 'forumheader3' style = 'text-align: center;' >< input class = 'button' type = 'submit' name = 'delallsubmit' value = '".USRLAN_180."' /></ td > \n
2007-08-06 19:35:17 +00:00
</ td ></ tr > " ;
2008-12-22 03:15:04 +00:00
}
$text .= " </table></form></div> " ;
array_unique ( $id );
array_unique ( $emails );
$all_ids = implode ( ',' , $id );
$all_emails = implode ( ',' , $emails );
2009-07-23 06:55:39 +00:00
$obj -> close_mailbox ();
// This will actually delete emails
2008-12-22 03:15:04 +00:00
// $tot has total number of emails in the mailbox
2009-07-23 06:55:39 +00:00
$found = count ( $emails );
// $found - Number of bounce emails found
2008-12-22 03:15:04 +00:00
// $del_count has number of emails deleted
2009-07-23 06:55:39 +00:00
// Update bounce status for users
$ed = $sql -> db_Update ( 'user' , " user_ban=3 WHERE (`user_id` IN ( " . $all_ids . " ) OR `user_email` IN ( " . $all_emails . " )) AND user_sess !='' " );
if ( ! $ed )
$ed = '0' ;
$this -> show_message ( str_replace ( array ( '{TOTAL}' , '{DELCOUNT}' , '{DELUSER}' , '{FOUND}' ), array ( $tot , $del_count , $ed , $found ), USRLAN_155 ) . $text );
}
2007-09-28 20:50:23 +00:00
2009-07-23 06:55:39 +00:00
function check_allowed ( $class_id ) // check userclass change is permitted.
{
global $e_userclass ;
if ( ! isset ( $e_userclass -> class_tree [ $class_id ]))
{
header ( " location: " . SITEURL );
exit ;
}
if ( ! getperms ( " 0 " ) && ! check_class ( $e_userclass -> class_tree [ $class_id ][ 'userclass_editclass' ]))
{
header ( " location: " . SITEURL );
exit ;
}
return true ;
2006-12-02 04:36:16 +00:00
}
2007-08-06 19:35:17 +00:00
2009-07-23 06:55:39 +00:00
// ------------------------------------------------------------------------
function show_userclass ( $userid )
{
global $sql , $ns , $e_userclass ;
$sql -> db_Select ( " user " , " * " , " user_id= { $userid } " );
$row = $sql -> db_Fetch ();
$caption = UCSLAN_6 . " <b> " . $row [ 'user_name' ] . " </b> ( " . $row [ 'user_class' ] . " ) " ;
$text = " <div>
< form method = 'post' action = '".e_SELF."?".e_QUERY."' >
< table cellpadding = '0' cellspacing = '0' class = 'adminform' >
< colgroup span = '2' >
< col class = 'col-label' />
< col class = 'col-control' />
</ colgroup >
< tr >
< td > " ;
$text .= $e_userclass -> vetted_tree ( 'userclass' , array ( $e_userclass , 'checkbox_desc' ), $row [ 'user_class' ], 'classes' );
$text .= ' </ td ></ tr >
</ table > ' ;
$text .= " <div class='buttons-bar center'>
< input type = 'hidden' name = 'userid' value = '{$userid}' />
< input type = 'checkbox' name = 'notifyuser' value = '1' /> " .UCSLAN_8. " & nbsp ; & nbsp ;
< input class = 'button' type = 'submit' name = 'updateclass' value = '".UCSLAN_7."' />
</ div >
</ form >
</ div > " ;
$ns -> tablerender ( $caption , $text );
}
function user_userclass ( $userid , $uclass , $append = FALSE )
{
global $sql , $admin_log , $e_userclass ;
$remuser = true ;
$emessage = & eMessage :: getInstance ();
2007-08-06 19:35:17 +00:00
2009-07-23 06:55:39 +00:00
if ( $_POST [ 'notifyuser' ] || $append !== FALSE )
{
$sql -> db_Select ( " user " , " * " , " user_id= { $userid } " );
$row = $sql -> db_Fetch ();
$curClass = varset ( $row [ 'user_class' ]) ? explode ( " , " , $row [ 'user_class' ]) : array ();
}
foreach ( $uclass as $a )
{
$a = intval ( $a );
$this -> check_allowed ( $a );
if ( $a != 0 )
{
$curClass [] = $a ;
}
}
$svar = is_array ( $curClass ) ? implode ( " , " , $curClass ) : " " ;
if ( $sql -> db_Update ( " user " , " user_class=' " . $svar . " ' WHERE user_id= { $userid } " ))
{
$message = UCSLAN_9 ;
if ( $_POST [ 'notifyuser' ])
{
$message .= " <br /> " . UCSLAN_1 . " :</b> " . $row [ 'user_name' ] . " <br /> " ;
require_once ( e_HANDLER . " mail.php " );
$messaccess = '' ;
foreach ( $curClass as $a )
{
if ( ! isset ( $e_userclass -> fixed_classes [ $a ]))
{
$messaccess .= $e_userclass -> class_tree [ $a ][ 'userclass_name' ] . " - " . $e_userclass -> class_tree [ $a ][ 'userclass_description' ] . " \n " ;
}
}
if ( $messaccess == '' )
$messaccess = UCSLAN_12 . " \n " ;
$send_to = $row [ 'user_email' ];
$subject = UCSLAN_2 ;
$message = UCSLAN_3 . " " . $row [ 'user_name' ] . " , \n \n " . UCSLAN_4 . " " . SITENAME . " \n ( " . SITEURL . " ) \n \n " . UCSLAN_5 . " : \n \n " . $messaccess . " \n " . UCSLAN_10 . " \n " . SITEADMIN . " \n ( " . SITENAME . " ) " ;
// $admin_log->e_log_event(4,__FILE__."|".__FUNCTION__."@".__LINE__,"DBG","User class change",str_replace("\n","<br />",$message),FALSE,LOG_TO_ROLLING);
sendemail ( $send_to , $subject , $message );
}
$admin_log -> log_event ( 'USET_14' , str_replace ( array ( '--UID--' , '--CLASSES--' ), array ( $id , $svar ), UCSLAN_11 ), E_LOG_INFORMATIVE );
$emessage -> add ( $message , E_MESSAGE_SUCCESS );
}
else
{
$emessage -> add ( " Update Failed " , E_MESSAGE_ERROR );
}
}
}
// End class users
2008-12-22 03:15:04 +00:00
function users_adminmenu ()
2007-08-06 19:35:17 +00:00
{
2006-12-02 04:36:16 +00:00
global $user ;
global $action ;
$user -> show_options ( $action );
}
2008-12-22 03:15:04 +00:00
2009-07-23 06:55:39 +00:00
2009-01-18 01:39:20 +00:00
function deleteRank ( $rankId )
{
global $emessage ;
2009-07-23 06:55:39 +00:00
$e107 = e107 :: getInstance ();
$rankId = ( int ) $rankId ;
2009-01-18 16:47:41 +00:00
$e107 -> ecache -> clear_sys ( 'nomd5_user_ranks' );
2009-07-23 06:55:39 +00:00
if ( $e107 -> sql -> db_Delete ( 'generic' , " gen_id=' { $rankId } ' " ))
2009-01-18 01:39:20 +00:00
{
2009-07-23 06:55:39 +00:00
$emessage -> add ( USRLAN_218 , E_MESSAGE_SUCCESS );
2009-01-18 01:39:20 +00:00
}
else
{
2009-07-23 06:55:39 +00:00
$emessage -> add ( USRLAN_218 , E_MESSAGE_FAIL );
2009-01-18 01:39:20 +00:00
}
}
2009-07-23 06:55:39 +00:00
2009-01-11 04:13:01 +00:00
function updateRanks ()
{
2009-07-23 06:55:39 +00:00
global $pref , $emessage ;
$e107 = e107 :: getInstance ();
2009-01-11 04:13:01 +00:00
$config = array ();
2009-01-17 03:27:17 +00:00
$ranks_calc = '' ;
$ranks_flist = '' ;
2009-07-23 06:55:39 +00:00
foreach ( $_POST [ 'op' ] as $f => $o )
2009-01-11 04:13:01 +00:00
{
2009-01-17 03:27:17 +00:00
$config [ $f ][ 'op' ] = $o ;
2009-07-23 06:55:39 +00:00
$config [ $f ][ 'val' ] = varset ( $_POST [ 'val' ][ $f ], '' );
if ( $_POST [ 'val' ][ $f ])
2009-01-11 04:13:01 +00:00
{
2009-01-17 03:27:17 +00:00
$ranks_calc .= ( $ranks_calc ? ' + ' : '' ) . '({' . $f . '} ' . " $o { $_POST [ 'val' ][ $f ] } " . ' )' ;
$ranks_flist .= ( $ranks_flist ? ',' : '' ) . $f ;
2009-01-11 04:13:01 +00:00
}
}
2009-07-23 06:55:39 +00:00
$e107 -> sql -> db_Delete ( 'generic' , " gen_type = 'user_rank_config' " );
2009-01-17 03:27:17 +00:00
$tmp = array ();
$tmp [ 'data' ][ 'gen_type' ] = 'user_rank_config' ;
$tmp [ 'data' ][ 'gen_chardata' ] = serialize ( $config );
$tmp [ '_FIELD_TYPES' ][ 'gen_type' ] = 'string' ;
$tmp [ '_FIELD_TYPES' ][ 'gen_chardata' ] = 'escape' ;
2009-07-23 06:55:39 +00:00
$e107 -> sql -> db_Insert ( 'generic' , $tmp );
2009-01-18 01:39:20 +00:00
$pref [ 'ranks_calc' ] = $ranks_calc ;
2009-01-17 03:27:17 +00:00
$pref [ 'ranks_flist' ] = $ranks_flist ;
save_prefs ();
//Delete existing rank data
2009-07-23 06:55:39 +00:00
$e107 -> sql -> db_Delete ( 'generic' , " gen_type = 'user_rank_data' " );
2009-01-17 03:27:17 +00:00
//Add main site admin info
$tmp = array ();
$tmp [ '_FIELD_TYPES' ][ 'gen_datestamp' ] = 'int' ;
$tmp [ '_FIELD_TYPES' ][ 'gen_ip' ] = 'todb' ;
$tmp [ '_FIELD_TYPES' ][ 'gen_user_id' ] = 'int' ;
$tmp [ '_FIELD_TYPES' ][ 'gen_chardata' ] = 'todb' ;
$tmp [ '_FIELD_TYPES' ][ 'gen_intdata' ] = 'int' ;
$tmp [ 'data' ][ 'gen_datestamp' ] = 1 ;
$tmp [ 'data' ][ 'gen_type' ] = 'user_rank_data' ;
2009-07-23 06:55:39 +00:00
$tmp [ 'data' ][ 'gen_ip' ] = $_POST [ 'calc_name' ][ 'main_admin' ];
$tmp [ 'data' ][ 'gen_user_id' ] = varset ( $_POST [ 'calc_pfx' ][ 'main_admin' ], 0 );
$tmp [ 'data' ][ 'gen_chardata' ] = $_POST [ 'calc_img' ][ 'main_admin' ];
$e107 -> sql -> db_Insert ( 'generic' , $tmp );
2009-01-17 03:27:17 +00:00
//Add site admin info
2009-07-23 06:55:39 +00:00
unset ( $tmp [ 'data' ]);
2009-01-17 03:27:17 +00:00
$tmp [ 'data' ][ 'gen_type' ] = 'user_rank_data' ;
$tmp [ 'data' ][ 'gen_datestamp' ] = 2 ;
2009-07-23 06:55:39 +00:00
$tmp [ 'data' ][ 'gen_ip' ] = $_POST [ 'calc_name' ][ 'admin' ];
$tmp [ 'data' ][ 'gen_user_id' ] = varset ( $_POST [ 'calc_pfx' ][ 'admin' ], 0 );
$tmp [ 'data' ][ 'gen_chardata' ] = $_POST [ 'calc_img' ][ 'admin' ];
$e107 -> sql -> db_Insert ( 'generic' , $tmp );
2009-01-18 01:39:20 +00:00
//Add all current site defined ranks
2009-07-23 06:55:39 +00:00
if ( isset ( $_POST [ 'field_id' ]))
2009-01-18 01:39:20 +00:00
{
2009-07-23 06:55:39 +00:00
foreach ( $_POST [ 'field_id' ] as $fid => $x )
2009-01-18 01:39:20 +00:00
{
2009-07-23 06:55:39 +00:00
unset ( $tmp [ 'data' ]);
2009-01-18 01:39:20 +00:00
$tmp [ 'data' ][ 'gen_type' ] = 'user_rank_data' ;
2009-07-23 06:55:39 +00:00
$tmp [ 'data' ][ 'gen_ip' ] = varset ( $_POST [ 'calc_name' ][ $fid ], '' );
$tmp [ 'data' ][ 'gen_user_id' ] = varset ( $_POST [ 'calc_pfx' ][ $fid ], 0 );
$tmp [ 'data' ][ 'gen_chardata' ] = varset ( $_POST [ 'calc_img' ][ $fid ], '' );
$tmp [ 'data' ][ 'gen_intdata' ] = varset ( $_POST [ 'calc_lower' ][ $fid ], '_NULL_' );
$e107 -> sql -> db_Insert ( 'generic' , $tmp );
2009-01-18 01:39:20 +00:00
}
}
//Add new rank, if posted
2009-07-23 06:55:39 +00:00
if ( varset ( $_POST [ 'new_calc_lower' ]))
2009-01-17 03:27:17 +00:00
{
2009-07-23 06:55:39 +00:00
unset ( $tmp [ 'data' ]);
2009-01-17 03:27:17 +00:00
$tmp [ 'data' ][ 'gen_type' ] = 'user_rank_data' ;
$tmp [ 'data' ][ 'gen_datestamp' ] = 0 ;
2009-07-23 06:55:39 +00:00
$tmp [ 'data' ][ 'gen_ip' ] = varset ( $_POST [ 'new_calc_name' ]);
$tmp [ 'data' ][ 'gen_user_id' ] = varset ( $_POST [ 'new_calc_pfx' ], 0 );
$tmp [ 'data' ][ 'gen_chardata' ] = varset ( $_POST [ 'new_calc_img' ]);
$tmp [ 'data' ][ 'gen_intdata' ] = varset ( $_POST [ 'new_calc_lower' ]);
$e107 -> sql -> db_Insert ( 'generic' , $tmp );
2009-01-17 03:27:17 +00:00
}
2009-01-18 16:47:41 +00:00
$e107 -> ecache -> clear_sys ( 'nomd5_user_ranks' );
2009-07-23 06:55:39 +00:00
$emessage -> add ( USRLAN_217 , E_MESSAGE_SUCCESS );
2009-01-11 04:13:01 +00:00
}
2009-07-23 06:55:39 +00:00
2008-12-22 03:15:04 +00:00
function show_ranks ()
{
2009-07-23 06:55:39 +00:00
global $pref , $emessage ;
$e107 = e107 :: getInstance ();
include_once ( e_HANDLER . 'file_class.php' );
include_once ( e_HANDLER . 'level_handler.php' );
require_once ( e_HANDLER . 'message_handler.php' );
require_once ( e_HANDLER . " form_handler.php " );
$frm = new e_form ( true );
//enable inner tabindex counter
2008-12-22 14:06:17 +00:00
$f = new e_file ;
2009-01-17 03:27:17 +00:00
$ranks = new e107UserRank ;
2009-07-23 06:55:39 +00:00
$imageList = $f -> get_files ( e_IMAGE . 'ranks' , '.*?\.(png|gif|jpg)' );
2009-01-17 03:27:17 +00:00
$config = array ();
2009-07-23 06:55:39 +00:00
if ( $e107 -> sql -> db_Select ( 'generic' , 'gen_chardata' , " gen_type='user_rank_config' " , 'default' ))
2009-01-17 03:27:17 +00:00
{
$row = $e107 -> sql -> db_Fetch ( MYSQL_ASSOC );
$config = unserialize ( $row [ 'gen_chardata' ]);
}
2009-07-23 06:55:39 +00:00
$fieldList = array ( 'core' => array (), 'extended' => array ());
$fieldList [ 'core' ] = array ( 'comments' => USRLAN_201 , 'visits' => USRLAN_202 , 'daysregged' => USRLAN_203 );
foreach ( $e107 -> extended_struct as $field )
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
if ( strpos ( $field [ 'Type' ], 'int' ) !== false && $field [ 'Field' ] != 'user_extended_id' )
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
$fieldList [ 'extended' ][] = substr ( $field [ 'Field' ], 5 );
2008-12-22 03:15:04 +00:00
}
}
2009-07-23 06:55:39 +00:00
$opArray = array ( '*' , '+' , '-' );
2008-12-22 03:15:04 +00:00
$text .= "
2009-07-19 14:59:06 +00:00
< form method = 'post' action = '".e_SELF."?".e_QUERY."' >
2008-12-22 03:15:04 +00:00
< table style = '".ADMIN_WIDTH."' >
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'label' > " .USRLAN_197. " </ td >
< td class = 'label' > " .USRLAN_198. " </ td >
< td class = 'control' > " .USRLAN_199. " </ td >
< td class = 'control' > " .USRLAN_200. " </ td >
2008-12-22 03:15:04 +00:00
</ tr >
" ;
2009-07-23 06:55:39 +00:00
foreach ( $fieldList [ 'core' ] as $k => $f )
2008-12-22 03:15:04 +00:00
{
$text .= "
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'label' > " .USRLAN_204. " </ td >
2008-12-22 03:15:04 +00:00
< td class = 'label' > { $f } </ td >
2008-12-22 14:06:17 +00:00
< td class = 'control' >
2009-01-11 04:13:01 +00:00
< select name = 'op[{$k}]' class = 'tbox' >
2009-01-17 03:27:17 +00:00
" ;
2009-07-23 06:55:39 +00:00
foreach ( $opArray as $op )
2009-01-17 03:27:17 +00:00
{
$sel = ( varset ( $config [ $k ][ 'op' ]) == $op ? " selected='selected' " : '' );
$text .= " <option value=' { $op } ' { $sel } > { $op } </option> " ;
}
$text .= "
2008-12-22 14:06:17 +00:00
</ select >
</ td >
2009-07-19 14:59:06 +00:00
< td class = 'control' >< input type = 'text' class = 'tbox' name = 'val[{$k}]' value = '".varset($config[$k][' val '])."' size = '3' maxlength = '3' /></ td >
2008-12-22 03:15:04 +00:00
</ tr >
" ;
}
2009-07-23 06:55:39 +00:00
if ( count ( $fieldList [ 'extended' ]))
2008-12-22 03:15:04 +00:00
{
2009-07-23 06:55:39 +00:00
foreach ( $fieldList [ 'extended' ] as $f )
2008-12-22 03:15:04 +00:00
{
$text .= "
< tr >
2008-12-22 14:06:17 +00:00
< td colspan = '4' >& nbsp ; </ td >
</ tr >
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'label' > " .USRLAN_205. " </ td >
2008-12-22 03:15:04 +00:00
< td class = 'label' > { $f } </ td >
2008-12-22 14:06:17 +00:00
< td class = 'control' >
2009-01-11 04:13:01 +00:00
< select name = 'op[{$f}]' class = 'tbox' >
2009-01-17 03:27:17 +00:00
" ;
2009-07-23 06:55:39 +00:00
foreach ( $opArray as $op )
2009-01-17 03:27:17 +00:00
{
$sel = ( varset ( $config [ $f ][ 'op' ]) == $op ? " selected='selected' " : '' );
$text .= " <option value=' { $op } ' { $sel } > { $op } </option> " ;
}
$text .= "
2008-12-22 14:06:17 +00:00
</ select >
2009-01-17 03:27:17 +00:00
</ td >
2009-07-19 14:59:06 +00:00
< td class = 'control' >
< input type = 'text' class = 'tbox' name = 'val[{$f}]' value = '".varset($config[$f][' val '])."' size = '3' maxlength = '3' value = '' />
</ td >
2008-12-22 03:15:04 +00:00
</ tr >
" ;
}
}
2009-07-23 06:55:39 +00:00
if ( isset ( $pref [ 'ranks_calc' ]))
2009-01-18 01:39:20 +00:00
{
$text .= " <tr>
< td class = 'label' colspan = '4' >< br /> " .USRLAN_206. " : { $pref [ 'ranks_calc' ]} </ td >
</ tr >
" ;
}
2008-12-22 03:15:04 +00:00
$text .= '</table>' ;
2009-07-23 06:55:39 +00:00
$e107 -> ns -> tablerender ( '' , $emessage -> render ());
$e107 -> ns -> tablerender ( 'Rank Calculation fields' , $text );
2008-12-22 03:15:04 +00:00
$text = "
< table style = '".ADMIN_WIDTH."' >
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'label' > " .USRLAN_207. " </ td >
< td class = 'label' > " .USRLAN_208. " </ td >
< td class = 'label' > " .USRLAN_209. " </ td >
< td class = 'label' > " .USRLAN_210. " </ td >
< td class = 'label' > " .USRLAN_211. " </ td >
2008-12-22 14:06:17 +00:00
</ tr >
2009-01-17 03:27:17 +00:00
" ;
$info = $ranks -> ranks [ 'special' ][ 1 ];
$val = $e107 -> tp -> toForm ( $info [ 'name' ]);
$pfx = ( $info [ 'lan_pfx' ] ? " checked='checked' " : '' );
$text .= "
2008-12-22 14:06:17 +00:00
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'control' > " .LAN_MAINADMIN. " </ td >
2009-01-17 03:27:17 +00:00
< td class = 'control' >
2009-07-19 14:59:06 +00:00
< input class = 'tbox' type = 'text' name = 'calc_name[main_admin]' value = '{$val}' />
2009-01-17 03:27:17 +00:00
</ td >
2008-12-22 14:06:17 +00:00
< td class = 'control' > N / A </ td >
2009-07-19 14:59:06 +00:00
< td class = 'control' >< input type = 'checkbox' name = 'calc_pfx[main_admin]' { $pfx } value = '1' /></ td >
2009-07-23 06:55:39 +00:00
< td class = 'control' > " .RankImageDropdown( $imageList ,'calc_img[main_admin]', $info['image'] ). " </ td >
2008-12-22 14:06:17 +00:00
</ tr >
2009-01-17 03:27:17 +00:00
" ;
$info = $ranks -> ranks [ 'special' ][ 2 ];
$val = $e107 -> tp -> toForm ( $info [ 'name' ]);
$pfx = ( $info [ 'lan_pfx' ] ? " checked='checked' " : '' );
2009-07-23 06:55:39 +00:00
$text .= "
2008-12-22 14:06:17 +00:00
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'control' > " .LAN_ADMIN. " </ td >
2009-01-17 03:27:17 +00:00
< td class = 'control' >
2009-07-19 14:59:06 +00:00
< input class = 'tbox' type = 'text' name = 'calc_name[admin]' value = '{$val}' />
2009-01-17 03:27:17 +00:00
</ td >
2008-12-22 14:06:17 +00:00
< td class = 'control' > N / A </ td >
2009-07-19 14:59:06 +00:00
< td class = 'control' >< input type = 'checkbox' name = 'calc_pfx[admin]' { $pfx } value = '1' /></ td >
2009-07-23 06:55:39 +00:00
< td class = 'control' > " .RankImageDropdown( $imageList ,'calc_img[admin]', $info['image'] ). " </ td >
2008-12-22 14:06:17 +00:00
</ tr >
< tr >
< td colspan = '5' >& nbsp ; </ td >
2008-12-22 03:15:04 +00:00
</ tr >
" ;
2009-07-23 06:55:39 +00:00
foreach ( $ranks -> ranks [ 'data' ] as $k => $r )
2009-01-11 04:13:01 +00:00
{
2009-01-18 01:39:20 +00:00
$pfx_checked = ( $r [ 'lan_pfx' ] ? " checked='checked' " : '' );
2009-01-11 04:13:01 +00:00
$text .= "
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'control' > " .USRLAN_212. " </ td >
2009-01-17 03:27:17 +00:00
< td class = 'control' >
< input type = 'hidden' name = 'field_id[{$k}]' value = '1' />
2009-07-19 14:59:06 +00:00
< input class = 'tbox' type = 'text' name = 'calc_name[$k]' value = '{$r[' name ']}' />
2009-01-17 03:27:17 +00:00
</ td >
2009-07-19 14:59:06 +00:00
< td class = 'control' >< input class = 'tbox' type = 'text' size = '5' name = 'calc_lower[$k]' value = '{$r[' thresh ']}' /></ td >
< td class = 'control' >< input type = 'checkbox' name = 'calc_pfx[$k]' value = '1' { $pfx_checked } /></ td >
2009-07-23 06:55:39 +00:00
< td class = 'control' > " .RankImageDropdown( $imageList , " calc_img [ $k ] " , $r['image'] ). " & nbsp ; " . $frm->submit_image ( " delete_rank [{ $r [ 'id' ]}] " ,LAN_DELETE,'delete',USRLAN_213. " : [{ $r [ 'name' ]}] ? " ). "
2009-01-18 01:39:20 +00:00
</ td >
2009-01-11 04:13:01 +00:00
</ tr >
" ;
}
2008-12-22 14:06:17 +00:00
$text .= "
2009-01-18 01:39:20 +00:00
2008-12-22 14:06:17 +00:00
< tr >
2009-01-18 01:39:20 +00:00
< td class = 'control' colspan = '5' >& nbsp ; </ td >
</ tr >
< tr >
< td class = 'control' > " .USRLAN_214. " </ td >
2009-07-19 14:59:06 +00:00
< td class = 'control' >< input class = 'tbox' type = 'text' name = 'new_calc_name' value = '' /></ td >
< td class = 'control' >< input class = 'tbox' type = 'text' size = '5' name = 'new_calc_lower' value = '' /></ td >
< td class = 'control' >< input type = 'checkbox' name = 'new_calc_pfx' value = '1' /></ td >
2009-07-23 06:55:39 +00:00
< td class = 'control' > " .RankImageDropdown( $imageList ,'new_calc_img'). " </ td >
2009-01-11 04:13:01 +00:00
</ tr >
< tr >
< td colspan = '5' style = 'text-align:center' >
< br />
2009-01-18 01:39:20 +00:00
< input type = 'submit' name = 'updateRanks' value = '".USRLAN_215."' />
2009-01-11 04:13:01 +00:00
</ td >
2008-12-22 14:06:17 +00:00
</ tr >
2009-07-23 06:55:39 +00:00
" ;
2009-01-11 04:13:01 +00:00
$text .= '</table></form>' ;
2009-07-23 06:55:39 +00:00
$e107 -> ns -> tablerender ( 'Ranks' , $text );
include ( e_ADMIN . 'footer.php' );
2008-12-22 03:15:04 +00:00
exit ;
}
2009-07-23 06:55:39 +00:00
function RankImageDropdown ( & $imgList , $field , $curVal = '' )
2008-12-22 14:06:17 +00:00
{
2009-01-11 04:13:01 +00:00
$ret = "
< select class = 'tbox' name = '{$field}' >
2009-01-18 01:39:20 +00:00
< option value = '' > " .USRLAN_216. " </ option >
2009-01-11 04:13:01 +00:00
" ;
2009-07-23 06:55:39 +00:00
foreach ( $imgList as $img )
2008-12-22 14:06:17 +00:00
{
$sel = ( $img [ 'fname' ] == $curVal ? " selected='selected' " : '' );
$ret .= " \n <option { $sel } > { $img [ 'fname' ] } </option> " ;
}
2009-01-18 01:39:20 +00:00
$ret .= '</select>' ;
2008-12-22 14:06:17 +00:00
return $ret ;
}
2009-07-23 06:55:39 +00:00
2006-12-02 04:36:16 +00:00
?>