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

📄 acp_groups.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
								// Copy permisisons from/to the acl groups table (only group_id gets changed)								$sql = 'SELECT forum_id, auth_option_id, auth_role_id, auth_setting									FROM ' . ACL_GROUPS_TABLE . '									WHERE group_id = ' . $group_perm_from;								$result = $db->sql_query($sql);								$groups_sql_ary = array();								while ($row = $db->sql_fetchrow($result))								{									$groups_sql_ary[] = array(										'group_id'			=> (int) $group_id,										'forum_id'			=> (int) $row['forum_id'],										'auth_option_id'	=> (int) $row['auth_option_id'],										'auth_role_id'		=> (int) $row['auth_role_id'],										'auth_setting'		=> (int) $row['auth_setting']									);								}								$db->sql_freeresult($result);								// Now insert the data								$db->sql_multi_insert(ACL_GROUPS_TABLE, $groups_sql_ary);								$auth->acl_clear_prefetch();							}							$cache->destroy('sql', GROUPS_TABLE);							$message = ($action == 'edit') ? 'GROUP_UPDATED' : 'GROUP_CREATED';							trigger_error($user->lang[$message] . adm_back_link($this->u_action));						}					}					if (sizeof($error))					{						$group_rank = $submit_ary['rank'];						$group_desc_data = array(							'text'			=> $group_desc,							'allow_bbcode'	=> $allow_desc_bbcode,							'allow_smilies'	=> $allow_desc_smilies,							'allow_urls'	=> $allow_desc_urls						);					}				}				else if (!$group_id)				{					$group_name = request_var('group_name', '', true);					$group_desc_data = array(						'text'			=> '',						'allow_bbcode'	=> true,						'allow_smilies'	=> true,						'allow_urls'	=> true					);					$group_rank = 0;					$group_type = GROUP_OPEN;				}				else				{					$group_name = $group_row['group_name'];					$group_desc_data = generate_text_for_edit($group_row['group_desc'], $group_row['group_desc_uid'], $group_row['group_desc_options']);					$group_type = $group_row['group_type'];					$group_rank = $group_row['group_rank'];				}				$sql = 'SELECT * 					FROM ' . RANKS_TABLE . '					WHERE rank_special = 1					ORDER BY rank_title';				$result = $db->sql_query($sql);				$rank_options = '<option value="0"' . ((!$group_rank) ? ' selected="selected"' : '') . '>' . $user->lang['USER_DEFAULT'] . '</option>';				while ($row = $db->sql_fetchrow($result))				{					$selected = ($group_rank && $row['rank_id'] == $group_rank) ? ' selected="selected"' : '';					$rank_options .= '<option value="' . $row['rank_id'] . '"' . $selected . '>' . $row['rank_title'] . '</option>';				}				$db->sql_freeresult($result);				$type_free		= ($group_type == GROUP_FREE) ? ' checked="checked"' : '';				$type_open		= ($group_type == GROUP_OPEN) ? ' checked="checked"' : '';				$type_closed	= ($group_type == GROUP_CLOSED) ? ' checked="checked"' : '';				$type_hidden	= ($group_type == GROUP_HIDDEN) ? ' checked="checked"' : '';				if (isset($group_row['group_avatar']) && $group_row['group_avatar'])				{					$avatar_img = '';					switch ($group_row['group_avatar_type'])					{						case AVATAR_UPLOAD:							$avatar_img = $phpbb_root_path . $config['avatar_path'] . '/';						break;						case AVATAR_GALLERY:							$avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/';						break;					}					$avatar_img .= $group_row['group_avatar'];					$avatar_img = '<img src="' . $avatar_img . '" width="' . $group_row['group_avatar_width'] . '" height="' . $group_row['group_avatar_height'] . '" alt="" />';				}				else				{					$avatar_img = '<img src="' . $phpbb_admin_path . 'images/no_avatar.gif" alt="" />';				}				$display_gallery = (isset($_POST['display_gallery'])) ? true : false;				if ($config['allow_avatar_local'] && $display_gallery)				{					avatar_gallery($category, $avatar_select, 4);				}				$back_link = request_var('back_link', '');				switch ($back_link)				{					case 'acp_users_groups':						$u_back = append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&amp;mode=groups&amp;u=' . request_var('u', 0));					break;					default:						$u_back = $this->u_action;					break;				}				$template->assign_vars(array(					'S_EDIT'			=> true,					'S_ADD_GROUP'		=> ($action == 'add') ? true : false,					'S_INCLUDE_SWATCH'	=> true,					'S_CAN_UPLOAD'		=> $can_upload,					'S_ERROR'			=> (sizeof($error)) ? true : false,					'S_SPECIAL_GROUP'	=> ($group_type == GROUP_SPECIAL) ? true : false,					'S_DISPLAY_GALLERY'	=> ($config['allow_avatar_local'] && !$display_gallery) ? true : false,					'S_IN_GALLERY'		=> ($config['allow_avatar_local'] && $display_gallery) ? true : false,					'S_USER_FOUNDER'	=> ($user->data['user_type'] == USER_FOUNDER) ? true : false,					'ERROR_MSG'				=> (sizeof($error)) ? implode('<br />', $error) : '',					'GROUP_NAME'			=> ($group_type == GROUP_SPECIAL) ? $user->lang['G_' . $group_name] : $group_name,					'GROUP_INTERNAL_NAME'	=> $group_name,					'GROUP_DESC'			=> $group_desc_data['text'],					'GROUP_RECEIVE_PM'		=> (isset($group_row['group_receive_pm']) && $group_row['group_receive_pm']) ? ' checked="checked"' : '',					'GROUP_FOUNDER_MANAGE'	=> (isset($group_row['group_founder_manage']) && $group_row['group_founder_manage']) ? ' checked="checked"' : '',					'GROUP_LEGEND'			=> (isset($group_row['group_legend']) && $group_row['group_legend']) ? ' checked="checked"' : '',					'GROUP_MESSAGE_LIMIT'	=> (isset($group_row['group_message_limit'])) ? $group_row['group_message_limit'] : 0,					'GROUP_COLOUR'			=> (isset($group_row['group_colour'])) ? $group_row['group_colour'] : '',					'S_DESC_BBCODE_CHECKED'	=> $group_desc_data['allow_bbcode'],					'S_DESC_URLS_CHECKED'	=> $group_desc_data['allow_urls'],					'S_DESC_SMILIES_CHECKED'=> $group_desc_data['allow_smilies'],					'S_RANK_OPTIONS'		=> $rank_options,					'S_GROUP_OPTIONS'		=> group_select_options(0),					'AVATAR_IMAGE'			=> $avatar_img,					'AVATAR_MAX_FILESIZE'	=> $config['avatar_filesize'],					'GROUP_AVATAR_WIDTH'	=> (isset($group_row['group_avatar_width'])) ? $group_row['group_avatar_width'] : '',					'GROUP_AVATAR_HEIGHT'	=> (isset($group_row['group_avatar_height'])) ? $group_row['group_avatar_height'] : '',					'GROUP_TYPE_FREE'		=> GROUP_FREE,					'GROUP_TYPE_OPEN'		=> GROUP_OPEN,					'GROUP_TYPE_CLOSED'		=> GROUP_CLOSED,					'GROUP_TYPE_HIDDEN'		=> GROUP_HIDDEN,					'GROUP_TYPE_SPECIAL'	=> GROUP_SPECIAL,					'GROUP_FREE'		=> $type_free,					'GROUP_OPEN'		=> $type_open,					'GROUP_CLOSED'		=> $type_closed,					'GROUP_HIDDEN'		=> $type_hidden,					'U_BACK'			=> $u_back,					'U_SWATCH'			=> append_sid("{$phpbb_admin_path}swatch.$phpEx", 'form=settings&amp;name=group_colour'),					'UA_SWATCH'			=> append_sid("{$phpbb_admin_path}swatch.$phpEx", 'form=settings&name=group_colour', false),					'U_ACTION'			=> "{$this->u_action}&amp;action=$action&amp;g=$group_id",					'L_AVATAR_EXPLAIN'	=> sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], round($config['avatar_filesize'] / 1024)),					)				);				return;			break;			case 'list':				if (!$group_id)				{					trigger_error($user->lang['NO_GROUP'] . adm_back_link($this->u_action), E_USER_WARNING);				}				$this->page_title = 'GROUP_MEMBERS';				// Total number of group leaders				$sql = 'SELECT COUNT(user_id) AS total_leaders 					FROM ' . USER_GROUP_TABLE . " 					WHERE group_id = $group_id 						AND group_leader = 1";				$result = $db->sql_query($sql);				$total_leaders = (int) $db->sql_fetchfield('total_leaders');				$db->sql_freeresult($result);				// Total number of group members (non-leaders)				$sql = 'SELECT COUNT(user_id) AS total_members 					FROM ' . USER_GROUP_TABLE . " 					WHERE group_id = $group_id 						AND group_leader <> 1";				$result = $db->sql_query($sql);				$total_members = (int) $db->sql_fetchfield('total_members');				$db->sql_freeresult($result);				// Grab the members				$sql = 'SELECT u.user_id, u.username, u.user_regdate, u.user_posts, u.group_id, ug.group_leader, ug.user_pending 					FROM ' . USERS_TABLE . ' u, ' . USER_GROUP_TABLE . " ug 					WHERE ug.group_id = $group_id 						AND u.user_id = ug.user_id 					ORDER BY ug.group_leader DESC, ug.user_pending ASC, u.username";				$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);				$leader = $member = 0;				$group_data = array(					'leader'	=> array(),					'member'	=> array(),				);				while ($row = $db->sql_fetchrow($result))				{					$type = ($row['group_leader']) ? 'leader' : 'member';					$group_data[$type][$$type]['user_id'] = $row['user_id'];					$group_data[$type][$$type]['group_id'] = $row['group_id'];					$group_data[$type][$$type]['username'] = $row['username'];					$group_data[$type][$$type]['user_regdate'] = $row['user_regdate'];					$group_data[$type][$$type]['user_posts'] = $row['user_posts'];					$group_data[$type][$$type]['user_pending'] = ($row['user_pending']) ? 1 : 0;					$$type++;				}				$db->sql_freeresult($result);				$s_action_options = '';				$options = array('default' => 'DEFAULT', 'approve' => 'APPROVE', 'demote' => 'DEMOTE', 'promote' => 'PROMOTE', 'deleteusers' => 'DELETE');				foreach ($options as $option => $lang)				{					$s_action_options .= '<option value="' . $option . '">' . $user->lang['GROUP_' . $lang] . '</option>';				}				$template->assign_vars(array(					'S_LIST'			=> true,					'S_GROUP_SPECIAL'	=> ($group_row['group_type'] == GROUP_SPECIAL) ? true : false,					'S_ACTION_OPTIONS'	=> $s_action_options,					'S_ON_PAGE'		=> on_page($total_members, $config['topics_per_page'], $start),					'PAGINATION'	=> generate_pagination($this->u_action . "&amp;action=$action&amp;g=$group_id", $total_members, $config['topics_per_page'], $start, true),					'GROUP_NAME'	=> ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name'],					'U_ACTION'			=> $this->u_action . "&amp;g=$group_id",					'U_BACK'			=> $this->u_action,					'U_FIND_USERNAME'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&amp;form=list&amp;field=usernames'),					'UA_FIND_USERNAME'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=list&field=usernames', false),					'U_DEFAULT_ALL'		=> "{$this->u_action}&amp;action=default&amp;g=$group_id")				);				foreach ($group_data['leader'] as $row)				{					$template->assign_block_vars('leader', array(						'U_USER_EDIT'		=> append_sid("{$phpbb_admin_path}index.$phpEx", "i=users&amp;action=edit&amp;u={$row['user_id']}"),						'USERNAME'			=> $row['username'],						'S_GROUP_DEFAULT'	=> ($row['group_id'] == $group_id) ? true : false,						'JOINED'			=> ($row['user_regdate']) ? $user->format_date($row['user_regdate']) : ' - ',						'USER_POSTS'		=> $row['user_posts'],						'USER_ID'			=> $row['user_id'])					);				}				$pending = false;				foreach ($group_data['member'] as $row)				{					if ($row['user_pending'] && !$pending)					{						$template->assign_block_vars('member', array(							'S_PENDING'		=> true)						);						$pending = true;					}					$template->assign_block_vars('member', array(						'U_USER_EDIT'		=> append_sid("{$phpbb_admin_path}index.$phpEx", "i=users&amp;action=edit&amp;u={$row['user_id']}"),						'USERNAME'			=> $row['username'],						'S_GROUP_DEFAULT'	=> ($row['group_id'] == $group_id) ? true : false,						'JOINED'			=> ($row['user_regdate']) ? $user->format_date($row['user_regdate']) : ' - ',						'USER_POSTS'		=> $row['user_posts'],						'USER_ID'			=> $row['user_id'])					);				}				return;			break;		}		$template->assign_vars(array(			'U_ACTION'		=> $this->u_action,			'S_GROUP_ADD'	=> ($auth->acl_get('a_groupadd')) ? true : false)		);		$sql = 'SELECT g.group_id, g.group_name, g.group_type, COUNT(ug.user_id) AS total_members 			FROM ' . GROUPS_TABLE . ' g			LEFT JOIN ' . USER_GROUP_TABLE . ' ug ON (g.group_id = ug.group_id)			GROUP BY g.group_id, g.group_name, g.group_type			ORDER BY g.group_type ASC, g.group_name';		$result = $db->sql_query($sql);		$special = $normal = 0;		$group_ary = array();		while ($row = $db->sql_fetchrow($result))		{			$type = ($row['group_type'] == GROUP_SPECIAL) ? 'special' : 'normal';			$group_ary[$type][$$type]['group_id'] = $row['group_id'];			$group_ary[$type][$$type]['group_name'] = $row['group_name'];			$group_ary[$type][$$type]['group_type'] = $row['group_type'];			$group_ary[$type][$$type]['total_members'] = $row['total_members'];			$$type++;		}		$db->sql_freeresult($result);		ksort($group_ary);		$special_toggle = false;		foreach ($group_ary as $type => $row_ary)		{			if ($type == 'special')			{				$template->assign_block_vars('groups', array(					'S_SPECIAL'			=> true)				);			}			foreach ($row_ary as $row)			{				$group_id = $row['group_id'];				$group_name = (!empty($user->lang['G_' . $row['group_name']]))? $user->lang['G_' . $row['group_name']] : $row['group_name'];								$template->assign_block_vars('groups', array(					'U_LIST'		=> "{$this->u_action}&amp;action=list&amp;g=$group_id",					'U_EDIT'		=> "{$this->u_action}&amp;action=edit&amp;g=$group_id",					'U_DELETE'		=> ($auth->acl_get('a_groupdel')) ? "{$this->u_action}&amp;action=delete&amp;g=$group_id" : '',					'S_GROUP_SPECIAL'	=> ($row['group_type'] == GROUP_SPECIAL) ? true : false,										'GROUP_NAME'	=> $group_name,					'TOTAL_MEMBERS'	=> $row['total_members'],					)				);			}		}	}}?>

⌨️ 快捷键说明

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