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

📄 ad_languages.php

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php

class ad_langs
{

	var $base_url;

	function ad_langs( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$tmp_in = array_merge( $_GET, $_POST, $_COOKIE );
		foreach ( $tmp_in as $k => $v )
		{
		}
		switch ( $IN['code'] )
		{
		case "add" :
			$this->add_language( );
			break;
		case "edit" :
			$this->do_form( "edit" );
			break;
		case "edit2" :
			$this->show_file( );
			break;
		case "doadd" :
			$this->save_wrapper( "add" );
			break;
		case "doedit" :
			$this->save_langfile( );
			break;
		case "remove" :
			$this->remove( );
			break;
		case "editinfo" :
			$this->edit_info( );
			break;
		case "export" :
			$this->export( );
			break;
		case "import" :
			$this->import( );
			break;
		case "doimport" :
			$this->doimport( );
			break;
		case "makedefault" :
			$this->make_default( );
			break;
		default :
			$this->list_current( );
			break;
		}
	}

	function make_default( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		global $HTTP_GET_VARS;
		$new_dir = stripslashes( urldecode( trim( $HTTP_GET_VARS['id'] ) ) );
		if ( $new_dir == "" )
		{
			$ADMIN->error( "无法找到默认语言文件" );
		}
		$ADMIN->rebuild_config( array(
			"default_language" => $new_dir
		) );
		$std->boink_it( $SKIN->base_url."&act=lang" );
	}

	function doimport( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		if ( $IN['tarball'] == "" )
		{
			$ADMIN->error( "没有选择需要导入的 tar 文件!" );
		}
		require( ROOT_PATH."sources/lib/tar.php" );
		$to_dir = $INFO['base_dir']."lang";
		$tarname = $IN['tarball'];
		$from_dir = $INFO['base_dir']."archive_in";
		$tar = new tar( );
		$real_name = preg_replace( "/^lang-(\\S+)\\.tar\$/", "\\1", $IN['tarball'] );
		$real_name = preg_replace( "/_/", " ", $real_name );
		$tar->new_tar( $from_dir, $tarname );
		$files = $tar->list_files( );
		if ( 0 < count( $files ) )
		{
			foreach ( $files as $giles )
			{
				if ( !preg_match( "/^(?:[\\.\\w\\d\\+\\-\\_\\/]+)\$/", $giles ) )
				{
					$ADMIN->error( "{$tarname} 可能已经损坏,请重新上传!" );
				}
			}
		}
		else
		{
			$ADMIN->error( "{$tarname} 不是一个有效的 tar 文件" );
		}
		$DB->query( "INSERT INTO ibf_languages (ldir, lname) VALUES('temp', '{$real_name} (Import)')" );
		$new_id = $DB->get_insert_id( );
		$dest = $to_dir."/".$new_id;
		if ( !mkdir( $dest, 511 ) )
		{
			$DB->query( "DELETE FROM ibf_languages WHERE lid='{$new_id}'" );
			$ADMIN->error( "无法建立新目录 {$to_dir}, 请修改(CHMOD)正确的目录权限。" );
		}
		$tar->extract_files( $dest );
		if ( $tar->error != "" )
		{
			$DB->query( "DELETE FROM ibf_languages WHERE lid='{$new_id}'" );
			$ADMIN->error( $tar->error );
		}
		$extra = array( "lauthor" => "", "lemail" => "" );
		if ( file_exists( $dest."/conf.inc" ) )
		{
			require( $dest."/conf.inc" );
			$extra['lauthor'] = stripslashes( $config['lauthor'] );
			$extra['lemail'] = stripslashes( $config['lemail'] );
		}
		$extra['ldir'] = $new_id;
		$db_string = $DB->compile_db_update_string( $extra );
		$DB->query( "UPDATE ibf_languages SET {$db_string} WHERE lid='{$new_id}'" );
		$ADMIN->done_screen( "语言文件已经导入", "语言文件管理", "act=lang" );
	}

	function import( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$ADMIN->page_detail = "你选择的 tar 文件必须以 'binary' 方式上传到论坛 'archive_in' 目录下。";
		$ADMIN->page_title = "导入语言文件";
		$ADMIN->html .= $SKIN->start_form( array(
			1 => array( "code", "doimport" ),
			2 => array( "act", "lang" )
		) );
		$SKIN->td_header[] = array( "&nbsp;", "50%" );
		$SKIN->td_header[] = array( "&nbsp;", "50%" );
		$ADMIN->html .= $SKIN->start_table( "请选择导入的 tar 文件" );
		$files = $ADMIN->get_tar_names( "lang-" );
		$form_array = array( );
		if ( 0 < count( $files ) )
		{
			foreach ( $files as $piles )
			{
				$form_array[] = array(
					$piles,
					$piles
				);
			}
		}
		$ADMIN->html .= $SKIN->add_td_row( array(
			"<b>Tar 文件导入中 ...</b>",
			$SKIN->form_dropdown( "tarball", $form_array )
		) );
		$ADMIN->html .= $SKIN->end_form( "导入" );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function export( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		if ( $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的语言文件ID,请返回后重试!" );
		}
		$DB->query( "SELECT * from ibf_languages WHERE lid='".$IN['id']."'" );
		if ( !( $row = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "不能从数据库获取相关数据信息" );
		}
		$archive_dir = $INFO['base_dir']."/archive_out";
		$lang_dir = $INFO['base_dir']."/lang/".$row['ldir'];
		require( ROOT_PATH."sources/lib/tar.php" );
		if ( !is_dir( $archive_dir ) )
		{
			$ADMIN->error( "无法找到目录 {$archive_dir}, 目录是否已经建立?" );
		}
		if ( !is_writeable( $archive_dir ) )
		{
			$ADMIN->error( "无法写入目录 {$archive_dir}, 请修改目录权限(CHMOD 755 或 CHMOD 777)。" );
		}
		if ( !is_dir( $lang_dir ) )
		{
			$ADMIN->error( "无法找到目录 {$lang_dir}, 目录是否已经建立?" );
		}
		$l_name = preg_replace( "/\\s{1,}/", "_", $row['lname'] );
		$new_dir = "lang-".$l_name;
		if ( !$ADMIN->copy_dir( $lang_dir, $archive_dir."/".$new_dir ) )
		{
			$ADMIN->error( $ADMIN->errors );
		}
		$file_content = "<?php\n\n\$config=array('lauthor' => \"".addslashes( $row['lauthor'] )."\", 'lemail'=>\"".addslashes( $row['lemail'] )."\")\n\n?".">";
		$FH = fopen( $archive_dir."/".$new_dir."/"."conf.inc", "w" );
		fwrite( $FH, $file_content, strlen( $file_content ) );
		fclose( $FH );
		$tar = new tar( );
		$tar->new_tar( $archive_dir, $new_dir.".tar" );
		$tar->add_directory( $archive_dir."/".$new_dir );
		$tar->write_tar( );
		if ( $tar->error != "" )
		{
			$ADMIN->error( $tar->error );
		}
		$ADMIN->rm_dir( $archive_dir."/".$new_dir );
		$ADMIN->done_screen( "导出语言文件已经建立<br><br>你现在可以 [<a href='archive_out/{$new_dir}.tar'>按此</a>] 下载这个 tar 文件。", "语言文件管理", "act=lang" );
	}

	function show_file( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		if ( $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的语言文件ID,请返回后重试!" );
		}
		$DB->query( "SELECT * from ibf_languages WHERE lid='".$IN['id']."'" );
		if ( !( $row = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "不能从数据库获取相关数据信息" );
		}
		$lang_dir = $INFO['base_dir']."lang/".$row['ldir'];
		$form_array = array( );
		$lang_file = $lang_dir."/".$IN['lang_file'];
		if ( !is_writeable( $lang_dir ) )
		{
			$ADMIN->error( "无法写入目录 '{$lang_dir}', 请修改目录权限(CHMOD 755 或 CHMOD 777)。" );
		}
		if ( !file_exists( $lang_file ) )
		{
			$ADMIN->error( "无法在 '{$lang_dir}' 目录中找到 {$IN['lang_file']} , 请返回检查你的输入信息" );
		}
		else
		{
			require( $lang_file );
		}
		if ( $IN['lang_file'] == "email_content.php" )
		{
			$lang = $EMAIL;
		}
		if ( !is_writeable( $lang_file ) )
		{
			$ADMIN->error( "无法写入目录 '{$lang_file}', 请修改目录权限(CHMOD 755 或 CHMOD 777)。" );
		}
		$ADMIN->page_detail = "你可以在下面编辑所有的语言文件信息。";
		$ADMIN->page_title = "编辑语言文件:".$row['lname'];
		$ADMIN->html .= $SKIN->start_form( array(
			1 => array( "code", "doedit" ),
			2 => array( "act", "lang" ),
			3 => array(
				"id",
				$IN['id']
			),
			4 => array(
				"lang_file",
				$IN['lang_file']
			)
		) );
		$SKIN->td_header[] = array( "文件名称", "20%" );
		$SKIN->td_header[] = array( "内容", "80%" );
		$ADMIN->html .= $SKIN->start_table( "语言文件:".$IN['lang_file'] );
		foreach ( $lang as $k => $v )
		{
			$v = stripslashes( $v );
			$v = preg_replace( "/&/", "&#38;", $v );
			$v = preg_replace( "/</", "&#60;", $v );
			$v = preg_replace( "/>/", "&#62;", $v );
			$v = preg_replace( "/'/", "&#39;", $v );
			if ( $IN['lang_file'] == "email_content.php" )
			{
				$rows = 15;
				$cols = 70;
				$ADMIN->html .= $SKIN->add_td_row( array(
					"&lt;ibf.lang.<b>".$k."</b>&gt;",
					$SKIN->form_textarea( "XX_".$k, $v, $cols, $rows )
				) );
			}
			else
			{
				$ADMIN->html .= $SKIN->add_td_row( array(
					"&lt;ibf.lang.<b>".$k."</b>&gt;",
					$SKIN->form_input( "XX_".$k, $v )
				) );
			}
		}
		$ADMIN->html .= $SKIN->end_form( "编辑这个文件" );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function edit_info( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		global $HTTP_POST_VARS;
		if ( $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的语言文件ID,请返回后重试!" );
		}
		$DB->query( "SELECT * from ibf_languages WHERE lid='".$IN['id']."'" );
		if ( !( $row = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法从数据库获取相关数据信息" );
		}
		$final['lname'] = stripslashes( $HTTP_POST_VARS['lname'] );
		if ( isset( $HTTP_POST_VARS['lname'] ) )
		{
			$final['lauthor'] = stripslashes( $HTTP_POST_VARS['lauthor'] );
			$final['lemail'] = stripslashes( $HTTP_POST_VARS['lemail'] );
		}
		$db_string = $DB->compile_db_update_string( $final );
		$DB->query( "UPDATE ibf_languages SET {$db_string} WHERE lid='".$IN['id']."'" );
		$ADMIN->done_screen( "语言文件信息已经更新", "语言文件管理", "act=lang" );
	}

	function add_language( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		global $HTTP_POST_VARS;
		if ( $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的语言文件ID,请返回后重试!" );
		}
		$DB->query( "SELECT * FROM ibf_languages WHERE lid='".$IN['id']."'" );
		if ( !( $row = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法从数据库获取相关数据信息" );
		}
		if ( !is_writeable( ROOT_PATH."lang" ) )

⌨️ 快捷键说明

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