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

📄 functions.php

📁 国外非常不错的论坛
💻 PHP
📖 第 1 页 / 共 4 页
字号:
			else				return $url.'?'.$SID;					} else {						return $url;					}			}		//	// Fetch a language file	//	function fetch_language($language='', $section='') {				$language = ( !empty($language) && in_array($language, $this->get_language_packs()) ) ? $language : $this->get_config('language');		$section = ( !empty($section) ) ? $section : 'lang';				if ( !array_key_exists($language, $this->language_sections) || !in_array($section, $this->language_sections[$language]) ) {						if ( $section != 'lang' ) {								$lang = $GLOBALS['lang'];				if ( !file_exists(ROOT_PATH.'languages/'.$section.'_'.$language.'.php') ) {										if ( $language != 'English' && in_array('English', $this->get_language_packs()) )						require(ROOT_PATH.'languages/'.$section.'_English.php');					else						trigger_error('Section "'.$section.'" for language pack "'.$language.'" could not be found. No English fallback was available. Please use an updated language pack or also upload the English one.');									} else {										require(ROOT_PATH.'languages/'.$section.'_'.$language.'.php');										if ( $language != 'English' && in_array('English', $this->get_language_packs()) )						$lang = array_merge($this->fetch_language('English', $section), $lang);									}							} else {								require(ROOT_PATH.'languages/'.$section.'_'.$language.'.php');								if ( $language != 'English' && in_array('English', $this->get_language_packs()) )					$lang = array_merge($this->fetch_language('English', $section), $lang);								if ( empty($lang['character_encoding']) )					$lang['character_encoding'] = 'iso-8859-1';								if ( function_exists('mb_internal_encoding') )					mb_internal_encoding($lang['character_encoding']);							}						$this->languages[$language] = $lang;		}				if ( !array_key_exists($language, $this->language_sections) )			$this->language_sections[$language] = array();		$this->language_sections[$language][] = $section;				return $this->languages[$language];			}		//	// Kick a user to the login form	//	function redir_to_login() {				global $session, $template, $lang;				if ( !$session->sess_info['user_id'] ) {						$_SESSION['referer'] = $_SERVER['REQUEST_URI'];			$this->redirect('panel.php', array('act' => 'login'));					} else {						header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');			$template->set_page_title($lang['Note']);			$template->parse('msgbox', 'global', array(				'box_title' => $lang['Note'],				'content' => $lang['NotPermitted']			));					}			}		//	// Generate a date given a timestamp	//	function make_date($stamp, $format='', $keep_gmt=false, $translate=true) {				global $lang;				$format = ( !empty($format) ) ? $format : $this->get_config('date_format');				if ( $keep_gmt )			$date = gmdate($format, $stamp);		else			$date = gmdate($format, $stamp + (3600 * $this->get_config('timezone')) + (3600 * $this->get_config('dst')));				if ( $translate && array_key_exists('date_translations', $lang) && is_array($lang['date_translations']) )			$date = ucfirst(strtr($date, $lang['date_translations']));				return $date;			}		//	// Generate a time past string	//	function time_past($timestamp, $until='') {			global $lang;			$seconds = ( ( is_int($until) ) ? $until : time() ) - $timestamp;			$times = array();		$sections = array(			'weeks' => 604800,			'days' => 86400,			'hours' => 3600,			'minutes' => 60,			'seconds' => 1		);			foreach( $sections as $what => $length ) {						if ( $seconds >= $length ) {								$times[$what] = ( $length >0 ) ? floor($seconds / $length) : $length;				$seconds %= $length;							}					}			$sections = array();		foreach ( $times as $key => $val )			$sections[] = $val.' '.$lang[ucfirst($key)];			return array($times, join(', ', $sections));		}		//	// Generate an e-mail link	//	function show_email($user) {				global $session, $lang;				if ( $this->get_user_level() >= intval($this->get_config('view_hidden_email_addresses_min_level')) ) {						//			// The viewing user is an administrator			//			if ( $this->get_config('email_view_level') == 1 )				return '<a href="'.$this->make_url('mail.php', array('id' => $user['id'])).'">'.$lang['SendMessage'].'</a>';			elseif ( !$this->get_config('email_view_level') || $this->get_config('email_view_level') == 2 || $this->get_config('email_view_level') == 3 )				return '<a href="mailto:'.$user['email'].'">'.$user['email'].'</a>';					} else {						//			// The viewing user is not an administrator			//			if ( !$this->get_config('email_view_level') || !$user['email_show'] && $user['id'] != $session->sess_info['user_id'] )				return $lang['Hidden'];			elseif ( $this->get_config('email_view_level') == 1 )				return '<a href="'.$this->make_url('mail.php', array('id' => $user['id'])).'">'.$lang['SendMessage'].'</a>';			elseif ( $this->get_config('email_view_level') == 2 )				return str_replace('@', ' at ', $user['email']);			elseif ( $this->get_config('email_view_level') == 3 )				return '<a href="mailto:'.$user['email'].'">'.$user['email'].'</a>';					}			}		//	// Generate a random key	//	function random_key() {				$characters = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890';		$length = 10;		$key = '';				for ( $i=0; $i<$length; $i++ ) {						//			// Make a seed for the random key generator			// This is needed on PHP < 4.2.0			//			$seed = explode(' ', microtime());			mt_srand($seed[0] * $seed[1]);			$key .= $characters[mt_rand(0, strlen($characters)-1)];					}				return $key;			}		//	// Send an email	//	function usebb_mail($subject, $rawbody, $bodyvars=array(), $from_name, $from_email, $to, $bcc_email='', $language='', $charset='') {				global $lang;				$bodyvars = ( is_array($bodyvars) ) ? $bodyvars : array();				//		// Eventually use the right language and character encoding which may be passed		// in the parameters when another language is used (e.g. subscription notices)		//		$language = ( !empty($language) ) ? $language : $this->get_config('language');		$charset = ( !empty($charset) ) ? $charset : $lang['character_encoding'];				//		// Set the correct mb_language when neccessary (only for Japanese, English or UTF-8)		//		if ( function_exists('mb_language') ) {						if ( in_array($language, array('Japanese', 'ja', 'English', 'en')) )				mb_language($language);			elseif ( strtolower($charset) == 'utf-8' )				mb_language('uni');			else				mb_language('en');					}				$body = str_replace(array("\r\n", "\r"), "\n", $rawbody);				//		// Windows: \r\n; other: \n		//		$cr = ( strstr(PHP_OS, 'WIN') !== false ) ? "\r\n" : "\n";		$body = str_replace("\n", $cr, $rawbody);				$bodyvars['board_name'] = $this->get_config('board_name');		$bodyvars['board_link'] = $this->get_config('board_url');		$bodyvars['admin_email'] = $this->get_config('admin_email');				foreach ( $bodyvars as $key => $val )			$body = str_replace('['.$key.']', $val, $body);				$headers = array();				if ( function_exists('mb_encode_mimeheader') ) {						$from_name = mb_encode_mimeheader($from_name);			$subject = mb_encode_mimeheader($subject);					}				$headers[] = 'MIME-Version: 1.0';		if ( !empty($bcc_email) )			$headers[] = 'Bcc: '.$bcc_email;		$headers[] = 'Date: '.date('r');		$headers[] = 'X-Mailer: UseBB/'.USEBB_VERSION;		$headers[] = 'From: '.$from_name.' <'.$from_email.'>';				if ( function_exists('mb_send_mail') ) {						if ( !mb_send_mail($to, $subject, $body, join($cr, $headers)) )				trigger_error('Unable to send e-mail!');					} else {						if ( strtolower($charset) == 'utf-8' )				$headers[] = 'Content-Transfer-Encoding: 8bit';						if ( !mail($to, $subject, $body, join($cr, $headers)) )				trigger_error('Unable to send e-mail!');					}				if ( function_exists('mb_language') ) {						mb_language($this->get_config('language'));			mb_internal_encoding($lang['character_encoding']);					}			}		//	// Set the remember cookie	//	function set_al($user_id, $passwd_hash) {				$content = array(			intval($user_id),			$passwd_hash		);		setcookie($this->get_config('session_name').'_al', serialize($content), time()+31536000, $this->get_config('cookie_path'), $this->get_config('cookie_domain'), $this->get_config('cookie_secure'));			}		//	// Unset the remember cookie	//	function unset_al() {				setcookie($this->get_config('session_name').'_al', '', time()-31536000, $this->get_config('cookie_path'), $this->get_config('cookie_domain'), $this->get_config('cookie_secure'));			}		//	// Is the remember cookie set?	//	function isset_al() {				if ( !empty($_COOKIE[$this->get_config('session_name').'_al']) )			return true;		else			return false;			}		//	// Get the remember cookie's value	//	function get_al() {				if ( $this->isset_al() ) {						$content = stripslashes($_COOKIE[$this->get_config('session_name').'_al']);			if ( substr($content, 0, 1) == 'a' )				return unserialize($content);			else				return explode(':', $content, 2);					} else {						return false;					}			}		//	// Get the user's level	//	function get_user_level() {				global $session;				if ( !isset($session->sess_info['user_id']) )			trigger_error('You first need to call $session->update() before you can get any session info.');				if ( $session->sess_info['user_id'] )			return $session->sess_info['user_info']['level'];		else			return LEVEL_GUEST;			}		//	// Authorization function	// Defines whether a user has permission to take a certain action.	//	function auth($auth_int, $action, $forum_id, $self=true, $alternative_user_info=null) {				global $session, $db;				if ( $self )			$user_info = ( $session->sess_info['user_id'] ) ? $session->sess_info['user_info'] : array('id' => LEVEL_GUEST, 'level' => LEVEL_GUEST);		else			$user_info = $alternative_user_info;				if ( ( $self && $session->sess_info['ip_banned'] ) || ( $this->get_config('board_closed') && $user_info['level'] < LEVEL_ADMIN ) )			return false;				//		// Define the user level		//		if ( $user_info['id'] ) {						if ( $user_info['level'] == LEVEL_MOD ) {								if ( !is_array($this->mod_auth) ) {										$result = $db->query("SELECT forum_id FROM ".TABLE_PREFIX."moderators WHERE user_id = ".$user_info['id']);					$this->mod_auth = array();					while ( $out = $db->fetch_result($result) )						$this->mod_auth[] = intval($out['forum_id']);									}								if ( in_array($forum_id, $this->mod_auth) )					$userlevel = LEVEL_MOD;				else					$userlevel = LEVEL_MEMBER;							} else {								$userlevel = $user_info['level'];							}					} else {						if ( !$this->get_config('guests_can_access_board') )				return false;			else				$userlevel = LEVEL_GUEST;					}				//		// Get the part of the auth integer that		// corresponds with the action given		//		$actions = array(			'view' => 0,			'read' => 1,			'post' => 2,			'reply' => 3,			'edit' => 4,			'move' => 5,			'delete' => 6,			'lock' => 7,			'sticky' => 8,			'html' => 9

⌨️ 快捷键说明

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