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

📄 ucp_groups.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php/** ** @package ucp* @version $Id: ucp_groups.php,v 1.42 2006/11/26 14:55:18 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** ucp_groups* @package ucp*/class ucp_groups{	var $u_action;	function main($id, $mode)	{		global $config, $phpbb_root_path, $phpEx;		global $db, $user, $auth, $cache, $template;		$user->add_lang('groups');		$return_page = '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $this->u_action . '">', '</a>');		$mark_ary	= request_var('mark', array(0));		$submit		= (!empty($_POST['submit'])) ? true : false;		$delete		= (!empty($_POST['delete'])) ? true : false;		$error = $data = array();		switch ($mode)		{			case 'membership':						$this->page_title = 'UCP_USERGROUPS_MEMBER';				if ($submit || isset($_POST['change_default']))				{					$action = (isset($_POST['change_default'])) ? 'change_default' : request_var('action', '');					$group_id = ($action == 'change_default') ? request_var('default', 0) : request_var('selected', 0);					if (!$group_id)					{						trigger_error('NO_GROUP_SELECTED');					}					$sql = 'SELECT group_id, group_name, group_type						FROM ' . GROUPS_TABLE . "						WHERE group_id IN ($group_id, {$user->data['group_id']})";					$result = $db->sql_query($sql);					$group_row = array();					while ($row = $db->sql_fetchrow($result))					{						$row['group_name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];						$group_row[$row['group_id']] = $row;					}					$db->sql_freeresult($result);					if (!sizeof($group_row))					{						trigger_error('GROUP_NOT_EXIST');					}					switch ($action)					{						case 'change_default':							// User already having this group set as default?							if ($group_id == $user->data['group_id'])							{								trigger_error($user->lang['ALREADY_DEFAULT_GROUP'] . $return_page);							}							if (!$auth->acl_get('u_chggrp'))							{								trigger_error($user->lang['NOT_AUTHORIZED'] . $return_page);							}							// User needs to be member of the group in order to make it default							if (!group_memberships($group_id, $user->data['user_id'], true))							{								trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page);							}							if (confirm_box(true))							{								group_user_attributes('default', $group_id, $user->data['user_id']);								add_log('user', $user->data['user_id'], 'LOG_USER_GROUP_CHANGE', sprintf($user->lang['USER_GROUP_CHANGE'], $group_row[$group_id]['group_name'], $group_row[$user->data['group_id']]['group_name']));								meta_refresh(3, $this->u_action);								trigger_error($user->lang['CHANGED_DEFAULT_GROUP'] . $return_page);							}							else							{								$s_hidden_fields = array(									'default'		=> $group_id,									'change_default'=> true								);								confirm_box(false, sprintf($user->lang['GROUP_CHANGE_DEFAULT'], $group_row[$group_id]['group_name']), build_hidden_fields($s_hidden_fields));							}						break;						case 'resign':							// User tries to resign from default group but is not allowed to change it?							if ($group_id == $user->data['group_id'] && !$auth->acl_get('u_chggrp'))							{								trigger_error($user->lang['NOT_RESIGN_FROM_DEFAULT_GROUP'] . $return_page);							}							if (!($row = group_memberships($group_id, $user->data['user_id'])))							{								trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page);							}							list(, $row) = each($row);							if (confirm_box(true))							{								group_user_del($group_id, $user->data['user_id']);								add_log('user', $user->data['user_id'], 'LOG_USER_GROUP_RESIGN', $group_row[$group_id]['group_name']);								meta_refresh(3, $this->u_action);								trigger_error($user->lang[($row['user_pending']) ? 'GROUP_RESIGNED_PENDING' : 'GROUP_RESIGNED_MEMBERSHIP'] . $return_page);							}							else							{								$s_hidden_fields = array(									'selected'		=> $group_id,									'action'		=> 'resign',									'submit'		=> true								);								confirm_box(false, ($row['user_pending']) ? 'GROUP_RESIGN_PENDING' : 'GROUP_RESIGN_MEMBERSHIP', build_hidden_fields($s_hidden_fields));							}						break;						case 'join':							if (group_memberships($group_id, $user->data['user_id'], true))							{								trigger_error($user->lang['ALREADY_IN_GROUP'] . $return_page);							}							// Check permission to join (open group or request)							if ($group_row[$group_id]['group_type'] != GROUP_OPEN && $group_row[$group_id]['group_type'] != GROUP_FREE)							{								trigger_error($user->lang['CANNOT_JOIN_GROUP'] . $return_page);							}							if (confirm_box(true))							{								if ($group_row[$group_id]['group_type'] == GROUP_FREE)								{									group_user_add($group_id, $user->data['user_id']);									$email_template = 'group_added';								}								else								{									group_user_add($group_id, $user->data['user_id'], false, false, false, 0, 1);									$email_template = 'group_request';								}								include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);								$messenger = new messenger();								$sql = 'SELECT u.username, u.user_email, u.user_notify_type, u.user_jabber, u.user_lang									FROM ' . USER_GROUP_TABLE . ' ug, ' . USERS_TABLE . ' u									WHERE ug.user_id = u.user_id										AND ' . (($group_row[$group_id]['group_type'] == GROUP_FREE) ? "ug.user_id = {$user->data['user_id']}" : 'ug.group_leader = 1') . "										AND ug.group_id = $group_id";								$result = $db->sql_query($sql);								while ($row = $db->sql_fetchrow($result))								{									$messenger->template($email_template, $row['user_lang']);									$messenger->replyto($config['board_email']);									$messenger->to($row['user_email'], $row['username']);									$messenger->im($row['user_jabber'], $row['username']);									$messenger->assign_vars(array(										'USERNAME'		=> htmlspecialchars_decode($row['username']),										'GROUP_NAME'	=> htmlspecialchars_decode($group_row[$group_id]['group_name']),										'U_PENDING'		=> generate_board_url() . "/ucp.$phpEx?i=groups&mode=manage&action=list&g=$group_id",										'U_GROUP'		=> generate_board_url() . "/memberlist.$phpEx?mode=group&g=$group_id")									);									$messenger->send($row['user_notify_type']);								}								$db->sql_freeresult($result);								$messenger->save_queue();								add_log('user', $user->data['user_id'], 'LOG_USER_GROUP_JOIN' . (($group_row[$group_id]['group_type'] == GROUP_FREE) ? '' : '_PENDING'), $group_row[$group_id]['group_name']);								meta_refresh(3, $this->u_action);								trigger_error($user->lang[($group_row[$group_id]['group_type'] == GROUP_FREE) ? 'GROUP_JOINED' : 'GROUP_JOINED_PENDING'] . $return_page);							}							else							{								$s_hidden_fields = array(									'selected'		=> $group_id,									'action'		=> 'join',									'submit'		=> true								);								confirm_box(false, ($group_row[$group_id]['group_type'] == GROUP_FREE) ? 'GROUP_JOIN' : 'GROUP_JOIN_PENDING', build_hidden_fields($s_hidden_fields));							}						break;						case 'demote':							if (!($row = group_memberships($group_id, $user->data['user_id'])))							{								trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page);							}							list(, $row) = each($row);							if (!$row['group_leader'])							{								trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page);							}							if (confirm_box(true))							{								group_user_attributes('demote', $group_id, $user->data['user_id']);								add_log('user', $user->data['user_id'], 'LOG_USER_GROUP_DEMOTE', $group_row[$group_id]['group_name']);								meta_refresh(3, $this->u_action);								trigger_error($user->lang['USER_GROUP_DEMOTED'] . $return_page);							}							else							{								$s_hidden_fields = array(									'selected'		=> $group_id,									'action'		=> 'demote',									'submit'		=> true								);								confirm_box(false, 'USER_GROUP_DEMOTE', build_hidden_fields($s_hidden_fields));							}						break;					}				}				$sql = 'SELECT g.*, ug.group_leader, ug.user_pending					FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug					WHERE ug.user_id = ' . $user->data['user_id'] . '						AND g.group_id = ug.group_id					ORDER BY g.group_type DESC, g.group_name';				$result = $db->sql_query($sql);				$group_id_ary = array();				$leader_count = $member_count = $pending_count = 0;				while ($row = $db->sql_fetchrow($result))				{					$block = ($row['group_leader']) ? 'leader' : (($row['user_pending']) ? 'pending' : 'member');					switch ($row['group_type'])					{						case GROUP_OPEN:							$group_status = 'OPEN';						break;						case GROUP_CLOSED:							$group_status = 'CLOSED';						break;						case GROUP_HIDDEN:							$group_status = 'HIDDEN';						break;						case GROUP_SPECIAL:							$group_status = 'SPECIAL';						break;						case GROUP_FREE:							$group_status = 'FREE';						break;					}					$template->assign_block_vars($block, array(						'GROUP_ID'		=> $row['group_id'],						'GROUP_NAME'	=> ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'],						'GROUP_DESC'	=> ($row['group_type'] <> GROUP_SPECIAL) ? generate_text_for_display($row['group_desc'], $row['group_desc_uid'], $row['group_desc_bitfield'], $row['group_desc_options']) : $user->lang['GROUP_IS_SPECIAL'],						'GROUP_SPECIAL'	=> ($row['group_type'] <> GROUP_SPECIAL) ? false : true,						'GROUP_STATUS'	=> $user->lang['GROUP_IS_' . $group_status],						'U_VIEW_GROUP'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $row['group_id']),						'S_GROUP_DEFAULT'	=> ($row['group_id'] == $user->data['group_id']) ? true : false,						'S_ROW_COUNT'		=> ${$block . '_count'}++)					);					$group_id_ary[] = $row['group_id'];				}				$db->sql_freeresult($result);

⌨️ 快捷键说明

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