📄 ad_languages.php
字号:
{
$ADMIN->error( "无法写入目录 'lang', 请修改目录权限(CHMOD 755 或 CHMOD 777)。" );
}
if ( !is_dir( ROOT_PATH."lang/".$row['ldir'] ) )
{
$ADMIN->error( "无法找到默认语言文件进行复制,请检查后重试!" );
}
$row['lname'] = $row['lname'].".2";
$final = array( );
foreach ( $row as $k => $v )
{
if ( $k == "lid" )
{
}
else
{
$final[$k] = $v;
}
}
$db_string = $DB->compile_db_insert_string( $final );
$DB->query( "INSERT INTO ibf_languages (".$db_string['FIELD_NAMES'].") VALUES(".$db_string['FIELD_VALUES'].")" );
$new_id = $DB->get_insert_id( );
if ( !$ADMIN->copy_dir( $INFO['base_dir']."lang/".$row['ldir'], $INFO['base_dir']."lang/".$new_id ) )
{
$DB->query( "DELETE FROM ibf_languages WHERE lid='{$new_id}'" );
$ADMIN->error( $ADMIN->errors );
}
else
{
$DB->query( "UPDATE ibf_languages SET ldir='{$new_id}' WHERE lid='{$new_id}'" );
}
$this->do_form( "add", $new_id );
}
function remove( )
{
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,请返回后重试!" );
}
if ( $IN['id'] == 1 )
{
$ADMIN->error( "你不能删除这个语言文件。" );
}
$DB->query( "SELECT * from ibf_languages WHERE lid='".$IN['id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法从数据库获取相关数据信息" );
}
if ( $INFO['default_language'] == "" )
{
$INFO['default_language'] = "chinese_gb";
}
if ( $row['ldir'] == $INFO['default_language'] )
{
$ADMIN->error( "你不能从默认语言文件目录中删除这个语言文件,请选择其它的语言文件再试!" );
}
$DB->query( "UPDATE ibf_members SET language='{$INFO['default_language']}' WHERE language='{$row['ldir']}'" );
if ( $ADMIN->rm_dir( $INFO['base_dir']."lang/".$row['ldir'] ) )
{
$DB->query( "DELETE FROM ibf_languages WHERE lid='".$IN['id']."'" );
$std->boink_it( $SKIN->base_url."&act=lang" );
exit( );
}
else
{
$ADMIN->error( "无法删除语言文件,请检查目录权限,确定具有足够的权限执行此操作。" );
}
}
function save_langfile( )
{
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,请返回后重试!" );
}
if ( $IN['lang_file'] == "" )
{
$ADMIN->error( "你必须指定一个存在的语言文件名,请返回后重试!" );
}
$DB->query( "SELECT * from ibf_languages WHERE lid='".$IN['id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法从数据库获取相关数据信息" );
}
$lang_file = ROOT_PATH."lang/".$row['ldir']."/".$IN['lang_file'];
if ( !file_exists( $lang_file ) )
{
$ADMIN->error( "无法找到目录 {$lang_file}, 目录是否已经建立?" );
}
if ( !is_writeable( $lang_file ) )
{
$ADMIN->error( "无法写入目录 {$lang_file}, 目录属性是否已经设置为(CHMOD 666 或 777)?" );
}
$barney = array( );
foreach ( $IN as $k => $v )
{
if ( !preg_match( "/^XX_(\\S+)\$/", $k, $match ) && !isset( $IN[$match[0]] ) )
{
$v = preg_replace( "/'/", "'", stripslashes( $HTTP_POST_VARS[$match[0]] ) );
$v = preg_replace( "/</", "<", $v );
$v = preg_replace( "/>/", ">", $v );
$v = preg_replace( "/&/", "&", $v );
$v = preg_replace( "/\r/", "", $v );
$barney[$match[1]] = $v;
}
}
if ( count( $barney ) < 1 )
{
$ADMIN->error( "出现错误啦,你是否没有填写某个表单选项?" );
}
$start = "<?php\n\n";
if ( $IN['lang_file'] == "email_content.php" )
{
foreach ( $barney as $key => $text )
{
$text = preg_replace( "/n{1,}\$/", "", $text );
$start .= "\n\$EMAIL["."'{$key}'"."] = <<<EOF"."\n".$text."\nEOF;\n";
}
}
else
{
foreach ( $barney as $key => $text )
{
$start .= "\n\$lang["."'{$key}'"."] = \"".addslashes( $text )."\";";
}
}
$start .= "\n\n?>";
if ( $fh = fopen( $lang_file, "w" ) )
{
fwrite( $fh, $start, strlen( $start ) );
fclose( $fh );
}
else
{
$ADMIN->error( "无法写入文件 {$lang_file}" );
}
$ADMIN->done_screen( "语言文件已经更新", "语言文件管理", "act=lang" );
}
function do_form( $method = "add", $id = "" )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $id != "" )
{
$IN['id'] = $id;
}
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( );
if ( $method != "add" && !is_writeable( $lang_dir ) )
{
$ADMIN->error( "无法写入目录 '{$lang_dir}', 请修改目录权限(CHMOD 755 或 CHMOD 777)。" );
}
if ( is_dir( $lang_dir ) )
{
$handle = opendir( $lang_dir );
while ( ( $filename = readdir( $handle ) ) !== false )
{
if ( $filename != "." && $filename != ".." )
{
if ( preg_match( "/^index/", $filename ) )
{
}
else if ( preg_match( "/\\.php\$/", $filename ) )
{
$form_array[] = array(
$filename,
preg_replace( "/\\.php\$/", "", $filename )
);
}
}
}
closedir( $handle );
}
if ( $row['lauthor'] && $row['lemail'] )
{
$author = "<br><br>这个语言文件:<b>'{$row['lname']}'</b> 的作者是:<a href='mailto:{$row['lemail']}' target='_blank'>{$row['lauthor']}</a>";
}
else if ( $row['lauthor'] )
{
$author = "<br><br>这个语言文件:<b>'{$row['lname']}'</b> 的作者是:{$row['lauthor']}";
}
$ADMIN->page_detail = "请在下面选择你需要编辑的语言文件 {$author} {$url}";
$ADMIN->page_title = "编辑语言文件";
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "editinfo" ),
2 => array( "act", "lang" ),
3 => array(
"id",
$IN['id']
)
) );
$SKIN->td_header[] = array( " ", "60%" );
$SKIN->td_header[] = array( " ", "40%" );
$ADMIN->html .= $SKIN->start_table( "编辑语言文件信息" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>语言文件名称:</b>",
$SKIN->form_input( "lname", $row['lname'] )
) );
if ( $method == "add" )
{
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>语言文件作者:</b>",
$SKIN->form_input( "lauthor", $row['lauthor'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>语言文件作者联系信箱:</b>",
$SKIN->form_input( "lemail", $row['lemail'] )
) );
}
$ADMIN->html .= $SKIN->end_form( "编辑语言文件信息" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "edit2" ),
2 => array( "act", "lang" ),
3 => array(
"id",
$IN['id']
)
) );
$SKIN->td_header[] = array( " ", "60%" );
$SKIN->td_header[] = array( " ", "40%" );
$ADMIN->html .= $SKIN->start_table( "编辑语言文件 '".$row['lname']."'" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>请选择需要编辑的语言文件</b>",
$SKIN->form_dropdown( "lang_file", $form_array )
) );
$ADMIN->html .= $SKIN->end_form( "编辑语言文件" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->output( );
}
function list_current( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $INFO['default_language'] == "" )
{
$INFO['default_language'] = "chinese_gb";
}
$form_array = array( );
$ADMIN->page_detail = "你可以 编辑/删除/添加 语言文件";
$ADMIN->page_title = "语言文件管理";
$DB->query( "select ibf_languages.*, count(ibf_members.id) as mcount from ibf_languages left join ibf_members on(ibf_members.language=ibf_languages.ldir) where (ibf_members.language is not null or ibf_members.language = 'en') group by ibf_languages.ldir order by ibf_languages.lname" );
$used_ids = array( );
$show_array = array( );
$ADMIN->html .= $SKIN->js_checkdelete( );
if ( $DB->get_num_rows( ) )
{
$SKIN->td_header[] = array( "语言文件名称", "40%" );
$SKIN->td_header[] = array( "使用用户", "30%" );
$SKIN->td_header[] = array( "导出", "10%" );
$SKIN->td_header[] = array( "编辑", "10%" );
$SKIN->td_header[] = array( "删除", "10%" );
$ADMIN->html .= $SKIN->start_table( "当前使用的语言文件" );
while ( $r = $DB->fetch_row( ) )
{
if ( $INFO['default_language'] == $r['ldir'] )
{
$root = "<span style='color:red;font-weight:bold'> (默认语言)</span>";
}
else
{
$root = " ( <a href='{$SKIN->base_url}&act=lang&code=makedefault&id=".urlencode( $r['ldir'] )."'>设为默认语言</a> )";
}
$show_array[$r['lid']] .= stripslashes( $r['lname'] )."<br>";
if ( in_array( $r['lid'], $used_ids ) )
{
}
else
{
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>".stripslashes( $r['lname'] )."</b> {$root}",
"<center>{$r['mcount']}</center>",
"<center><a href='".$SKIN->base_url."&act=lang&code=export&id={$r['lid']}'>导出</a></center>",
"<center><a href='".$SKIN->base_url."&act=lang&code=edit&id={$r['lid']}'>编辑</a></center>",
"<center><a href='javascript:checkdelete(\"act=lang&code=remove&id={$r['lid']}\")'>删除</a></center>"
) );
$used_ids[] = $r['lid'];
$form_array[] = array(
$r['lid'],
$r['lname']
);
}
}
$ADMIN->html .= $SKIN->end_table( );
}
if ( count( $used_ids ) < 1 )
{
$used_ids[] = "0";
}
$DB->query( "SELECT lid, ldir, lname FROM ibf_languages WHERE lid NOT IN(".implode( ",", $used_ids ).")" );
if ( $DB->get_num_rows( ) )
{
$SKIN->td_header[] = array( "语言文件名称", "40%" );
$SKIN->td_header[] = array( "导出", "10%" );
$SKIN->td_header[] = array( "编辑", "30%" );
$SKIN->td_header[] = array( "删除", "20%" );
$ADMIN->html .= $SKIN->start_table( "当前可选的语言文件" );
while ( $r = $DB->fetch_row( ) )
{
if ( $INFO['default_language'] == $r['ldir'] )
{
$root = "<span style='color:red;font-weight:bold'> (默认语言)</span>";
}
else
{
$root = " ( <a href='{$SKIN->base_url}&act=lang&code=makedefault&id=".urlencode( $r['ldir'] )."'>设为默认语言</a> )";
}
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>".stripslashes( $r['lname'] )."</b> {$root}",
"<center><a href='".$SKIN->base_url."&act=lang&code=export&id={$r['lid']}'>导出</a></center>",
"<center><a href='".$SKIN->base_url."&act=lang&code=edit&id={$r['lid']}'>编辑</a></center>",
"<center><a href='javascript:checkdelete(\"act=lang&code=remove&id={$r['lid']}\")'>删除</a></center>"
) );
$form_array[] = array(
$r['lid'],
$r['lname']
);
}
$ADMIN->html .= $SKIN->end_table( );
}
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "add" ),
2 => array( "act", "lang" )
) );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "添加语言文件" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>新语言文件基于 ...</b>",
$SKIN->form_dropdown( "id", $form_array )
) );
$ADMIN->html .= $SKIN->end_form( "添加新语言文件" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->output( );
}
}
ad_langs( );
$idx = new ad_langs( );
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -