Admin Userlist aanpassen voor MODCP.

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
MrMax
Berichten: 96
Lid geworden op: 01 jan 2006, 23:39

Admin Userlist aanpassen voor MODCP.

Bericht door MrMax » 17 aug 2007, 19:16

Ik heb op mijn forum Moderator CP geinstalleerd.

Nu wil ik de Admin Userlist hier aan toevoegen.

Dat zou moeten kunnen door dit bestand aan te passen:

Code: Selecteer alles

<?php
/***************************************************************************
 *                              admin_userlist.php
 *                            -------------------
 *   begin                : Tuesday, 09 Feburary 2004
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', 1);

if( !empty($setmodules) )
{
	$filename = basename(__FILE__);
	$module['Users']['Userlist'] = $filename;

	return;
}

$phpbb_root_path = './../';
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

//
// Set mode
//
if( isset( $HTTP_POST_VARS['mode'] ) || isset( $HTTP_GET_VARS['mode'] ) )
{
	$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
	$mode = '';
}

//
// confirm
//
if( isset( $HTTP_POST_VARS['confirm'] ) || isset( $HTTP_GET_VARS['confirm'] ) )
{
	$confirm = true;
}
else
{
	$confirm = false;
}

//
// cancel
//
if( isset( $HTTP_POST_VARS['cancel'] ) || isset( $HTTP_GET_VARS['cancel'] ) )
{
	$cancel = true;
	$mode = '';
}
else
{
	$cancel = false;
}

//
// get starting position
//
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

//
// get show amount
//
if ( isset($HTTP_GET_VARS['show']) || isset($HTTP_POST_VARS['show']) )
{
	$show = ( isset($HTTP_POST_VARS['show']) ) ? intval($HTTP_POST_VARS['show']) : intval($HTTP_GET_VARS['show']);
}
else
{
	$show = $board_config['posts_per_page'];
}

//
// sort method
//
if ( isset($HTTP_GET_VARS['sort']) || isset($HTTP_POST_VARS['sort']) )
{
	$sort = ( isset($HTTP_POST_VARS['sort']) ) ? htmlspecialchars($HTTP_POST_VARS['sort']) : htmlspecialchars($HTTP_GET_VARS['sort']);
	$sort = str_replace("\'", "''", $sort);
}
else
{
	$sort = 'user_regdate';
}

//
// sort order
//
if( isset($HTTP_POST_VARS['order']) )
{
	$sort_order = ( $HTTP_POST_VARS['order'] == 'ASC' ) ? 'ASC' : 'DESC';
}
else if( isset($HTTP_GET_VARS['order']) )
{
	$sort_order = ( $HTTP_GET_VARS['order'] == 'ASC' ) ? 'ASC' : 'DESC';
}
else
{
	$sort_order = 'ASC';
}

//
// alphanumeric stuff
//
if ( isset($HTTP_GET_VARS['alphanum']) || isset($HTTP_POST_VARS['alphanum']) ) 
{ 
	$alphanum = ( isset($HTTP_POST_VARS['alphanum']) ) ? htmlspecialchars($HTTP_POST_VARS['alphanum']) : htmlspecialchars($HTTP_GET_VARS['alphanum']);
	$alphanum = str_replace("\'", "''", $alphanum);
	switch( $dbms )
	{
		case 'postgres':
			$alpha_where = ( $alphanum == 'num' ) ? "AND username !~ '^[A-Z]+'" : "AND username ILIKE '$alphanum%'";
			break;

		default:
			$alpha_where = ( $alphanum == 'num' ) ? "AND username NOT RLIKE '^[A-Z]'" : "AND username LIKE '$alphanum%'";
			break;
	}
}
else
{
	$alpahnum = '';
	$alpha_where = '';
}


$user_ids = array();
//
// users id
// because it is an array we will intval() it when we use it
//
if ( isset($HTTP_POST_VARS[POST_USERS_URL]) || isset($HTTP_GET_VARS[POST_USERS_URL]) )
{
	$user_ids = ( isset($HTTP_POST_VARS[POST_USERS_URL]) ) ? $HTTP_POST_VARS[POST_USERS_URL] : $HTTP_GET_VARS[POST_USERS_URL];
}
else
{
	unset($user_ids);
}


switch( $mode )
{
	case 'delete':

		//
		// see if cancel has been hit and redirect if it has
		// shouldn't get to this point if it has been hit but
		// do this just in case
		//
		if ( $cancel )
		{
			redirect($phpbb_root_path . 'admin/admin_userlist.'.$phpEx);
		}

		//
		// check confirm and either delete or show confirm message
		//
		if ( !$confirm )
		{
			// show message
			$i = 0;
			$hidden_fields = '';
			while( $i < count($user_ids) )
			{
				$user_id = intval($user_ids[$i]);
				$hidden_fields .= '<input type="hidden" name="' . POST_USERS_URL . '[]" value="' . $user_id . '">';

				unset($user_id);
				$i++;
			}

			$template->set_filenames(array(
				'body' => 'confirm_body.tpl')
			);
			$template->assign_vars(array(
				'MESSAGE_TITLE' => $lang['Delete'],
				'MESSAGE_TEXT' => $lang['Confirm_user_deleted'],
				
				'U_INDEX' => '',
				'L_INDEX' => '',
				
				'L_YES' => $lang['Yes'],
				'L_NO' => $lang['No'],
				
				'S_CONFIRM_ACTION' => append_sid('admin_userlist.'.$phpEx.'?mode=delete'),
				'S_HIDDEN_FIELDS' => $hidden_fields)
			);
		}
		else
		{
			// delete users
			$i = 0;
			while( $i < count($user_ids) )
			{
				$user_id = intval($user_ids[$i]);

				$sql = "SELECT u.username, g.group_id 
					FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g  
					WHERE ug.user_id = $user_id 
						AND g.group_id = ug.group_id 
						AND g.group_single_user = 1";
				if( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql);
				}

				$row = $db->sql_fetchrow($result);
				
				$sql = "UPDATE " . POSTS_TABLE . "
					SET poster_id = " . DELETED . ", post_username = '" . $row['username'] . "' 
					WHERE poster_id = $user_id";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql);
				}

				$sql = "UPDATE " . TOPICS_TABLE . "
					SET topic_poster = " . DELETED . " 
					WHERE topic_poster = $user_id";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql);
				}
				
				$sql = "UPDATE " . VOTE_USERS_TABLE . "
					SET vote_user_id = " . DELETED . "
					WHERE vote_user_id = $user_id";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql);
				}
				
				$sql = "SELECT group_id
					FROM " . GROUPS_TABLE . "
					WHERE group_moderator = $user_id";
				if( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql);
				}
				
				while ( $row_group = $db->sql_fetchrow($result) )
				{
					$group_moderator[] = $row_group['group_id'];
				}
				
				if ( count($group_moderator) )
				{
					$update_moderator_id = implode(', ', $group_moderator);
					
					$sql = "UPDATE " . GROUPS_TABLE . "
						SET group_moderator = " . $userdata['user_id'] . "
						WHERE group_moderator IN ($update_moderator_id)";
					if( !$db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
					}
				}

				$sql = "DELETE FROM " . USERS_TABLE . "
					WHERE user_id = $user_id";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql);
				}

				$sql = "DELETE FROM " . USER_GROUP_TABLE . "
					WHERE user_id = $user_id";
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql);
				}

				$sql = "DELETE FROM " . GROUPS_TABLE . "
					WHERE group_id = " . $row['group_id'];
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
				}

				$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
					WHERE group_id = " . $row['group_id'];
				if( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
				}

				$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
					WHERE user_id = $user_id";
				if ( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql);
				}
				
				$sql = "DELETE FROM " . BANLIST_TABLE . "
					WHERE ban_userid = $user_id";
				if ( !$db->sql_query($sql) )
				{
					message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql);
				}

				$sql = "SELECT privmsgs_id
					FROM " . PRIVMSGS_TABLE . "
					WHERE privmsgs_from_userid = $user_id 
						OR privmsgs_to_userid = $user_id";
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql);
				}

				// This little bit of code directly from the private messaging section.
				while ( $row_privmsgs = $db->sql_fetchrow($result) )
				{
					$mark_list[] = $row_privmsgs['privmsgs_id'];
				}
				
				if ( count($mark_list) )
				{
					$delete_sql_id = implode(', ', $mark_list);
					
					$delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . "
						WHERE privmsgs_text_id IN ($delete_sql_id)";
					$delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . "
						WHERE privmsgs_id IN ($delete_sql_id)";
					
					if ( !$db->sql_query($delete_sql) )
					{
						message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql);
					}
					
					if ( !$db->sql_query($delete_text_sql) )
					{
						message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql);
					}
				}

				unset($user_id);
				$i++;
			}

			$message = $lang['User_deleted_successfully'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);
		}		
		break;

	case 'ban':

		//
		// see if cancel has been hit and redirect if it has
		// shouldn't get to this point if it has been hit but
		// do this just in case
		//
		if ( $cancel )
		{
			redirect($phpbb_root_path . 'admin/admin_userlist.'.$phpEx);
		}

		//
		// check confirm and either ban or show confirm message
		//
		if ( !$confirm )
		{
			$i = 0;
			$hidden_fields = '';
			while( $i < count($user_ids) )
			{
				$user_id = intval($user_ids[$i]);
				$hidden_fields .= '<input type="hidden" name="' . POST_USERS_URL . '[]" value="' . $user_id . '">';

				unset($user_id);
				$i++;
			}

			$template->set_filenames(array(
				'body' => 'confirm_body.tpl')
			);
			$template->assign_vars(array(
				'MESSAGE_TITLE' => $lang['Ban'],
				'MESSAGE_TEXT' => $lang['Confirm_user_ban'],
				
				'U_INDEX' => '',
				'L_INDEX' => '',
				
				'L_YES' => $lang['Yes'],
				'L_NO' => $lang['No'],
				
				'S_CONFIRM_ACTION' => append_sid('admin_userlist.'.$phpEx.'?mode=ban'),
				'S_HIDDEN_FIELDS' => $hidden_fields)
			);	
		}
		else
		{
			// ban users
			$i = 0;
			while( $i < count($user_ids) )
			{
				$user_id = intval($user_ids[$i]);
	
				$sql = "INSERT INTO " . BANLIST_TABLE . " ( ban_userid )
					VALUES ( '$user_id' )";
				if( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not obtain ban user', '', __LINE__, __FILE__, $sql);
				}

				unset($user_id);
				$i++;
			}

			$message = $lang['User_banned_successfully'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);
		}
		break;

	case 'activate':

		//
		// activate or deactive the seleted users
		//
		$i = 0;
		while( $i < count($user_ids) )
		{
			$user_id = intval($user_ids[$i]);
			$sql = "SELECT user_active FROM " . USERS_TABLE . "
				WHERE user_id = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
			}
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			$new_status = ( $row['user_active'] ) ? 0 : 1;

			$sql = "UPDATE " .  USERS_TABLE . " 
				SET user_active = '$new_status'
				WHERE user_id = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not update user status', '', __LINE__, __FILE__, $sql);
			}
			
			unset($user_id);
			$i++;
		}

		$message = $lang['User_status_updated'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

		message_die(GENERAL_MESSAGE, $message);
		break;

	case 'group':

		//
		// add users to a group
		//
		if ( !$confirm )
		{
			// show form to select which group to add users to
			$i = 0;
			$hidden_fields = '';
			while( $i < count($user_ids) )
			{
				$user_id = intval($user_ids[$i]);
				$hidden_fields .= '<input type="hidden" name="' . POST_USERS_URL . '[]" value="' . $user_id . '">';

				unset($user_id);
				$i++;
			}

			$template->set_filenames(array(
				'body' => 'admin/userlist_group.tpl')
			);

			$template->assign_vars(array(
				'MESSAGE_TITLE' => $lang['Add_group'],
				'MESSAGE_TEXT' => $lang['Add_group_explain'],

				'L_GROUP' => $lang['Group'],
				
				'S_GROUP_VARIABLE' => POST_GROUPS_URL,
				'S_ACTION' => append_sid($phpbb_root_path . 'admin/admin_userlist.'.$phpEx.'?mode=group'),
				'L_GO' => $lang['Go'],
				'L_CANCEL' => $lang['Cancel'],
				'L_SELECT' => $lang['Select_one'],
				'S_HIDDEN_FIELDS' => $hidden_fields)
			);

			$sql = "SELECT group_id, group_name FROM " . GROUPS_TABLE . "
				WHERE group_single_user <> " . TRUE . " 
				ORDER BY group_name";
			
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not query groups', '', __LINE__, __FILE__, $sql);
			}

			// loop through groups
			while ( $row = $db->sql_fetchrow($result) )
			{
				$template->assign_block_vars('grouprow',array(
					'GROUP_NAME' => $row['group_name'],
					'GROUP_ID' => $row['group_id'])
				);
			}
		}
		else
		{
			// add the users to the selected group
			$group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]);

			include($phpbb_root_path . 'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);

			$i = 0;
			while( $i < count($user_ids) )
			{
				$user_id = intval($user_ids[$i]);

				//
				// For security, get the ID of the group moderator.
				//
				switch(SQL_LAYER)
				{
					/*case 'postgresql':
						$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod 
							FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa 
							WHERE g.group_id = $group_id
								AND aa.group_id = g.group_id 
								UNION (
									SELECT g.group_moderator, g.group_type, NULL 
									FROM " . GROUPS_TABLE . " g
									WHERE g.group_id = $group_id
										AND NOT EXISTS (
										SELECT aa.group_id 
										FROM " . AUTH_ACCESS_TABLE . " aa 
										WHERE aa.group_id = g.group_id  
									)
								)";
						break;*/

					case 'oracle':
						$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod 
							FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa 
							WHERE g.group_id = $group_id
								AND aa.group_id = g.group_id(+)";
						break;

					default:
						$sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod 
							FROM ( " . GROUPS_TABLE . " g 
							LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id )
							WHERE g.group_id = $group_id";
						break;
				}
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not get moderator information', '', __LINE__, __FILE__, $sql);
				}

				$group_info = $db->sql_fetchrow($result);

				$sql = "SELECT user_id, user_email, user_lang, user_level  
					FROM " . USERS_TABLE . " 
					WHERE user_id = $user_id";
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, "Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql);
				}
				$row = $db->sql_fetchrow($result);
				
				$sql = "SELECT ug.user_id, u.user_level 
					FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u 
					WHERE u.user_id = " . $row['user_id'] . " 
						AND ug.user_id = u.user_id 
						AND ug.group_id = $group_id";
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE__, __FILE__, $sql);
				}

				if ( !($db->sql_fetchrow($result)) )
				{
					$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) 
						VALUES (" . $row['user_id'] . ", $group_id, 0)";
					if ( !$db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Could not add user to group', '', __LINE__, __FILE__, $sql);
					}
					
					if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_level = " . MOD . " 
							WHERE user_id = " . $row['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
						}
					}

					//
					// Get the group name
					// Email the user and tell them they're in the group
					//
					$group_sql = "SELECT group_name 
						FROM " . GROUPS_TABLE . " 
						WHERE group_id = $group_id";
					if ( !($result = $db->sql_query($group_sql)) )
					{
						message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql);
					}

					$group_name_row = $db->sql_fetchrow($result);

					$group_name = $group_name_row['group_name'];

					$script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path']));
					$script_name = ( $script_name != '' ) ? $script_name . '/groupcp.'.$phpEx : 'groupcp.'.$phpEx;
					$server_name = trim($board_config['server_name']);
					$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://';
					$server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/';

					$server_url = $server_protocol . $server_name . $server_port . $script_name;

					$emailer->from($board_config['board_email']);
					$emailer->replyto($board_config['board_email']);

					$emailer->use_template('group_added', $row['user_lang']);
					$emailer->email_address($row['user_email']);
					$emailer->set_subject($lang['Group_added']);

					$emailer->assign_vars(array(
						'SITENAME' => $board_config['sitename'], 
						'GROUP_NAME' => $group_name,
						'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '', 

						'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id")
					);
					$emailer->send();
					$emailer->reset();
					
				}

				unset($user_id);
				$i++;
			}

			$message = $lang['User_add_group_successfully'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);
		}
		break;

	default:

		//
		// get and display all of the users
		//
		$template->set_filenames(array(
		  'body' => 'admin/userlist_body.tpl')
		);

		//
		// gets for alphanum
		//
		$alpha_range = array();
		$alpha_letters = array();
		$alpha_letters = range('A','Z');
		$alpha_start = array($lang['All'], '#');
		$alpha_range = array_merge($alpha_start, $alpha_letters);

		$i = 0;
		while( $i < count($alpha_range) )
		{
			
			if ( $alpha_range[$i] != $lang['All'] )
			{
				if ( $alpha_range[$i] != '#' )
				{
					$temp = strtolower($alpha_range[$i]);
				}
				else
				{
					$temp = 'num';
				}
				$alphanum_search_url = append_sid($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show&alphanum=$temp");
			}
			else
			{
				$alphanum_search_url = append_sid($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show");
			}

			if ( ( $alphanum == $temp ) || ( $alpha_range[$i] == $lang['All'] && empty($alphanum) ) )
			{
				$alpha_range[$i] = '<b>' . $alpha_range[$i] . '</b>';
			}

			$template->assign_block_vars('alphanumsearch', array(
				'SEARCH_SIZE' => floor(100/count($alpha_range)) . '%',
				'SEARCH_TERM' => $alpha_range[$i],
				'SEARCH_LINK' => $alphanum_search_url)
			);

			$i++;
		}

		$hidden_fields = '<input type="hidden" name="start" value="' . $start . '">';
		$hidden_fields .= '<input type="hidden" name="alphanum" value="' . $alphanum . '">';

		//
		// set up template varibles
		//
		$template->assign_vars(array(
			'L_TITLE' => $lang['Userlist'],
			'L_DESCRIPTION' => $lang['Userlist_description'],
			
			'L_OPEN_CLOSE' => $lang['Open_close'],
			'L_ACTIVE' => $lang['Active'],
			'L_USERNAME' => $lang['Username'],
			'L_GROUP' => $lang['Group'],
			'L_RANK' => $lang['Rank'],
			'L_POSTS' => $lang['Posts'],
			'L_FIND_ALL_POSTS' => $lang['Find_all_posts'],
			'L_JOINED' => $lang['Joined'],
			'L_ACTIVTY' => $lang['Last_activity'],
			'L_MANAGE' => $lang['User_manage'],
			'L_PERMISSIONS' => $lang['Permissions'],
			'L_EMAIL' => $lang['Email'],
			'L_PM' => $lang['Private_Message'],
			'L_WEBSITE' => $lang['Website'],
					
			'S_USER_VARIABLE' => POST_USERS_URL,
			'S_ACTION' => append_sid($phpbb_root_path . 'admin/admin_userlist.'.$phpEx),
			'L_GO' => $lang['Go'],
			'L_SELECT' => $lang['Select_one'],
			'L_DELETE' => $lang['Delete'],
			'L_BAN' => $lang['Ban'],
			'L_ACTIVATE_DEACTIVATE' => $lang['Activate_deactivate'],
			'L_ADD_GROUP' => $lang['Add_group'],
					
			'S_SHOW' => $show,
			'L_SORT_BY' => $lang['Sort_by'],
			'L_USER_ID' => $lang['User_id'],
			'L_USER_LEVEL' => $lang['User_level'],
			'L_ASCENDING' => $lang['Ascending'],
			'L_DESCENDING' => $lang['Descending'],
			'L_SHOW' => $lang['Show'],
			'S_SORT' => $lang['Sort'],
			'S_HIDDEN_FIELDS' => $hidden_fields)
		);

		$order_by = "ORDER BY $sort $order ";

		$sql = "SELECT * 
			FROM " . USERS_TABLE . "
			WHERE user_id <> " . ANONYMOUS . " 
				$alpha_where 
			$order_by
			LIMIT $start, $show";

		if( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
		}

		// loop through users
		$i = 1;
		while ( $row = $db->sql_fetchrow($result) )
		{
			//
			// users avatar
			//
			$avatar_img = '';
			if ( $row['user_avatar_type'] && $row['user_allowavatar'] )
			{
				switch( $row['user_avatar_type'] )
				{
					case USER_AVATAR_UPLOAD:
						$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $phpbb_root_path . $board_config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
						break;
					case USER_AVATAR_REMOTE:
						$avatar_img = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : '';
						break;
					case USER_AVATAR_GALLERY:
						$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $phpbb_root_path . $board_config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
						break;
				}
			}
				
			//
			// users rank
			//
			$rank_sql = "SELECT *
				FROM " . RANKS_TABLE . "
				ORDER BY rank_special, rank_min";
			if ( !($rank_result = $db->sql_query($rank_sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain ranks information', '', __LINE__, __FILE__, $sql);
			}

			while ( $rank_row = $db->sql_fetchrow($rank_result) )
			{
				$ranksrow[] = $rank_row;
			}
			$db->sql_freeresult($rank_result);

			$poster_rank = '';
			$rank_image = '';
			if ( $row['user_rank'] )
			{
				for($ji = 0; $ji < count($ranksrow); $ji++)
				{
					if ( $row['user_rank'] == $ranksrow[$ji]['rank_id'] && $ranksrow[$ji]['rank_special'] )
					{
						$poster_rank = $ranksrow[$ji]['rank_title'];
						$rank_image = ( $ranksrow[$ji]['rank_image'] ) ? '<img src="' . $phpbb_root_path . $ranksrow[$ji]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
					}
				}
			}
			else
			{
				for($ji = 0; $ji < count($ranksrow); $ji++)
				{
					if ( $row['user_posts'] >= $ranksrow[$ji]['rank_min'] && !$ranksrow[$ji]['rank_special'] )
					{
						$poster_rank = $ranksrow[$ji]['rank_title'];
						$rank_image = ( $ranksrow[$ji]['rank_image'] ) ? '<img src="' . $phpbb_root_path . $ranksrow[$ji]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
					}
				}
			}
				
			//
			// user's color depending on their level
			//
			$style_color = '';
			if ( $row['user_level'] == ADMIN )
			{
				$row['username'] = '<b>' . $row['username'] . '</b>';
				$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
			}
			else if ( $row['user_level'] == MOD )
			{
				$row['username'] = '<b>' . $row['username'] . '</b>';
				$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
			}

			//
			// setup user row template varibles
			//
			$template->assign_block_vars('user_row', array(
				'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
				'ROW_CLASS' => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],

				'USER_ID' => $row['user_id'],
				'ACTIVE' => ( $row['user_active'] == TRUE ) ? $lang['Yes'] : $lang['No'],
				'STYLE_COLOR' => $style_color,
				'USERNAME' => $row['username'],
				'U_PROFILE' => append_sid($phpbb_root_path . 'profile.'.$phpEx.'?mode=viewprofile&' . POST_USERS_URL . '=' . $row['user_id']),

				'RANK' => $poster_rank,
				'I_RANK' => $rank_image,
				'I_AVATAR' => $avatar_img,

				'JOINED' => create_date('d M Y', $row['user_regdate'], $board_config['board_timezone']),
				'LAST_ACTIVITY' => ( !empty($row['user_session_time']) ) ? create_date('d M Y', $row['user_session_time'], $board_config['board_timezone']) : $lang['Never'],

				'POSTS' => ( $row['user_posts'] ) ? $row['user_posts'] : 0,
				'U_SEARCH' => append_sid($phpbb_root_path . 'search.'.$phpEx.'?search_author=' . urlencode(strip_tags($row['username'])) . '&showresults=posts'),

				'U_WEBSITE' => ( $row['user_website'] ) ? $row['user_website'] : '',

				'EMAIL' => $row['user_email'],
				'U_PM' => append_sid($phpbb_root_path . 'privmsg.' . $phpEx . '?mode=post&' . POST_USERS_URL . '='. $row['user_id']),
				'U_MANAGE' => append_sid($phpbb_root_path . 'admin/admin_users.'.$phpEx.'?mode=edit&' . POST_USERS_URL . '=' . $row['user_id']),
				'U_PERMISSIONS' => append_sid($phpbb_root_path . 'admin/admin_ug_auth.'.$phpEx.'?mode=user&' . POST_USERS_URL . '=' . $row['user_id']))
			);

			//
			// get the users group information
			//
			$group_sql = "SELECT * FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
				WHERE ug.user_id = " . $row['user_id'] . "
				 AND g.group_single_user <> 1
				 AND g.group_id = ug.group_id";
				
			if( !($group_result = $db->sql_query($group_sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not query groups', '', __LINE__, __FILE__, $group_sql);
			}
			$g = 0;
			while ( $group_row = $db->sql_fetchrow($group_result) )
			{
				//
				// assign the group varibles
				//
				if ( $group_row['group_moderator'] == $row['user_id'] )
				{
					$group_status = $lang['Moderator'];
				}
				else if ( $group_row['user_pending'] == true )
				{
					$group_status = $lang['Pending'];
				}
				else
				{
					$group_status = $lang['Member'];
				}

				$template->assign_block_vars('user_row.group_row', array(
					'GROUP_NAME' => $group_row['group_name'],
					'GROUP_STATUS' => $group_status,
					'U_GROUP' => $phpbb_root_path . 'groupcp.'.$phpEx.'?'.POST_GROUPS_URL.'='.$group_row['group_id'])
				);
				$g++;
			}

			if ( $g == 0 )
			{
				$template->assign_block_vars('user_row.no_group_row', array(
					'L_NONE' => $lang['None'])
				);
			}
				
			$i++;
		}
		$db->sql_freeresult($result);

		$count_sql = "SELECT count(user_id) AS total 
			FROM " . USERS_TABLE . " 
			WHERE user_id <> " . ANONYMOUS . " $alpha_where";

		if ( !($count_result = $db->sql_query($count_sql)) )
		{
			message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql);
		}

		if ( $total = $db->sql_fetchrow($count_result) )
		{
			$total_members = $total['total'];

			$pagination = generate_pagination($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show" . ( ( isset($alphanum) ) ? "&alphanum=$alphanum" : '' ), $total_members, $show, $start);
		}

		$template->assign_vars(array(
			'PAGINATION' => $pagination,
			'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $show ) + 1 ), ceil( $total_members / $show )))
		);

		break;

} // switch()

$template->pparse('body');

include('./page_footer_admin.'.$phpEx);

?>
aan de hand van dit document:

Code: Selecteer alles

##############################################################
## MOD Title:		How to add new Modules
## MOD Author:		kooky < [nospam]kooky@altern.org > (n/a) http://www.myphpbb.zaup.org/
## MOD Author:		Milkman < milkman@web-milk.co.uk > (Phill Sparks) http://www.lsucs.com/
## MOD Description:	Explains how to add new modules for the Moderator CP.
## MOD Version:		1.0.4
##
## Installation Level:	Easy
## Installation Time:	2 minutes
## Files To Edit:	2
##			modcp/admin_xxx.php
##			templates/subSilver/admin/modcp_config_body.tpl
## Included Files:	N/A
##
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes:
##
## How to, for understanding purpose.
##
## Legend:
## -------
## - name_of_your_file = xxx
## - NAME_OF_YOUR_CATEGORY = CAT
## - NAME_OF_YOUR_MODULE = MOD
##
##############################################################
## MOD History:
##
## 2005/11/26 - Version 1.0.4
##	- Updated to match the Moderator CP version 1.1.1
##
## 2005/08/24 - Version 1.0.3 (Milkman)
##	- Updated to match the Moderator CP version 1.1.0
##
## 2005/07/25 - Version 1.0.2
##	- Updated to match the Moderator CP version 1.0.10
##
## 2004/12/28 - Version 1.0.1
##	- Updated to match the Moderator CP version 1.0.7
##
## 2004/09/09 - Version 1.0.0
##	- Initial Release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ COPY ]------------------------------------------
#
copy root/admin/admin_xxx.php to modcp/admin_xxx.php
copy root/templates/subSilver/admin/xxx_body.tpl to templates/subSilver/modcp/xxx_body.tpl

#
#-----[ OPEN ]------------------------------------------
#
modcp/admin_xxx.php

#
#-----[ FIND ]------------------------------------------
# each time you have
# $module['CAT']['MOD'] = $filename;
#
	$module['CAT']['MOD'] = $filename;
#
#-----[ REPLACE WITH ]------------------------------------------
#
	if (check_perms('CAT', 'MOD'))
		$modcp_module['CAT']['MOD'] = $filename;

#
#-----[ FIND ]------------------------------------------
#
$phpbb_root_path = './../';
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

#
#-----[ AFTER ADD ]------------------------------------------
# If you have more than one module item you'll need to add 
# more of these blocks, and check for the $module too.
#
// Enable/disable the Module
if (!check_perms('CAT', 'MOD'))
{
	// End of Activation
	$message = $lang['Module_disabled'] . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid('index.' . $phpEx . '?pane=right') . '">', '</a>');
	message_die(GENERAL_MESSAGE, $message);
}

#
#-----[ FIND ]------------------------------------------
# each time you have admin/xxx_body.tpl
#
"body" => "admin/xxx_body.tpl"
#
#-----[ REPLACE WITH ]------------------------------------------
#
'body' => 'modcp/xxx_body.tpl'
#
#-----[ FIND ]------------------------------------------
# each time you have page_footer_admin
#
include('./page_footer_admin.'.$phpEx);
#
#-----[ REPLACE WITH ]------------------------------------------
#
include('./page_footer_mod.' . $phpEx);
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Echter wil dit bij mij niet lukken...

Hij komt in het lijstje 'Modules that cannot be installed.' van de configuratie van mij ModCP te staan.
Deze tekst staat erbij: 'These modules cannot be configured. This probably means that they have not been modified to work with the modcp. Please contact your site administrator about this.'

Iemand die mij kan helpen?

Gebruikersavatar
Tom V
Berichten: 2487
Lid geworden op: 24 jan 2006, 17:04
Locatie: Houtvenne (BE)
Contacteer:

Re: Admin Userlist aanpassen voor MODCP.

Bericht door Tom V » 17 aug 2007, 19:36

modcp bovenstaande link zou het moeten doen

Gebruikersavatar
MrMax
Berichten: 96
Lid geworden op: 01 jan 2006, 23:39

Re: Admin Userlist aanpassen voor MODCP.

Bericht door MrMax » 17 aug 2007, 19:41

Dark Inca schreef:modcp bovenstaande link zou het moeten doen

Je bent een topper! :D :D :D
Ga het gelijk ff proberen ;)

Gebruikersavatar
Tom V
Berichten: 2487
Lid geworden op: 24 jan 2006, 17:04
Locatie: Houtvenne (BE)
Contacteer:

Re: Admin Userlist aanpassen voor MODCP.

Bericht door Tom V » 17 aug 2007, 19:49

admin userlist heeft wel verschillende links: admin_ug_auth en admin_users.
Als moderators geen rechten hebben tot deze 2 bestanden (aangepast voor modcp) dan werkt ook een deel van deze mod niet (de links althans)

Gebruikersavatar
MrMax
Berichten: 96
Lid geworden op: 01 jan 2006, 23:39

Re: Admin Userlist aanpassen voor MODCP.

Bericht door MrMax » 17 aug 2007, 20:01

Dark Inca schreef:admin userlist heeft wel verschillende links: admin_ug_auth en admin_users.
Als moderators geen rechten hebben tot deze 2 bestanden (aangepast voor modcp) dan werkt ook een deel van deze mod niet (de links althans)
Wat moet werken, doet het iig ;)
thanx :P

Gebruikersavatar
MrMax
Berichten: 96
Lid geworden op: 01 jan 2006, 23:39

Re: Admin Userlist aanpassen voor MODCP.

Bericht door MrMax » 19 aug 2007, 10:39

Wil iemand aub ook deze doen:

Code: Selecteer alles

<?php
define('IN_PHPBB', 1);
if( !empty($setmodules) )
{
	$file = basename(__FILE__);
	$module['Users']['Account_inactive'] = $file .'?action=inactive';
	$module['Users']['Account_active'] = $file .'?action=active';
	return;
}

$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

if( !function_exists('period') )
{
	function period($date) // borrowed from birthday mod
	{
		global $lang;

		$years = floor($date/31536000);
		$date = $date - ($years*31536000);
		$weeks = floor($date/604800);
		$date = $date - ($weeks*604800);
		$days = floor($date/86400);
		$date = $date - ($days*86400);
		$hours = floor($date/3600);

		$result = (( $years ) ? $years .' '. (( $years == '1' ) ? $lang['Account_year'] : $lang['Account_years']) .', ' : '').
		(( $years || $weeks ) ? $weeks .' '. (( $weeks == '1' ) ? $lang['Account_week'] : $lang['Account_weeks']) .', ' : '').
		(( $years || $weeks || $days ) ? $days .' '. (( $days == '1' ) ? $lang['Account_day'] : $lang['Account_days']) .', ' : '') .
		(( $years || $weeks || $days || $hours ) ? $hours .' '. (( $hours == '1' ) ? $lang['Account_hour'] : $lang['Account_hours']) : '');
		return $result;
	}
}

$submit_wait = ( isset($HTTP_POST_VARS['submit_wait']) ) ? TRUE : 0;
$confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : 0;
$delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : 0;
$activate = ( isset($HTTP_POST_VARS['activate']) ) ? TRUE : 0;
$mark_list = ( !empty($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : 0;

if( isset($HTTP_POST_VARS['letter']) )
{
	$by_letter = ( $HTTP_POST_VARS['letter'] ) ? $HTTP_POST_VARS['letter'] : 'all';
}
else if( isset($HTTP_GET_VARS['letter']) )
{
	$by_letter = ( $HTTP_GET_VARS['letter'] ) ? $HTTP_GET_VARS['letter'] : 'all';
}

if( isset($HTTP_POST_VARS['action']) || isset($HTTP_GET_VARS['action']) )
{
	$action = ( isset($HTTP_POST_VARS['action']) ) ? $HTTP_POST_VARS['action'] : $HTTP_GET_VARS['action'];
	if( $action != 'inactive' && $action != 'active' )
	{
		$action = 'inactive';
	}
}
else
{
	$action = 'inactive';
}

if( !empty($HTTP_POST_VARS['mode']) || !empty($HTTP_GET_VARS['mode']) )
{
	$mode = ( !empty($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
	$mode = '';
}

$start = ( !empty($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

if( isset($HTTP_POST_VARS[POST_USERS_URL]) || isset($HTTP_GET_VARS[POST_USERS_URL]) )
{
	$user_id = ( isset($HTTP_POST_VARS[POST_USERS_URL]) ) ? intval($HTTP_POST_VARS[POST_USERS_URL]) : intval($HTTP_GET_VARS[POST_USERS_URL]);
}
else
{
	$user_id = '';
}

if( (($delete && $confirm) || $activate) && $mark_list )
{
	if( count($mark_list) )
	{
		$email_id = '';
		for( $i = 0; $i < count($mark_list); $i++ )
		{
			$email_id .= (($email_id != '') ? ', ' : '') . intval($mark_list[$i]);
		}

		$sql_mail = "SELECT username, user_email, user_lang, user_active FROM ". USERS_TABLE ." WHERE user_id IN ($email_id)";
		if( !($result_mail = $db->sql_query($sql_mail)) )
		{
			message_die(GENERAL_ERROR, 'could not get mail addresses', '', __LINE__, __FILE__, $sql_mail);
		}
		while( $mail = $db->sql_fetchrow($result_mail) )
		{
			if( $delete )
			{
				$subject = $lang['Account_deleted'];
				$text = $lang['Account_deleted_text'];
			}
			else if( $activate )
			{
				$subject = ( $mail['user_active'] == '0' ) ? $lang['Account_activated'] : $lang['Account_deactivated'];
				$text = ( $mail['user_active'] == '0' ) ? $lang['Account_activated_text'] : $lang['Account_deactivated_text'];
			}

			include_once($phpbb_root_path .'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);
			$emailer->from($board_config['board_email']);
			$emailer->replyto($board_config['board_email']);
			$emailer->use_template('admin_account_action', stripslashes($mail['user_lang']));
			$emailer->email_address($mail['user_email']);
			$emailer->set_subject($subject);

			$emailer->assign_vars(array(
				'SUBJECT' => $subject,
				'TEXT' => sprintf($text, $board_config['sitename']),
				'USERNAME' => $mail['username'],
				'EMAIL_SIG' => ( !empty($board_config['board_email_sig']) ) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',
			));
			$emailer->send();
			$emailer->reset();
		}
		$db->sql_freeresult($result_mail);
	}
}

if( $delete && $mark_list )
{
	if( isset($mark_list) && !is_array($mark_list) )
	{
		$mark_list = array();
	}

	if( !$confirm )
	{
		$s_hidden_fields = '<input type="hidden" name="mode" value="'. $mode .'" />';
		$s_hidden_fields .= '<input type="hidden" name="delete" value="true" />';

		for( $i = 0; $i < count($mark_list); $i++ )
		{
			$s_hidden_fields .= '<input type="hidden" name="mark[]" value="'. intval($mark_list[$i]) .'" />';
		}

		$template->set_filenames(array(
			'confirm_body' => 'confirm_body.tpl')
		);
		$template->assign_vars(array(
			'MESSAGE_TITLE' => $lang['Information'],
			'MESSAGE_TEXT' => ( count($mark_list) == '1' ) ? $lang['Account_delete_user'] : $lang['Account_delete_users'],
			'L_YES' => $lang['Yes'],
			'L_NO' => $lang['No'],
			'S_CONFIRM_ACTION' => append_sid("admin_account.$phpEx?action=$action"),
			'S_HIDDEN_FIELDS' => $s_hidden_fields,
		));
		$template->pparse('confirm_body');
		include('./page_footer_admin.'.$phpEx);
	}
	else if( $confirm )
	{
		if( count($mark_list) )
		{
			$delete_id = '';
			for( $i = 0; $i < sizeof($mark_list); $i++ )
			{
				$delete_id .= (($delete_id != '') ? ', ' : '') . intval($mark_list[$i]);
			}

			$delete_u_sql = "DELETE FROM ". USERS_TABLE ." WHERE user_id IN ($delete_id) AND user_id <> ". ANONYMOUS ." AND ";
			switch( $action )
			{
				case 'inactive':
					$delete_u_sql .= "user_active = '0'";
					break;
				case 'active':
					$delete_u_sql .= "user_active = '1'";
					break;
			}
			if( !$db->sql_query($delete_u_sql, BEGIN_TRANSACTION) )
			{
				message_die(GENERAL_ERROR, 'could not delete users.', '', __LINE__, __FILE__, $delete_u_sql);
			}

			$delete_ug_sql = "DELETE FROM ". USER_GROUP_TABLE ." WHERE user_id IN ($delete_id) AND user_id <> ". ANONYMOUS;
			if ( !$db->sql_query($delete_ug_sql, END_TRANSACTION) )
			{
				message_die(GENERAL_ERROR, 'could not delete user groups.', '', __LINE__, __FILE__, $delete_ug_sql);
			}

			$select_g_sql = "SELECT g.group_id FROM ". GROUPS_TABLE ." g
                                                             LEFT JOIN ". USER_GROUP_TABLE ." ug ON g.group_id = ug.group_id
					 WHERE group_single_user = 1 AND ug.group_id IS NULL";
			if( !($result = $db->sql_query($select_g_sql)) )
			{
				message_die(GENERAL_ERROR, 'could not obtain group information.', '', __LINE__, __FILE__, $select_g_sql);
			}
			while( $group = $db->sql_fetchrow($result) )
			{
				$delete_g_sql = "DELETE FROM ". GROUPS_TABLE ." WHERE group_id = '". $group['group_id'] ."'";
				if( !($db->sql_query($delete_g_sql)) )
				{
					message_die(GENERAL_ERROR, 'could not delete group.', '', __LINE__, __FILE__, $delete_g_sql);
				}
			}
			$db->sql_freeresult($result);

			$template->assign_vars(array('MESSAGE' => (( count($mark_list) == '1' ) ? $lang['Account_user_deleted'] : $lang['Account_users_deleted']).' '. $lang['Account_notification']));
			$template->assign_block_vars("switch_message", array() );
		}
	}
}
else if( $activate && $mark_list )
{
	if( sizeof($mark_list) )
	{
		$activate_id = '';
		for ($i = 0; $i < sizeof($mark_list); $i++)
		{
			$activate_id .= (($activate_id != '') ? ', ' : '') . intval($mark_list[$i]);
		}

		$activate_sql = "UPDATE ". USERS_TABLE;
		switch( $action )
		{
			case 'inactive':
				$activate_sql .= " SET user_active = '1' WHERE user_active = '0'";
				break;
			case 'active':
				$activate_sql .= " SET user_active = '0' WHERE user_active = '1'";
				break;
		}
		$activate_sql .= " AND user_id IN ($activate_id)";
		if( !$db->sql_query($activate_sql) )
		{
			message_die(GENERAL_ERROR, 'could not activate users.', '', __LINE__, __FILE__, $activate_sql);
		}

		$template->assign_vars(array('MESSAGE' => (( count($mark_list) == '1' ) ? (( $action == 'active' ) ? $lang['Account_user_deactivated'] : $lang['Account_user_activated']) : (( $action == 'active' ) ? $lang['Account_users_deactivated'] : $lang['Account_users_activated'])).' '. $lang['Account_notification']));
		$template->assign_block_vars("switch_message", array() );
	}
}

//
// Output
//
$template->set_filenames(array('body' => 'admin/admin_account_body.tpl'));

$others_sql = '';
$select_letter = '';
for( $i = 97; $i <= 122; $i++ )
{
	$others_sql .= " AND username NOT LIKE '" . chr($i) . "%' ";
	$select_letter .= ( $by_letter == chr($i) ) ? strtoupper(chr($i)) .'&nbsp;' : '<a href="'. append_sid("admin_account.$phpEx?action=$action&letter=". chr($i) ."&start=$start") .'">'. strtoupper(chr($i)) .'</a>&nbsp;';
}
$select_letter .= ( $by_letter == 'others' ) ? $lang['Account_others'] .'&nbsp;' : '<a href="'. append_sid("admin_account.$phpEx?action=$action&letter=others&start=$start") .'">'. $lang['Account_others'] .'</a>&nbsp;';
$select_letter .= ( $by_letter == 'all' ) ? $lang['Account_all'] : '<a href="'. append_sid("admin_account.$phpEx?action=$action&letter=all&start=$start") .'">'. $lang['Account_all'] .'</a>';

if( $by_letter == 'all' )
{
	$letter_sql = '';
}
else if( $by_letter == 'others' )
{
	$letter_sql = $others_sql;
}
else
{
	$letter_sql = " AND username LIKE '$by_letter%' ";
}

$sql_count = "SELECT COUNT(user_id) AS total_users FROM ". USERS_TABLE ." ";
$sql = "SELECT username, user_id, user_actkey, user_regdate, user_email FROM ". USERS_TABLE ." ";
switch( $action )
{
	case 'inactive':
		$sql_count .= "WHERE user_id <> ". ANONYMOUS ." AND user_active != '1' $letter_sql";
		$sql .= "WHERE user_id <> ". ANONYMOUS ." AND user_active != '1' $letter_sql";
		break;
	case 'active':
		$sql_count .= "WHERE user_id <> ". ANONYMOUS ." AND user_active != '0' $letter_sql";
		$sql .= "WHERE user_id <> ". ANONYMOUS ." AND user_active != '0' $letter_sql";
		break;
	default:
		message_die(GENERAL_MESSAGE, $lang['No_mode']);
		break;
}

if( $submit_wait && (!empty($HTTP_POST_VARS['days']) || !empty($HTTP_GET_VARS['days'])) )
{
	$days = ( !empty($HTTP_POST_VARS['days']) ) ? intval($HTTP_POST_VARS['days']) : intval($HTTP_GET_VARS['days']);
	$awaits = time() - ($days * 86400);

	$limit_awaits_count = " AND user_regdate > $awaits";
	$limit_awaits = " AND user_regdate > $awaits ";

	if( !empty($HTTP_POST_VARS['days']) )
	{
		$start = 0;
	}
}
else
{
	$limit_awaits = '';
	$post_days = 0;
}

$sql .= $limit_awaits ." ORDER BY user_regdate DESC LIMIT $start, ". $board_config['posts_per_page'];
$sql_all = $sql_count;
$sql_count .= $limit_awaits_count;

if( !($result = $db->sql_query($sql_count)) )
{
	message_die(GENERAL_ERROR, 'could not query users information.', '', __LINE__, __FILE__, $sql_count);
}

$total_users = ( $row = $db->sql_fetchrow($result) ) ? $row['total_users'] : 0;
if( !($result = $db->sql_query($sql_all)) )
{
	message_die(GENERAL_ERROR, 'could not query users information.', '', __LINE__, __FILE__, $sql_all);
}

$all_total_users = ( $row = $db->sql_fetchrow($result) ) ? $row['total_users'] : 0;

$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364);
$previous_days_text = array($lang['Account_all'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']);

$select_days = '';
for( $i = 0; $i < count($previous_days); $i++ )
{
	$selected = ( $days == $previous_days[$i] ) ? ' selected="selected"' : '';
	$select_days .= '<option value="'. $previous_days[$i] .'"'. $selected .'>'. $previous_days_text[$i] .'</option>';
}

$l_activation = $lang['Account_activation'] .': <b>'. (( $board_config['require_activation'] == USER_ACTIVATION_SELF ) ? $lang['Acc_User'] : (( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) ? $lang['Acc_Admin'] : $lang['None'])) .'</b>';

$template->assign_vars(array(
	'L_ACCOUNT_ACTIONS' => $lang['Account_actions'],
	'L_ACCOUNT_ACTIONS_EXPLAIN' => ( $action == 'inactive' ) ? $lang['Account_inactive_explain'] : $lang['Account_active_explain'],
	'L_MARK' => $lang['Mark'],
	'L_MARK_ALL' => $lang['Mark_all'],
	'L_UNMARK_ALL' => $lang['Unmark_all'],
	'L_DELETE_MARKED' => $lang['Delete_marked'],
	'L_DE_ACTIVATE_MARKED' => ( $action == 'inactive' ) ? $lang['Account_activate'] : $lang['Account_deactivate'],
	'L_EDIT_USER' => $lang['Edit'],
	'L_USER_AUTH' => $lang['Permissions'],
	'L_SORT_PER_LETTER' => $lang['Account_sort_letter'],
	'L_GO' => $lang['Go'], 
	'L_USERNAME' => $lang['Username'],
	'L_EMAIL' => $lang['Email'],
	'L_JOINED' => $lang['Joined'], 
	'L_REGISTERED_AWAITS' => ( $action == 'inactive' ) ? $lang['Account_awaits'] : $lang['Account_registered'],
	'L_ACTIVATION' => $l_activation,
	'TOTAL_USERS' => ( $total_users == '1' ) ? sprintf($lang['Account_total_user'], $total_users) : sprintf($lang['Account_total_users'], $total_users),
	'PAGINATION' => ( $total_users == '0' ) ? '' : generate_pagination("admin_account.$phpEx?action=$action&letter=$letter", $total_users, $board_config['posts_per_page'], $start),
	'PAGE_NUMBER' => ( $total_users == '0' ) ? '' : sprintf($lang['Page_of'], ( floor( $start / $board_config['posts_per_page'] ) + 1 ), ceil( $total_users / $board_config['posts_per_page'] )), 
	'S_LETTER_SELECT' => $select_letter,
	'S_LETTER_HIDDEN' => '<input type="hidden" name="letter" value="'. $by_letter .'">',
	'S_ACCOUNT_ACTION' => append_sid("admin_account.$phpEx?action=$action"),
	'S_HIDDEN_FIELDS' => '',
	'S_SELECT_DAYS' => $select_days,
));

if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'could not query users.', '', __LINE__, __FILE__, $sql);
}

if( $row = $db->sql_fetchrow($result) )
{
	$i = 0;
	do
	{
		$user_id = $row['user_id'];

		$email_url = ( $board_config['board_email_form'] ) ? append_sid("../profile.$phpEx?mode=email&". POST_USERS_URL ."=$user_id") : 'mailto:'. $row['user_email'];
		$email = '<a href="'. $email_url .'" class="gensmall">'. $row['user_email'] .'</a>';

		$i++;
		$template->assign_block_vars('admin_account', array(
			'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
			'ROW_CLASS' => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
			'USERNAME' => $row['username'],
			'U_PROFILE' => append_sid("../profile.$phpEx?mode=viewprofile&". POST_USERS_URL ."=$user_id"),
			'EMAIL' => $email,
			'JOINED' => create_date($board_config['default_dateformat'], $row['user_regdate'], $board_config['board_timezone']),
			'PERIOD' => period(time() - $row['user_regdate']),
			'U_EDIT_USER' => append_sid("admin_users.$phpEx?mode=edit&". POST_USERS_URL ."=$user_id"),
			'U_USER_AUTH' => append_sid("admin_ug_auth.$phpEx?mode=user&". POST_USERS_URL ."=$user_id"),
			'S_MARK_ID' => $user_id, 
		));
	}
	while( $row = $db->sql_fetchrow($result) );
	$db->sql_freeresult($result);
}
else
{
	$template->assign_vars(array('L_NO_USERS' => $lang['Account_none']));
	$template->assign_block_vars("switch_no_users", array() );
}

$template->pparse('body');
include('./page_footer_admin.'.$phpEx);
?>
Heb het zelf wel geprobeerd...
Maar kom niet uit dit stuk:

Code: Selecteer alles

if( !empty($setmodules) )
{
	$file = basename(__FILE__);
	$module['Users']['Account_inactive'] = $file .'?action=inactive';
	$module['Users']['Account_active'] = $file .'?action=active';
	return;
}

Al vast bedankt.

Gebruikersavatar
Tom V
Berichten: 2487
Lid geworden op: 24 jan 2006, 17:04
Locatie: Houtvenne (BE)
Contacteer:

Re: Admin Userlist aanpassen voor MODCP.

Bericht door Tom V » 19 aug 2007, 12:20

Voila: modcp admin_account

Gesloten