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

📄 acp_attachments.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 4 页
字号:
<?php/** ** @package acp* @version $Id: acp_attachments.php,v 1.39 2006/10/28 11:03:33 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** @package acp*/class acp_attachments{	var $u_action;	var $new_config;		function main($id, $mode)	{		global $db, $user, $auth, $template, $cache;		global $config, $phpbb_admin_path, $phpbb_root_path, $phpEx;		$user->add_lang(array('posting', 'viewtopic', 'acp/attachments'));		$error = $notify = array();		$submit = (isset($_POST['submit'])) ? true : false;		$action = request_var('action', '');		switch ($mode)		{			case 'attach':				$l_title = 'ACP_ATTACHMENT_SETTINGS';			break;			case 'extensions':				$l_title = 'ACP_MANAGE_EXTENSIONS';			break;			case 'ext_groups':				$l_title = 'ACP_EXTENSION_GROUPS';			break;				case 'orphan':				$l_title = 'ACP_ORPHAN_ATTACHMENTS';			break;			default:				trigger_error('NO_MODE', E_USER_ERROR);			break;		}		$this->tpl_name = 'acp_attachments';		$this->page_title = $l_title;		$template->assign_vars(array(			'L_TITLE'			=> $user->lang[$l_title],			'L_TITLE_EXPLAIN'	=> $user->lang[$l_title . '_EXPLAIN'],			'U_ACTION'			=> $this->u_action,			)		);		switch ($mode)		{			case 'attach':				include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);				$sql = 'SELECT group_name, cat_id					FROM ' . EXTENSION_GROUPS_TABLE . '					WHERE cat_id > 0					ORDER BY cat_id';				$result = $db->sql_query($sql);				$s_assigned_groups = array();				while ($row = $db->sql_fetchrow($result))				{					$s_assigned_groups[$row['cat_id']][] = $row['group_name'];				}				$db->sql_freeresult($result);				$l_legend_cat_images = $user->lang['SETTINGS_CAT_IMAGES'] . ' [' . $user->lang['ASSIGNED_GROUP'] . ': ' . ((sizeof($s_assigned_groups[ATTACHMENT_CATEGORY_IMAGE])) ? implode(', ', $s_assigned_groups[ATTACHMENT_CATEGORY_IMAGE]) : $user->lang['NO_EXT_GROUP']) . ']';				$display_vars = array(					'title'	=> 'ACP_ATTACHMENT_SETTINGS',					'vars'	=> array(						'img_max_width' => false, 'img_max_height' => false, 'img_link_width' => false, 'img_link_height' => false,						'legend1'				=> 'ACP_ATTACHMENT_SETTINGS',						'allow_attachments'		=> array('lang' => 'ALLOW_ATTACHMENTS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),						'allow_pm_attach'		=> array('lang' => 'ALLOW_PM_ATTACHMENTS',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),						'upload_path'			=> array('lang' => 'UPLOAD_DIR',			'validate' => 'wpath',	'type' => 'text:25:100', 'explain' => true),						'display_order'			=> array('lang' => 'DISPLAY_ORDER',			'validate' => 'bool',	'type' => 'custom', 'method' => 'display_order', 'explain' => true),						'attachment_quota'		=> array('lang' => 'ATTACH_QUOTA',			'validate' => 'int',	'type' => 'custom', 'method' => 'max_filesize', 'explain' => true),						'max_filesize'			=> array('lang' => 'ATTACH_MAX_FILESIZE',	'validate' => 'int',	'type' => 'custom', 'method' => 'max_filesize', 'explain' => true),						'max_filesize_pm'		=> array('lang' => 'ATTACH_MAX_PM_FILESIZE','validate' => 'int',	'type' => 'custom', 'method' => 'max_filesize', 'explain' => true),						'max_attachments'		=> array('lang' => 'MAX_ATTACHMENTS',		'validate' => 'int',	'type' => 'text:3:3', 'explain' => false),						'max_attachments_pm'	=> array('lang' => 'MAX_ATTACHMENTS_PM',	'validate' => 'int',	'type' => 'text:3:3', 'explain' => false),						'secure_downloads'		=> array('lang' => 'SECURE_DOWNLOADS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),						'secure_allow_deny'		=> array('lang' => 'SECURE_ALLOW_DENY',		'validate' => 'int',	'type' => 'custom', 'method' => 'select_allow_deny', 'explain' => true),						'secure_allow_empty_referer' => array('lang' => 'SECURE_EMPTY_REFERRER', 'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),						'legend2'					=> $l_legend_cat_images,						'img_display_inlined'		=> array('lang' => 'DISPLAY_INLINED',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),						'img_create_thumbnail'		=> array('lang' => 'CREATE_THUMBNAIL',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true),						'img_max_thumb_width'		=> array('lang' => 'MAX_THUMB_WIDTH',		'validate' => 'int',	'type' => 'text:7:15', 'explain' => true, 'append' => ' px'),						'img_min_thumb_filesize'	=> array('lang' => 'MIN_THUMB_FILESIZE',	'validate' => 'int',	'type' => 'text:7:15', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),						'img_imagick'				=> array('lang' => 'IMAGICK_PATH',			'validate' => 'string',	'type' => 'text:20:200', 'explain' => true, 'append' => '&nbsp;&nbsp;<span>[ <a href="' . $this->u_action . '&amp;action=imgmagick">' . $user->lang['SEARCH_IMAGICK'] . '</a> ]</span>'),						'img_max'					=> array('lang' => 'MAX_IMAGE_SIZE',		'validate' => 'int',	'type' => 'dimension:3:4', 'explain' => true),						'img_link'					=> array('lang' => 'IMAGE_LINK_SIZE',		'validate' => 'int',	'type' => 'dimension:3:4', 'explain' => true),					)				);				$this->new_config = $config;				$cfg_array = (isset($_REQUEST['config'])) ? request_var('config', array('' => '')) : $this->new_config;				$error = array();				// We validate the complete config if whished				validate_config_vars($display_vars['vars'], $cfg_array, $error);				// Do not write values if there is an error				if (sizeof($error))				{					$submit = false;				}				// We go through the display_vars to make sure no one is trying to set variables he/she is not allowed to...				foreach ($display_vars['vars'] as $config_name => $null)				{					if (!isset($cfg_array[$config_name]) || strpos($config_name, 'legend') !== false)					{						continue;					}					$this->new_config[$config_name] = $config_value = $cfg_array[$config_name];					if (in_array($config_name, array('attachment_quota', 'max_filesize', 'max_filesize_pm')))					{						$size_var = request_var($config_name, '');						$this->new_config[$config_name] = $config_value = ($size_var == 'kb') ? round($config_value * 1024) : (($size_var == 'mb') ? round($config_value * 1048576) : $config_value);					}					if ($submit)					{						set_config($config_name, $config_value);					}				}				$this->perform_site_list();				if ($submit)				{					add_log('admin', 'LOG_CONFIG_ATTACH');					// Check Settings					$this->test_upload($error, $this->new_config['upload_path'], false);					if (!sizeof($error))					{						trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));					}				}				$template->assign_var('S_ATTACHMENT_SETTINGS', true);				if ($action == 'imgmagick')				{					$this->new_config['img_imagick'] = $this->search_imagemagick();				}				// We strip eventually manual added convert program, we only want the patch				$this->new_config['img_imagick'] = str_replace(array('convert', '.exe'), array('', ''), $this->new_config['img_imagick']);				$supported_types = get_supported_image_types();				// Check Thumbnail Support				if (!$this->new_config['img_imagick'] && (!isset($supported_types['format']) || !sizeof($supported_types['format'])))				{					$this->new_config['img_create_thumbnail'] = 0;				}				$template->assign_vars(array(					'U_SEARCH_IMAGICK'		=> $this->u_action . '&amp;action=imgmagick',					'S_THUMBNAIL_SUPPORT'	=> (!$this->new_config['img_imagick'] && (!isset($supported_types['format']) || !sizeof($supported_types['format']))) ? false : true,					)				);				// Secure Download Options - Same procedure as with banning				$allow_deny = ($this->new_config['secure_allow_deny']) ? 'ALLOWED' : 'DISALLOWED';						$sql = 'SELECT *					FROM ' . SITELIST_TABLE;				$result = $db->sql_query($sql);				$defined_ips = '';				$ips = array();				while ($row = $db->sql_fetchrow($result))				{					$value = ($row['site_ip']) ? $row['site_ip'] : $row['site_hostname'];					if ($value)					{						$defined_ips .=  '<option' . (($row['ip_exclude']) ? ' class="sep"' : '') . ' value="' . $row['site_id'] . '">' . $value . '</option>';						$ips[$row['site_id']] = $value;					}				}				$db->sql_freeresult($result);				$template->assign_vars(array(					'S_SECURE_DOWNLOADS'	=> $this->new_config['secure_downloads'],					'S_DEFINED_IPS'			=> ($defined_ips != '') ? true : false,					'S_WARNING'				=> (sizeof($error)) ? true : false,					'WARNING_MSG'			=> implode('<br />', $error),					'DEFINED_IPS'			=> $defined_ips,					'L_SECURE_TITLE'		=> $user->lang['DEFINE_' . $allow_deny . '_IPS'],					'L_IP_EXCLUDE'			=> $user->lang['EXCLUDE_FROM_' . $allow_deny . '_IP'],					'L_REMOVE_IPS'			=> $user->lang['REMOVE_' . $allow_deny . '_IPS'],					)				);				// Output relevant options				foreach ($display_vars['vars'] as $config_key => $vars)				{					if (!is_array($vars) && strpos($config_key, 'legend') === false)					{						continue;					}					if (strpos($config_key, 'legend') !== false)					{						$template->assign_block_vars('options', array(							'S_LEGEND'		=> true,							'LEGEND'		=> (isset($user->lang[$vars])) ? $user->lang[$vars] : $vars)						);						continue;					}					$type = explode(':', $vars['type']);					$l_explain = '';					if ($vars['explain'] && isset($vars['lang_explain']))					{						$l_explain = (isset($user->lang[$vars['lang_explain']])) ? $user->lang[$vars['lang_explain']] : $vars['lang_explain'];					}					else if ($vars['explain'])					{						$l_explain = (isset($user->lang[$vars['lang'] . '_EXPLAIN'])) ? $user->lang[$vars['lang'] . '_EXPLAIN'] : '';					}					$template->assign_block_vars('options', array(						'KEY'			=> $config_key,						'TITLE'			=> $user->lang[$vars['lang']],						'S_EXPLAIN'		=> $vars['explain'],						'TITLE_EXPLAIN'	=> $l_explain,						'CONTENT'		=> build_cfg_template($type, $config_key, $this->new_config, $config_key, $vars),						)					);							unset($display_vars['vars'][$config_key]);				}			break;			case 'extensions':				if ($submit || isset($_POST['add_extension_check']))				{					if ($submit)					{						// Change Extensions ?						$extension_change_list	= (isset($_POST['extension_change_list'])) ? array_map('intval', $_POST['extension_change_list']) : array();						$group_select_list		= (isset($_POST['group_select'])) ? array_map('intval', $_POST['group_select']) : array();						// Generate correct Change List						$extensions = array();						for ($i = 0, $size = sizeof($extension_change_list); $i < $size; $i++)						{							$extensions[$extension_change_list[$i]]['group_id'] = $group_select_list[$i];						}						$sql = 'SELECT *							FROM ' . EXTENSIONS_TABLE . '							ORDER BY extension_id';						$result = $db->sql_query($sql);						while ($row = $db->sql_fetchrow($result))						{							if ($row['group_id'] != $extensions[$row['extension_id']]['group_id'])							{								$sql = 'UPDATE ' . EXTENSIONS_TABLE . ' 									SET group_id = ' . (int) $extensions[$row['extension_id']]['group_id'] . '									WHERE extension_id = ' . $row['extension_id'];								$db->sql_query($sql);									add_log('admin', 'LOG_ATTACH_EXT_UPDATE', $row['extension']);							}						}						$db->sql_freeresult($result);						// Delete Extension?						$extension_id_list = (isset($_POST['extension_id_list'])) ? array_map('intval', $_POST['extension_id_list']) : array();						if (sizeof($extension_id_list))						{							$sql = 'SELECT extension 								FROM ' . EXTENSIONS_TABLE . '								WHERE ' . $db->sql_in_set('extension_id', $extension_id_list);							$result = $db->sql_query($sql);														$extension_list = '';							while ($row = $db->sql_fetchrow($result))							{								$extension_list .= ($extension_list == '') ? $row['extension'] : ', ' . $row['extension'];							}							$db->sql_freeresult($result);							$sql = 'DELETE 								FROM ' . EXTENSIONS_TABLE . '								WHERE ' . $db->sql_in_set('extension_id', $extension_id_list);							$db->sql_query($sql);							add_log('admin', 'LOG_ATTACH_EXT_DEL', $extension_list);						}					}					// Add Extension?					$add_extension			= strtolower(request_var('add_extension', ''));					$add_extension_group	= request_var('add_group_select', 0);					$add					= (isset($_POST['add_extension_check'])) ? true : false;					if ($add_extension != '' && $add)					{						if (!sizeof($error))						{							$sql = 'SELECT extension_id								FROM ' . EXTENSIONS_TABLE . "								WHERE extension = '" . $db->sql_escape($add_extension) . "'";							$result = $db->sql_query($sql);														if ($row = $db->sql_fetchrow($result))							{								$error[] = sprintf($user->lang['EXTENSION_EXIST'], $add_extension);							}							$db->sql_freeresult($result);							if (!sizeof($error))							{								$sql_ary = array(									'group_id'	=>	$add_extension_group,									'extension'	=>	$add_extension								);																$db->sql_query('INSERT INTO ' . EXTENSIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));								add_log('admin', 'LOG_ATTACH_EXT_ADD', $add_extension);							}						}					}					if (!sizeof($error))					{						$notify[] = $user->lang['EXTENSIONS_UPDATED'];					}										$cache->destroy('_extensions');				}

⌨️ 快捷键说明

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