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

📄 acp_language.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 3 页
字号:
				if ($lang_iso != $config['default_lang'])				{					$is_missing_var = false;					foreach ($this->main_files as $file)					{						if (file_exists($phpbb_root_path . $this->get_filename($lang_iso, '', $file)))						{							$missing_vars[$file] = $this->compare_language_files($config['default_lang'], $lang_iso, '', $file);														if (sizeof($missing_vars[$file]))							{								$is_missing_var = true;							}						}						else						{							$missing_files[] = $this->get_filename($lang_iso, '', $file);						}					}					// Now go through acp/mods directories					foreach ($acp_files as $file)					{						if (file_exists($phpbb_root_path . $this->get_filename($lang_iso, 'acp', $file)))						{							$missing_vars['acp/' . $file] = $this->compare_language_files($config['default_lang'], $lang_iso, 'acp', $file);														if (sizeof($missing_vars['acp/' . $file]))							{								$is_missing_var = true;							}						}						else						{							$missing_files[] = $this->get_filename($lang_iso, 'acp', $file);						}					}					if (sizeof($mods_files))					{						foreach ($mods_files as $file)						{							if (file_exists($phpbb_root_path . $this->get_filename($lang_iso, 'mods', $file)))							{								$missing_vars['mods/' . $file] = $this->compare_language_files($config['default_lang'], $lang_iso, 'mods', $file);																if (sizeof($missing_vars['mods/' . $file]))								{									$is_missing_var = true;								}							}							else							{								$missing_files[] = $this->get_filename($lang_iso, 'mods', $file);							}						}					}									// More missing files... for example email templates?					foreach ($email_files as $file)					{						if (!file_exists($phpbb_root_path . $this->get_filename($lang_iso, 'email', $file)))						{							$missing_files[] = $this->get_filename($lang_iso, 'email', $file);						}					}					if (sizeof($missing_files))					{						$template->assign_vars(array(							'S_MISSING_FILES'		=> true,							'L_MISSING_FILES'		=> sprintf($user->lang['THOSE_MISSING_LANG_FILES'], $lang_entries['lang_local_name']),							'MISSING_FILES'			=> implode('<br />', $missing_files))						);					}					if ($is_missing_var)					{						$template->assign_vars(array(							'S_MISSING_VARS'			=> true,							'L_MISSING_VARS_EXPLAIN'	=> sprintf($user->lang['THOSE_MISSING_LANG_VARIABLES'], $lang_entries['lang_local_name']),							'U_MISSING_ACTION'			=> $this->u_action . "&amp;action=$action&amp;id=$lang_id")						);						foreach ($missing_vars as $file => $vars)						{							if (!sizeof($vars))							{								continue;							}							$template->assign_block_vars('missing', array(								'FILE'			=> $file,								'TPL'			=> $this->print_language_entries($vars, '', false),								'KEY'			=> (strpos($file, '/') === false) ? '|' . $file : str_replace('/', '|', $file))							);						}					}				}				// Main language files				$s_lang_options = '<option value="|common.' . $phpEx . '" class="sep">' . $user->lang['LANGUAGE_FILES'] . '</option>';				foreach ($this->main_files as $file)				{					if (strpos($file, 'help_') === 0)					{						continue;					}					$prefix = (file_exists($phpbb_root_path . $this->get_filename($lang_iso, '', $file, true, true))) ? '* ' : '';					$selected = (!$this->language_directory && $this->language_file == $file) ? ' selected="selected"' : '';					$s_lang_options .= '<option value="|' . $file . '"' . $selected . '>' . $prefix . $file . '</option>';				}				// Help Files				$s_lang_options .= '<option value="|common.' . $phpEx . '" class="sep">' . $user->lang['HELP_FILES'] . '</option>';				foreach ($this->main_files as $file)				{					if (strpos($file, 'help_') !== 0)					{						continue;					}					$prefix = (file_exists($phpbb_root_path . $this->get_filename($lang_iso, '', $file, true, true))) ? '* ' : '';					$selected = (!$this->language_directory && $this->language_file == $file) ? ' selected="selected"' : '';					$s_lang_options .= '<option value="|' . $file . '"' . $selected . '>' . $prefix . $file . '</option>';				}				// Now every other language directory				$check_files = array('email', 'acp', 'mods');				foreach ($check_files as $check)				{					if (!sizeof(${$check . '_files'}))					{						continue;					}					$s_lang_options .= '<option value="|common.' . $phpEx . '" class="sep">' . $user->lang[strtoupper($check) . '_FILES'] . '</option>';					foreach (${$check . '_files'} as $file)					{						$prefix = (file_exists($phpbb_root_path . $this->get_filename($lang_iso, $check, $file, true, true))) ? '* ' : '';						$selected = ($this->language_directory == $check && $this->language_file == $file) ? ' selected="selected"' : '';						$s_lang_options .= '<option value="' . $check . '|' . $file . '"' . $selected . '>' . $prefix . $file . '</option>';					}				}				// Get Language Entries - if saved within store folder, we take this one (with the option to remove it)				$lang = array();				$is_email_file = ($this->language_directory == 'email') ? true : false;				$is_help_file = (strpos($this->language_file, 'help_') === 0) ? true : false;				$file_from_store = (file_exists($phpbb_root_path . $this->get_filename($lang_iso, $this->language_directory, $this->language_file, true, true))) ? true : false;				$no_store_filename = $this->get_filename($lang_iso, $this->language_directory, $this->language_file);				if (!$file_from_store && !file_exists($phpbb_root_path . $no_store_filename))				{					$print_message = sprintf($user->lang['MISSING_LANGUAGE_FILE'], $no_store_filename);				}				else				{					if ($is_email_file)					{						$lang = file_get_contents($phpbb_root_path . $this->get_filename($lang_iso, $this->language_directory, $this->language_file, $file_from_store));					}					else					{						$help = array();						include($phpbb_root_path . $this->get_filename($lang_iso, $this->language_directory, $this->language_file, $file_from_store));						if ($is_help_file)						{							$lang = $help;							unset($help);						}					}					$print_message = (($this->language_directory) ? $this->language_directory . '/' : '') . $this->language_file;				}				// Normal language pack entries				$template->assign_vars(array(					'U_ENTRY_ACTION'		=> $this->u_action . "&amp;action=details&amp;id=$lang_id#entries",					'S_EMAIL_FILE'			=> $is_email_file,					'S_FROM_STORE'			=> $file_from_store,					'S_LANG_OPTIONS'		=> $s_lang_options,					'PRINT_MESSAGE'			=> $print_message,					)				);				if (!$is_email_file)				{					$method = ($is_help_file) ? 'print_help_entries' : 'print_language_entries';					$tpl = '';					$name = (($this->language_directory) ? $this->language_directory . '/' : '') . $this->language_file;					if (isset($missing_vars[$name]) && sizeof($missing_vars[$name]))					{						$tpl .= $this->$method($missing_vars[$name], '* ');					}					$tpl .= $this->$method($lang);					$template->assign_var('TPL', $tpl);					unset($tpl);				}				else				{					$template->assign_vars(array(						'LANG'		=> $lang)					);					unset($lang);				}				return;			break;			case 'delete':				if (!$lang_id)				{					trigger_error($user->lang['NO_LANG_ID'] . adm_back_link($this->u_action), E_USER_WARNING);				}				$sql = 'SELECT *					FROM ' . LANG_TABLE . '					WHERE lang_id = ' . $lang_id;				$result = $db->sql_query($sql);				$row = $db->sql_fetchrow($result);				$db->sql_freeresult($result);				if ($row['lang_iso'] == $config['default_lang'])				{					trigger_error($user->lang['NO_REMOVE_DEFAULT_LANG'] . adm_back_link($this->u_action), E_USER_WARNING);				}				$db->sql_query('DELETE FROM ' . LANG_TABLE . ' WHERE lang_id = ' . $lang_id);				$sql = 'UPDATE ' . USERS_TABLE . " 					SET user_lang = '" . $db->sql_escape($config['default_lang']) . "'					WHERE user_lang = '" . $db->sql_escape($row['lang_iso']) . "'";				$db->sql_query($sql);				add_log('admin', 'LOG_LANGUAGE_PACK_DELETED', $row['lang_english_name']);				trigger_error(sprintf($user->lang['LANGUAGE_PACK_DELETED'], $row['lang_english_name']) . adm_back_link($this->u_action));			break;			case 'install':				$lang_iso = request_var('iso', '');				$lang_iso = basename($lang_iso);				if (!$lang_iso || !file_exists("{$phpbb_root_path}language/$lang_iso/iso.txt"))				{					trigger_error($user->lang['LANGUAGE_PACK_NOT_EXIST'] . adm_back_link($this->u_action), E_USER_WARNING);				}				$file = file("{$phpbb_root_path}language/$lang_iso/iso.txt");				$lang_pack = array(					'iso'		=> $lang_iso,					'name'		=> trim(htmlspecialchars($file[0])),					'local_name'=> trim(htmlspecialchars($file[1], ENT_COMPAT, 'UTF-8')),					'author'	=> trim(htmlspecialchars($file[2], ENT_COMPAT, 'UTF-8'))				);				unset($file);				$sql = 'SELECT lang_iso					FROM ' . LANG_TABLE . "					WHERE lang_iso = '" . $db->sql_escape($lang_iso) . "'";				$result = $db->sql_query($sql);				$row = $db->sql_fetchrow($result);				$db->sql_freeresult($result);				if ($row)				{					trigger_error($user->lang['LANGUAGE_PACK_ALREADY_INSTALLED'] . adm_back_link($this->u_action), E_USER_WARNING);				}				if (!$lang_pack['name'] || !$lang_pack['local_name'])				{					trigger_error($user->lang['INVALID_LANGUAGE_PACK'] . adm_back_link($this->u_action), E_USER_WARNING);				}				// Add language pack				$sql_ary = array(					'lang_iso'			=> $lang_pack['iso'],					'lang_dir'			=> $lang_pack['iso'],					'lang_english_name'	=> $lang_pack['name'],					'lang_local_name'	=> $lang_pack['local_name'],					'lang_author'		=> $lang_pack['author']				);				$db->sql_query('INSERT INTO ' . LANG_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));				add_log('admin', 'LOG_LANGUAGE_PACK_INSTALLED', $lang_pack['name']);				trigger_error(sprintf($user->lang['LANGUAGE_PACK_INSTALLED'], $lang_pack['name']) . adm_back_link($this->u_action));			break;			case 'download':				if (!$lang_id)				{					trigger_error($user->lang['NO_LANG_ID'] . adm_back_link($this->u_action), E_USER_WARNING);				}				$sql = 'SELECT * 					FROM ' . LANG_TABLE . '					WHERE lang_id = ' . $lang_id;				$result = $db->sql_query($sql);				$row = $db->sql_fetchrow($result);				$db->sql_freeresult($result);				$use_method = request_var('use_method', '');				$methods = array('.tar');				$available_methods = array('.tar.gz' => 'zlib', '.tar.bz2' => 'bz2', '.zip' => 'zlib');				foreach ($available_methods as $type => $module)				{					if (!@extension_loaded($module))					{						continue;					}					$methods[] = $type;				}				// Let the user decide in which format he wants to have the pack				if (!$use_method)				{					$this->page_title = 'SELECT_DOWNLOAD_FORMAT';					$radio_buttons = '';					foreach ($methods as $method)					{						$radio_buttons .= '<input type="radio"' . ((!$radio_buttons) ? ' id="use_method"' : '') . ' class="radio" value="' . $method . '" name="use_method" />&nbsp;' . $method . '&nbsp;';					}					$template->assign_vars(array(						'S_SELECT_METHOD'		=> true,						'U_BACK'				=> $this->u_action,						'U_ACTION'				=> $this->u_action . "&amp;action=$action&amp;id=$lang_id",						'RADIO_BUTTONS'			=> $radio_buttons)					);					return;				}				if (!in_array($use_method, $methods))				{					$use_method = '.tar';				}				include_once($phpbb_root_path . 'includes/functions_compress.' . $phpEx);				if ($use_method == '.zip')				{					$compress = new compress_zip('w', $phpbb_root_path . 'store/lang_' . $row['lang_iso'] . $use_method);				}				else				{					$compress = new compress_tar('w', $phpbb_root_path . 'store/lang_' . $row['lang_iso'] . $use_method, $use_method);				}				// Get email templates				$email_templates = filelist($phpbb_root_path . 'language/' . $row['lang_iso'], 'email', 'txt');				$email_templates = $email_templates['email/'];				// Get acp files				$acp_files = filelist($phpbb_root_path . 'language/' . $row['lang_iso'], 'acp', $phpEx);				$acp_files = $acp_files['acp/'];				// Get mod files				$mod_files = filelist($phpbb_root_path . 'language/' . $row['lang_iso'], 'mods', $phpEx);				$mod_files = (isset($mod_files['mods/'])) ? $mod_files['mods/'] : array();				// Add main files				$this->add_to_archive($compress, $this->main_files, $row['lang_iso']);				// Add search files if they exist...				if (file_exists($phpbb_root_path . 'language/' . $row['lang_iso'] . '/search_ignore_words.' . $phpEx))				{					$this->add_to_archive($compress, array("search_ignore_words.$phpEx"), $row['lang_iso']);				}				if (file_exists($phpbb_root_path . 'language/' . $row['lang_iso'] . '/search_synonyms.' . $phpEx))				{					$this->add_to_archive($compress, array("search_synonyms.$phpEx"), $row['lang_iso']);				}				// Write files in folders				$this->add_to_archive($compress, $email_templates, $row['lang_iso'], 'email');				$this->add_to_archive($compress, $acp_files, $row['lang_iso'], 'acp');				$this->add_to_archive($compress, $mod_files, $row['lang_iso'], 'mods');				// Write ISO File				$iso_src = htmlspecialchars_decode($row['lang_english_name']) . "\n";				$iso_src .= htmlspecialchars_decode($row['lang_local_name']) . "\n";				$iso_src .= htmlspecialchars_decode($row['lang_author']);				$compress->add_data($iso_src, 'language/' . $row['lang_iso'] . '/iso.txt');				// index.html files				$compress->add_data('', 'language/' . $row['lang_iso'] . '/index.html');				$compress->add_data('', 'language/' . $row['lang_iso'] . '/email/index.html');				$compress->add_data('', 'language/' . $row['lang_iso'] . '/acp/index.html');								if (sizeof($mod_files))				{					$compress->add_data('', 'language/' . $row['lang_iso'] . '/mods/index.html');				}				$compress->close();				$compress->download('lang_' . $row['lang_iso']);				@unlink($phpbb_root_path . 'store/lang_' . $row['lang_iso'] . $use_method);

⌨️ 快捷键说明

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