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

📄 acp_attachments.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 4 页
字号:
								// if the user does not have permissions to list this forum skip								continue;							}							if ($row['left_id'] < $right)							{								$padding .= '&nbsp; &nbsp;';								$padding_store[$row['parent_id']] = $padding;							}							else if ($row['left_id'] > $right + 1)							{								$padding = $padding_store[$row['parent_id']];							}							$right = $row['right_id'];							$selected = (in_array($row['forum_id'], $forum_ids)) ? ' selected="selected"' : '';							if ($row['left_id'] > $cat_right)							{								$holding = '';							}							if ($row['right_id'] - $row['left_id'] > 1)							{								$cat_right = max($cat_right, $row['right_id']);								$holding .= '<option value="' . $row['forum_id'] . '"' . (($row['forum_type'] == FORUM_POST) ? ' class="blue"' : '') . $selected . '>' . $padding . $row['forum_name'] . '</option>';							}							else							{								$s_forum_id_options .= $holding . '<option value="' . $row['forum_id'] . '"' . (($row['forum_type'] == FORUM_POST) ? ' class="blue"' : '') . $selected . '>' . $padding . $row['forum_name'] . '</option>';								$holding = '';							}						}						$db->sql_freeresult($result);						unset($padding_store);						$template->assign_vars(array(							'S_FORUM_ID_OPTIONS'	=> $s_forum_id_options)						);										break;					case 'deactivate':					case 'activate':						if (!$group_id)						{							trigger_error($user->lang['NO_EXT_GROUP_SPECIFIED'] . adm_back_link($this->u_action), E_USER_WARNING);						}						$sql = 'UPDATE ' . EXTENSION_GROUPS_TABLE . '							SET allow_group = ' . (($action == 'activate') ? '1' : '0') . "							WHERE group_id = $group_id";						$db->sql_query($sql);						$this->rewrite_extensions();					break;				}				$sql = 'SELECT *					FROM ' . EXTENSION_GROUPS_TABLE . '					ORDER BY allow_group DESC, group_name';				$result = $db->sql_query($sql);				$act_deact = 'activate';				while ($row = $db->sql_fetchrow($result))				{					$s_add_spacer = ($row['allow_group'] == 0 && $act_deact == 'deactivate') ? true : false;					$act_deact = ($row['allow_group']) ? 'deactivate' : 'activate';					$template->assign_block_vars('groups', array(						'S_ADD_SPACER'		=> $s_add_spacer,						'S_ALLOWED_IN_PM'	=> ($row['allow_in_pm']) ? true : false,						'S_GROUP_ALLOWED'	=> ($row['allow_group']) ? true : false,						'U_EDIT'		=> $this->u_action . "&amp;action=edit&amp;g={$row['group_id']}",						'U_DELETE'		=> $this->u_action . "&amp;action=delete&amp;g={$row['group_id']}",						'U_ACT_DEACT'	=> $this->u_action . "&amp;action=$act_deact&amp;g={$row['group_id']}",						'L_ACT_DEACT'	=> $user->lang[strtoupper($act_deact)],						'GROUP_NAME'	=> $row['group_name'],						'CATEGORY'		=> $cat_lang[$row['cat_id']],						)					);				}				$db->sql_freeresult($result);			break;			case 'orphan':				if ($submit)				{					$delete_files = (isset($_POST['delete'])) ? array_keys(request_var('delete', array('' => 0))) : array();					$add_files = (isset($_POST['add'])) ? array_keys(request_var('add', array('' => 0))) : array();					$post_ids = request_var('post_id', array('' => 0));					if (sizeof($delete_files))					{						$sql = 'SELECT *							FROM ' . ATTACHMENTS_TABLE . '							WHERE ' . $db->sql_in_set('attach_id', $delete_files) . '								AND is_orphan = 1';						$result = $db->sql_query($sql);						$delete_files = array();						while ($row = $db->sql_fetchrow($result))						{							phpbb_unlink($row['physical_filename']);							if ($row['thumbnail'])							{								phpbb_unlink($row['physical_filename'], 'thumbnail');							}							$delete_files[$row['attach_id']] = $row['real_filename'];						}						$db->sql_freeresult($result);					}					if (sizeof($delete_files))					{						$sql = 'DELETE FROM ' . ATTACHMENTS_TABLE . '							WHERE ' . $db->sql_in_set('attach_id', array_keys($delete_files));						$db->sql_query($sql);						add_log('admin', 'LOG_ATTACH_ORPHAN_DEL', implode(', ', $delete_files));						$notify[] = sprintf($user->lang['LOG_ATTACH_ORPHAN_DEL'], implode(', ', $delete_files));					}					$upload_list = array();					foreach ($add_files as $attach_id)					{						if (!in_array($attach_id, array_keys($delete_files)) && !empty($post_ids[$attach_id]))						{							$upload_list[$attach_id] = $post_ids[$attach_id];						}					}					unset($add_files);					if (sizeof($upload_list))					{						$template->assign_var('S_UPLOADING_FILES', true);						$sql = 'SELECT forum_id, forum_name							FROM ' . FORUMS_TABLE;						$result = $db->sql_query($sql);						$forum_names = array();						while ($row = $db->sql_fetchrow($result))						{							$forum_names[$row['forum_id']] = $row['forum_name'];						}						$db->sql_freeresult($result);						$sql = 'SELECT forum_id, topic_id, post_id, poster_id							FROM ' . POSTS_TABLE . '							WHERE ' . $db->sql_in_set('post_id', $upload_list);						$result = $db->sql_query($sql);						$post_info = array();						while ($row = $db->sql_fetchrow($result))						{							$post_info[$row['post_id']] = $row;						}						$db->sql_freeresult($result);						// Select those attachments we want to change...						$sql = 'SELECT *							FROM ' . ATTACHMENTS_TABLE . '							WHERE ' . $db->sql_in_set('attach_id', array_keys($upload_list)) . '								AND is_orphan = 1';						$result = $db->sql_query($sql);						while ($row = $db->sql_fetchrow($result))						{							$post_row = $post_info[$upload_list[$row['attach_id']]];							$template->assign_block_vars('upload', array(								'FILE_INFO'		=> sprintf($user->lang['UPLOADING_FILE_TO'], $row['real_filename'], $post_row['post_id']),								'S_DENIED'		=> (!$auth->acl_get('f_attach', $post_row['forum_id'])) ? true : false,								'L_DENIED'		=> (!$auth->acl_get('f_attach', $post_row['forum_id'])) ? sprintf($user->lang['UPLOAD_DENIED_FORUM'], $forum_names[$row['forum_id']]) : '')							);							if (!$auth->acl_get('f_attach', $post_row['forum_id']))							{								continue;							}							// Adjust attachment entry							$sql_ary = array(								'in_message'	=> 0,								'is_orphan'		=> 0,								'poster_id'		=> $post_row['poster_id'],								'post_msg_id'	=> $post_row['post_id'],								'topic_id'		=> $post_row['topic_id'],							);							$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '								SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '								WHERE attach_id = ' . $row['attach_id'];							$db->sql_query($sql);							$sql = 'UPDATE ' . POSTS_TABLE . '								SET post_attachment = 1								WHERE post_id = ' . $post_row['post_id'];							$db->sql_query($sql);							$sql = 'UPDATE ' . TOPICS_TABLE . '								SET topic_attachment = 1								WHERE topic_id = ' . $post_row['topic_id'];							$db->sql_query($sql);							add_log('admin', 'LOG_ATTACH_FILEUPLOAD', $post_row['post_id'], $row['real_filename']);						}						$db->sql_freeresult($result);					}				}				$template->assign_vars(array(					'S_ORPHAN'		=> true)				);				// Just get the files with is_orphan set and older than 3 hours				$sql = 'SELECT *					FROM ' . ATTACHMENTS_TABLE . '					WHERE is_orphan = 1						AND filetime < ' . (time() - 3*60*60) . '					ORDER BY filetime DESC';				$result = $db->sql_query($sql);				while ($row = $db->sql_fetchrow($result))				{					$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MB'] : (($row['filesize'] >= 1024) ? $user->lang['KB'] : $user->lang['BYTES']);					$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);					$template->assign_block_vars('orphan', array(						'FILESIZE'			=> $row['filesize'] . ' ' . $size_lang,						'FILETIME'			=> $user->format_date($row['filetime']),						'REAL_FILENAME'		=> basename($row['real_filename']),						'PHYSICAL_FILENAME'	=> basename($row['physical_filename']),						'ATTACH_ID'			=> $row['attach_id'],						'POST_IDS'			=> (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',						'U_FILE'			=> append_sid($phpbb_root_path . 'download.' . $phpEx, 'id=' . $row['attach_id']))					);				}				$db->sql_freeresult($result);			break;		}		if (sizeof($error))		{			$template->assign_vars(array(				'S_WARNING'		=> true,				'WARNING_MSG'	=> implode('<br />', $error))			);		}		if (sizeof($notify))		{			$template->assign_vars(array(				'S_NOTIFY'		=> true,				'NOTIFY_MSG'	=> implode('<br />', $notify))			);		}	}	/**	* Build Select for category items	*/	function category_select($select_name, $group_id = false, $key = '')	{		global $db, $user;		$types = array(			ATTACHMENT_CATEGORY_NONE		=> $user->lang['NO_FILE_CAT'],			ATTACHMENT_CATEGORY_IMAGE		=> $user->lang['CAT_IMAGES'],			ATTACHMENT_CATEGORY_WM			=> $user->lang['CAT_WM_FILES'],			ATTACHMENT_CATEGORY_RM			=> $user->lang['CAT_RM_FILES'],			ATTACHMENT_CATEGORY_FLASH		=> $user->lang['CAT_FLASH_FILES'],			ATTACHMENT_CATEGORY_QUICKTIME	=> $user->lang['CAT_QUICKTIME_FILES'],		);				if ($group_id)		{			$sql = 'SELECT cat_id				FROM ' . EXTENSION_GROUPS_TABLE . '				WHERE group_id = ' . (int) $group_id;			$result = $db->sql_query($sql);			$cat_type = (!($row = $db->sql_fetchrow($result))) ? ATTACHMENT_CATEGORY_NONE : $row['cat_id'];			$db->sql_freeresult($result);		}		else		{			$cat_type = ATTACHMENT_CATEGORY_NONE;		}				$group_select = '<select name="' . $select_name . '"' . (($key) ? ' id="' . $key . '"' : '') . '>';		foreach ($types as $type => $mode)		{			$selected = ($type == $cat_type) ? ' selected="selected"' : '';			$group_select .= '<option value="' . $type . '"' . $selected . '>' . $mode . '</option>';		}		$group_select .= '</select>';		return $group_select;	}	/**	* Extension group select	*/	function group_select($select_name, $default_group = false, $key = '')	{		global $db, $user;					$group_select = '<select name="' . $select_name . '"' . (($key) ? ' id="' . $key . '"' : '') . '>';		$sql = 'SELECT group_id, group_name			FROM ' . EXTENSION_GROUPS_TABLE . '			ORDER BY group_name';		$result = $db->sql_query($sql);		$group_name = array();		while ($row = $db->sql_fetchrow($result))		{			$group_name[] = $row;		}		$db->sql_freeresult($result);		$row['group_id'] = 0;		$row['group_name'] = $user->lang['NOT_ASSIGNED'];		$group_name[] = $row;				for ($i = 0; $i < sizeof($group_name); $i++)		{			if ($default_group === false)			{				$selected = ($i == 0) ? ' selected="selected"' : '';			}			else			{				$selected = ($group_name[$i]['group_id'] == $default_group) ? ' selected="selected"' : '';			}			$group_select .= '<option value="' . $group_name[$i]['group_id'] . '"' . $selected . '>' . $group_name[$i]['group_name'] . '</option>';		}		$group_select .= '</select>';		return $group_select;	}	/**	* Build select for download modes	*/	function download_select($select_name, $group_id = false, $key = '')	{		global $db, $user;			

⌨️ 快捷键说明

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