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

📄 acp_icons.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** ** @package acp* @version $Id: acp_icons.php,v 1.19 2006/10/14 14:56:43 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** @todo [smilies] check regular expressions for special char replacements (stored specialchared in db)* @package acp*/class acp_icons{	var $u_action;	function main($id, $mode)	{		global $db, $user, $auth, $template, $cache;		global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;		$user->add_lang('acp/posting');		// Set up general vars		$action = request_var('action', '');		$action = (isset($_POST['add'])) ? 'add' : $action;		$action = (isset($_POST['edit'])) ? 'edit' : $action;		$action = (isset($_POST['import'])) ? 'import' : $action;		$icon_id = request_var('id', 0);		$this->tpl_name = 'acp_icons';		// What are we working on?		switch ($mode)		{			case 'smilies':				$table = SMILIES_TABLE;				$lang = 'SMILIES';				$fields = 'smiley';				$img_path = $config['smilies_path'];			break;			case 'icons':				$table = ICONS_TABLE;				$lang = 'ICONS';				$fields = 'icons';				$img_path = $config['icons_path'];			break;		}		$this->page_title = 'ACP_' . $lang;		// Clear some arrays		$_images = $_paks = array();		$notice = '';		// Grab file list of paks and images		if ($action == 'edit' || $action == 'add' || $action == 'import')		{			$imglist = filelist($phpbb_root_path . $img_path, '');			foreach ($imglist as $path => $img_ary)			{				foreach ($img_ary as $img)				{					$img_size = @getimagesize($phpbb_root_path . $img_path . '/' . $path . $img);					if (!$img_size[0] || !$img_size[1])					{						continue;					}					$_images[$path . $img]['file'] = $path . $img;					$_images[$path . $img]['width'] = $img_size[0];					$_images[$path . $img]['height'] = $img_size[1];				}			}			unset($imglist);			$dir = @opendir($phpbb_root_path . $img_path);			while (($file = @readdir($dir)) !== false)			{				if (is_file($phpbb_root_path . $img_path . '/' . $file) && preg_match('#\.pak$#i', $file))				{					$_paks[] = $file;				}			}			@closedir($dir);		}		// What shall we do today? Oops, I believe that's trademarked ...		switch ($action)		{			case 'edit':				unset($_images);				$_images = array();			// no break;			case 'add':				$order_list = '';				$sql = "SELECT * 					FROM $table 					ORDER BY {$fields}_order " . (($icon_id || $action == 'add') ? 'DESC' : 'ASC');				$result = $db->sql_query($sql);				$data = array();				while ($row = $db->sql_fetchrow($result))				{					if ($action == 'add')					{						unset($_images[$row[$fields . '_url']]);					}					if ($row[$fields . '_id'] == $icon_id)					{						$after = true;						$data[$row[$fields . '_url']] = $row;					}					else					{						if ($action == 'edit' && !$icon_id)						{							$data[$row[$fields . '_url']] = $row;						}						$selected = '';						if (!empty($after))						{							$selected = ' selected="selected"';							$after = false;						}						$after_txt = ($mode == 'smilies') ? $row['code'] : $row['icons_url'];						$order_list = '<option value="' . ($row[$fields . '_order'] + 1) . '"' . $selected . '>' . sprintf($user->lang['AFTER_' . $lang], ' -&gt; ' . htmlspecialchars($after_txt)) . '</option>' . $order_list;					}				}				$db->sql_freeresult($result);				$order_list = '<option value="1"' . ((!isset($after)) ? ' selected="selected"' : '') . '>' . $user->lang['FIRST'] . '</option>' . $order_list;				if ($action == 'add')				{					$data = $_images;				}				$colspan = (($mode == 'smilies') ? '7' : '5');				$colspan += ($icon_id) ? 1 : 0;				$colspan += ($action == 'add') ? 2 : 0;				$template->assign_vars(array(					'S_EDIT'		=> true,					'S_SMILIES'		=> ($mode == 'smilies') ? true : false,					'S_ADD'			=> ($action == 'add') ? true : false,					'S_ORDER_LIST'	=> $order_list,					'L_TITLE'		=> $user->lang['ACP_' . $lang],					'L_EXPLAIN'		=> $user->lang['ACP_' . $lang . '_EXPLAIN'],					'L_CONFIG'		=> $user->lang[$lang . '_CONFIG'],					'L_URL'			=> $user->lang[$lang . '_URL'],					'L_LOCATION'	=> $user->lang[$lang . '_LOCATION'],					'L_WIDTH'		=> $user->lang[$lang . '_WIDTH'],					'L_HEIGHT'		=> $user->lang[$lang . '_HEIGHT'],					'L_ORDER'		=> $user->lang[$lang . '_ORDER'],					'COLSPAN'		=> $colspan,					'ID'			=> $icon_id,					'U_BACK'		=> $this->u_action,					'U_ACTION'		=> $this->u_action . '&amp;action=' . (($action == 'add') ? 'create' : 'modify'),					)				);				foreach ($data as $img => $img_row)				{					$template->assign_block_vars('items', array(						'IMG'		=> $img,						'IMG_SRC'	=> $phpbb_root_path . $img_path . '/' . $img,						'CODE'		=> ($mode == 'smilies' && isset($img_row['code'])) ? $img_row['code'] : '',						'EMOTION'	=> ($mode == 'smilies' && isset($img_row['emotion'])) ? $img_row['emotion'] : '',						'S_ID'				=> (isset($img_row[$fields . '_id'])) ? true : false,						'ID'				=> (isset($img_row[$fields . '_id'])) ? $img_row[$fields . '_id'] : 0,						'WIDTH'				=> (!empty($img_row[$fields .'_width'])) ? $img_row[$fields .'_width'] : $img_row['width'],						'HEIGHT'			=> (!empty($img_row[$fields .'_height'])) ? $img_row[$fields .'_height'] : $img_row['height'],						'POSTING_CHECKED'	=> (!empty($img_row['display_on_posting']) || $action == 'add') ? ' checked="checked"' : '')					);				}				return;				break;			case 'create':			case 'modify':				// Get items to create/modify				$images = (isset($_POST['image'])) ? array_keys(request_var('image', array('' => 0))) : array();								// Now really get the items				$image_id		= (isset($_POST['id'])) ? array_map('intval', $_POST['id']) : array();				$image_order	= (isset($_POST['order'])) ? array_map('intval', $_POST['order']) : array();				$image_width	= (isset($_POST['width'])) ? array_map('intval', $_POST['width']) : array();				$image_height	= (isset($_POST['height'])) ? array_map('intval', $_POST['height']) : array();				$image_add		= (isset($_POST['add_img'])) ? array_map('intval', $_POST['add_img']) : array();				$image_emotion	= request_var('emotion', array('' => ''));				$image_code		= request_var('code', array('' => ''));				$image_display_on_posting = (isset($_POST['display_on_posting'])) ? array_map('intval', $_POST['display_on_posting']) : array();				foreach ($images as $image)				{					if (($mode == 'smilies' && ($image_emotion[$image] == '' || $image_code[$image] == '')) ||						($action == 'create' && !isset($image_add[$image])))					{					}					else					{						if ($image_width[$image] == 0 || $image_height[$image] == 0)						{							$img_size = @getimagesize($phpbb_root_path . $img_path . '/' . $image);							$image_width[$image] = $img_size[0];							$image_height[$image] = $img_size[1];						}						$img_sql = array(							$fields . '_url'		=> $image,							$fields . '_width'		=> $image_width[$image],							$fields . '_height'		=> $image_height[$image],							'display_on_posting'	=> (isset($image_display_on_posting[$image])) ? 1 : 0,						);						if ($mode == 'smilies')						{							$img_sql = array_merge($img_sql, array(								'emotion'	=> $image_emotion[$image],								'code'		=> $image_code[$image])							);						}						// Image_order holds the 'new' order value						if (!empty($image_order[$image]))						{							$img_sql = array_merge($img_sql, array(								$fields . '_order'	=>	$image_order[$image])							);							// Since we always add 'after' an item, we just need to increase all following + the current by one							$sql = "UPDATE $table								SET {$fields}_order = {$fields}_order + 1								WHERE {$fields}_order >= {$image_order[$image]}";							$db->sql_query($sql);							// If we adjust the order, we need to adjust all other orders too - they became inaccurate...							foreach ($image_order as $_image => $_order)							{								if ($_image == $image)								{									continue;								}								if ($_order >= $image_order[$image])								{									$image_order[$_image]++;								}							}						}						if ($action == 'modify')						{							$sql = "UPDATE $table								SET " . $db->sql_build_array('UPDATE', $img_sql) . " 								WHERE {$fields}_id = " . $image_id[$image];							$db->sql_query($sql);						}						else						{							$sql = "INSERT INTO $table " . $db->sql_build_array('INSERT', $img_sql);							$db->sql_query($sql);						}					}				}								$cache->destroy('icons');				$cache->destroy('sql', $table);				if ($action == 'modify')				{					trigger_error($user->lang[$lang . '_EDITED'] . adm_back_link($this->u_action));				}				else				{					trigger_error($user->lang[$lang . '_ADDED'] . adm_back_link($this->u_action));				}			break;			case 'import':				$pak = request_var('pak', '');				$current = request_var('current', '');				if ($pak != '')				{					$order = 0;					// The user has already selected a smilies_pak file					if ($current == 'delete')					{						$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . $table);						switch ($mode)						{							case 'smilies':							break;							case 'icons':								// Reset all icon_ids								$db->sql_query('UPDATE ' . TOPICS_TABLE . ' SET icon_id = 0');								$db->sql_query('UPDATE ' . POSTS_TABLE . ' SET icon_id = 0');							break;						}					}					else 					{						$cur_img = array();						$field_sql = ($mode == 'smilies') ? 'code' : 'icons_url';

⌨️ 快捷键说明

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