⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acp_groups.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** ** @package acp* @version $Id: acp_groups.php,v 1.38 2006/11/26 14:55:16 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** @package acp*/class acp_groups{	var $u_action;	function main($id, $mode)	{		global $config, $db, $user, $auth, $template, $cache;		global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix, $file_uploads;		$user->add_lang('acp/groups');		$this->tpl_name = 'acp_groups';		$this->page_title = 'ACP_GROUPS_MANAGE';		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);		// Check and set some common vars		$action		= (isset($_POST['add'])) ? 'add' : ((isset($_POST['addusers'])) ? 'addusers' : request_var('action', ''));		$group_id	= request_var('g', 0);		$mark_ary	= request_var('mark', array(0));		$name_ary	= request_var('usernames', '', true);		$leader		= request_var('leader', 0);		$default	= request_var('default', 0);		$start		= request_var('start', 0);		$update		= (isset($_POST['update'])) ? true : false;		// Clear some vars		$can_upload = (file_exists($phpbb_root_path . $config['avatar_path']) && is_writeable($phpbb_root_path . $config['avatar_path']) && $file_uploads) ? true : false;		$group_row = array();		// Grab basic data for group, if group_id is set and exists		if ($group_id)		{			$sql = 'SELECT * 				FROM ' . GROUPS_TABLE . " 				WHERE group_id = $group_id";			$result = $db->sql_query($sql);			$group_row = $db->sql_fetchrow($result);			$db->sql_freeresult($result);			if (!$group_row)			{				trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);			}			// Check if the user is allowed to manage this group if set to founder only.			if ($user->data['user_type'] != USER_FOUNDER && $group_row['group_founder_manage'])			{				trigger_error($user->lang['NOT_ALLOWED_MANAGE_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);			}		}		// Which page?		switch ($action)		{			case 'approve':			case 'demote':			case 'promote':				if (!$group_id)				{					trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);				}				// Approve, demote or promote				group_user_attributes($action, $group_id, $mark_ary, false, $group_row['group_name']);				switch ($action)				{					case 'demote':						$message = 'GROUP_MODS_DEMOTED';					break;					case 'promote':						$message = 'GROUP_MODS_PROMOTED';					break;					case 'approve':						$message = 'USERS_APPROVED';					break;				}				group_update_listings($group_id);				trigger_error($user->lang[$message] . adm_back_link($this->u_action . '&amp;action=list&amp;g=' . $group_id));			break;			case 'default':				if (!$group_id)				{					trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);				}				if (confirm_box(true))				{					if (!sizeof($mark_ary))					{						$start = 0;						do						{							$sql = 'SELECT user_id 								FROM ' . USER_GROUP_TABLE . "								WHERE group_id = $group_id 								ORDER BY user_id";							$result = $db->sql_query_limit($sql, 200, $start);							$mark_ary = array();							if ($row = $db->sql_fetchrow($result))							{								do								{									$mark_ary[] = $row['user_id'];								}								while ($row = $db->sql_fetchrow($result));								group_user_attributes('default', $group_id, $mark_ary, false, $group_row['group_name'], $group_row);								$start = (sizeof($mark_ary) < 200) ? 0 : $start + 200;							}							else							{								$start = 0;							}							$db->sql_freeresult($result);						}						while ($start);					}					else					{						group_user_attributes('default', $group_id, $mark_ary, false, $group_row['group_name'], $group_row);					}					group_update_listings($group_id);					trigger_error($user->lang['GROUP_DEFS_UPDATED'] . adm_back_link($this->u_action . '&amp;action=list&amp;g=' . $group_id));				}				else				{					confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(						'mark'		=> $mark_ary,						'g'			=> $group_id,						'i'			=> $id,						'mode'		=> $mode,						'action'	=> $action))					);				}			break;			case 'deleteusers':			case 'delete':				if (confirm_box(true))				{					if (!$group_id)					{						trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);					}					$error = '';					switch ($action)					{						case 'delete':							if (!$auth->acl_get('a_groupdel'))							{								trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);							}							$error = group_delete($group_id, $group_row['group_name']);						break;						case 'deleteusers':							$error = group_user_del($group_id, $mark_ary, false, $group_row['group_name']);						break;					}					$back_link = ($action == 'delete') ? $this->u_action : $this->u_action . '&amp;action=list&amp;g=' . $group_id;					if ($error)					{						trigger_error($user->lang[$error] . adm_back_link($back_link), E_USER_WARNING);					}					$message = ($action == 'delete') ? 'GROUP_DELETED' : 'GROUP_USERS_REMOVE';					trigger_error($user->lang[$message] . adm_back_link($back_link));				}				else				{					confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(						'mark'		=> $mark_ary,						'g'			=> $group_id,						'i'			=> $id,						'mode'		=> $mode,						'action'	=> $action))					);				}			break;			case 'addusers':				if (!$group_id)				{					trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);				}				if (!$name_ary)				{					trigger_error($user->lang['NO_USERS'] . adm_back_link($this->u_action . '&amp;action=list&amp;g=' . $group_id), E_USER_WARNING);				}				$name_ary = array_unique(explode("\n", $name_ary));				$group_name = ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name'];				// Add user/s to group				if ($error = group_user_add($group_id, false, $name_ary, $group_name, $default, $leader, 0, $group_row))				{					trigger_error($user->lang[$error] . adm_back_link($this->u_action . '&amp;action=list&amp;g=' . $group_id), E_USER_WARNING);				}				$message = ($leader) ? 'GROUP_MODS_ADDED' : 'GROUP_USERS_ADDED';				trigger_error($user->lang[$message] . adm_back_link($this->u_action . '&amp;action=list&amp;g=' . $group_id));			break;			case 'edit':			case 'add':				$data = $submit_ary = array();				if ($action == 'edit' && !$group_id)				{					trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);				}				if ($action == 'add' && !$auth->acl_get('a_groupadd'))				{					trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);				}				$error = array();				$user->add_lang('ucp');							$avatar_select = basename(request_var('avatar_select', ''));				$category = basename(request_var('category', ''));				// Did we submit?				if ($update)				{					$group_name	= request_var('group_name', '', true);					$group_desc = request_var('group_desc', '', true);					$group_type	= request_var('group_type', GROUP_FREE);					$allow_desc_bbcode	= request_var('desc_parse_bbcode', false);					$allow_desc_urls	= request_var('desc_parse_urls', false);					$allow_desc_smilies	= request_var('desc_parse_smilies', false);					$data['uploadurl']	= request_var('uploadurl', '');					$data['remotelink'] = request_var('remotelink', '');					$delete				= request_var('delete', '');					$submit_ary = array(						'colour'			=> request_var('group_colour', ''),						'rank'				=> request_var('group_rank', 0),						'receive_pm'		=> isset($_REQUEST['group_receive_pm']) ? 1 : 0,						'legend'			=> isset($_REQUEST['group_legend']) ? 1 : 0,						'message_limit'		=> request_var('group_message_limit', 0),					);					if ($user->data['user_type'] == USER_FOUNDER)					{						$submit_ary['founder_manage'] = isset($_REQUEST['group_founder_manage']) ? 1 : 0;					}					else					{						$submit_ary['founder_manage'] = 0;					}					if (!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl'] || $data['remotelink'])					{						$data['width']		= request_var('width', '');						$data['height']		= request_var('height', '');						// Avatar stuff						$var_ary = array(							'uploadurl'		=> array('string', true, 5, 255), 							'remotelink'	=> array('string', true, 5, 255), 							'width'			=> array('string', true, 1, 3), 							'height'		=> array('string', true, 1, 3), 						);						if (!($error = validate_data($data, $var_ary)))						{							$data['user_id'] = "g$group_id";							if ((!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl']) && $can_upload)							{								list($submit_ary['avatar_type'], $submit_ary['avatar'], $submit_ary['avatar_width'], $submit_ary['avatar_height']) = avatar_upload($data, $error);							}							else if ($data['remotelink'])							{								list($submit_ary['avatar_type'], $submit_ary['avatar'], $submit_ary['avatar_width'], $submit_ary['avatar_height']) = avatar_remote($data, $error);							}						}					}					else if ($avatar_select && $config['allow_avatar_local'])					{						// check avatar gallery						if (is_dir($phpbb_root_path . $config['avatar_gallery_path'] . '/' . $category))						{							$submit_ary['avatar_type'] = AVATAR_GALLERY;							list($submit_ary['avatar_width'], $submit_ary['avatar_height']) = getimagesize($phpbb_root_path . $config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_select);							$submit_ary['avatar'] = $category . '/' . $avatar_select;						}					}					else if ($delete)					{						$submit_ary['avatar'] = '';						$submit_ary['avatar_type'] = $submit_ary['avatar_width'] = $submit_ary['avatar_height'] = 0;					}					if ((isset($submit_ary['avatar']) && $submit_ary['avatar'] && (!isset($group_row['group_avatar']) || $group_row['group_avatar'] != $submit_ary['avatar'])) || $delete)					{						if (isset($group_row['group_avatar']) && $group_row['group_avatar'])						{							avatar_delete('group', $group_row);						}					}					if (!sizeof($error))					{						// Only set the rank, colour, etc. if it's changed or if we're adding a new						// group. This prevents existing group members being updated if no changes 						// were made.						$group_attributes = array();						$test_variables = array('rank', 'colour', 'avatar', 'avatar_type', 'avatar_width', 'avatar_height', 'receive_pm', 'legend', 'message_limit', 'founder_manage');						foreach ($test_variables as $test)						{							if (isset($submit_ary[$test]) && ($action == 'add' || $group_row['group_' . $test] != $submit_ary[$test]))							{								$group_attributes['group_' . $test] = $group_row['group_' . $test] = $submit_ary[$test];							}						}						if (!($error = group_create($group_id, $group_type, $group_name, $group_desc, $group_attributes, $allow_desc_bbcode, $allow_desc_urls, $allow_desc_smilies)))						{							$group_perm_from = request_var('group_perm_from', 0);							// Copy permissions?							if ($group_perm_from && $action == 'add')							{								// From the mysql documentation:								// Prior to MySQL 4.0.14, the target table of the INSERT statement cannot appear in the FROM clause of the SELECT part of the query. This limitation is lifted in 4.0.14.								// Due to this we stay on the safe side if we do the insertion "the manual way"								

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -