📄 ad_templates.php
字号:
if ( !( $filename != "." && $filename != ".." ) && !preg_match( "/\\.php\$/", $filename ) )
{
$name = preg_replace( "/^(\\S+)\\.(\\S+)\$/", "\\1", $filename );
if ( $FH = fopen( $skin_dir."/".$filename, "r" ) )
{
$fdata = fread( $FH, filesize( $skin_dir."/".$filename ) );
fclose( $FH );
}
else
{
$errors[] = "无法打开和读取 {$filename} ,跳过文件 ...";
continue;
}
$fdata = str_replace( "\r", "\n", $fdata );
$fdata = str_replace( "\n\n", "\n", $fdata );
if ( !preg_match( "/\n/", $fdata ) )
{
$errors[] = "无法找到任何行结束标签 {$filename} ,跳过文件 ...";
}
else
{
$farray = explode( "\n", $fdata );
$functions = array( );
foreach ( $farray as $f )
{
if ( preg_match( "/<script/i", $f ) )
{
$script_token = 1;
}
if ( preg_match( "/<\\/script>/i", $f ) )
{
$script_token = 0;
}
if ( $script_token == 0 && preg_match( "/^function\\s*([\\w\\_]+)\\s*\\((.*)\\)/i", $f, $matches ) )
{
$functions[$matches[1]] = "";
list( , $flag, $config[$matches[1]] ) = $matches;
continue;
}
if ( $flag )
{
$functions[$flag] .= $f."\n";
}
}
$DB->query( "DELETE FROM ibf_skin_templates WHERE set_id='".$IN['id']."' AND group_name='{$name}'" );
$final = "";
$flag = 0;
foreach ( $functions as $fname => $ftext )
{
preg_match( "/return <<<(EOF|HTML)(.+?)(EOF|HTML);/s", $ftext, $matches );
$matches[2] = str_replace( "\\n", "\\\\\\n", $matches[2] );
$db_update = $DB->compile_db_update_string( array(
"set_id" => $IN['id'],
"group_name" => $name,
"section_content" => $matches[2],
"func_name" => $fname,
"func_data" => trim( $config[$fname] ),
"updated" => time( )
) );
$DB->query( "INSERT INTO ibf_skin_templates SET {$db_update}" );
}
$functions = array( );
}
}
}
closedir( $handle );
}
else
{
$ADMIN->error( "无法打开和读取目录 {$skin_dir}" );
}
}
else
{
$ADMIN->error( "{$skin_dir} 不是一个目录,请检查 admin.php 文件中 \$root_path 变量设置" );
}
$ADMIN->done_screen( "从主题界面文件中编辑模板文件完成", "论坛模板管理", "act=templ" );
if ( count( 0 < $errors ) )
{
$this->html .= $SKIN->start_table( "错误和警告" );
$this->html .= $SKIN->add_td_basic( implode( "<br>", $errors ) );
$this->html .= $SKIN->end_table( );
}
}
function add_templates( )
{
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 ( $INFO['safe_mode_skins'] != 1 )
{
if ( SAFE_MODE_ON == 1 )
{
$ADMIN->error( "监测到安全模式功能,你需要修改启用论坛设置[安全模式主题],你可以在[论坛变量设置]里进行设置。" );
}
if ( !is_writeable( ROOT_PATH."Skin" ) )
{
$ADMIN->error( "无法写入目录 'Skin',请检查目录属性(CHMOD 777)。" );
}
if ( !is_dir( ROOT_PATH."Skin/s".$IN['id'] ) )
{
$ADMIN->error( "无法找到默认模板文件进行复制,请检查后重试。" );
}
}
$DB->query( "SELECT * FROM ibf_tmpl_names WHERE skid='".$IN['id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$row['skname'] = $row['skname'].".NEW";
$final = array( );
foreach ( $row as $k => $v )
{
if ( $k == "skid" )
{
}
else
{
$final[$k] = $v;
}
}
$db_string = $DB->compile_db_insert_string( $final );
$DB->query( "INSERT INTO ibf_tmpl_names (".$db_string['FIELD_NAMES'].") VALUES(".$db_string['FIELD_VALUES'].")" );
$new_id = $DB->get_insert_id( );
if ( $INFO['safe_mode_skins'] != 1 )
{
if ( SAFE_MODE_ON == 1 )
{
$ADMIN->error( "监测到安全模式功能,你需要修改启用论坛设置[安全模式主题],你可以在[论坛变量设置]里进行设置。" );
}
if ( !$ADMIN->copy_dir( $INFO['base_dir']."Skin/s".$IN['id'], $INFO['base_dir']."Skin/s".$new_id ) )
{
$DB->query( "DELETE FROM ibf_tmpl_names WHERE skid='{$new_id}'" );
$ADMIN->error( $ADMIN->errors );
}
}
$get = $DB->query( "SELECT * FROM ibf_skin_templates WHERE set_id='".$IN['id']."'" );
while ( $r = $DB->fetch_row( $get ) )
{
$r['section_content'] = str_replace( "\\n", "\\\\\\n", $r['section_content'] );
$row = $DB->compile_db_insert_string( array(
"set_id" => $new_id,
"group_name" => $r['group_name'],
"section_content" => $r['section_content'],
"func_name" => $r['func_name'],
"func_data" => $r['func_data'],
"updated" => time( ),
"can_remove" => $r['can_remove']
) );
$put = $DB->query( "INSERT INTO ibf_skin_templates ({$row['FIELD_NAMES']}) VALUES({$row['FIELD_VALUES']})" );
}
$ADMIN->done_screen( "添加论坛模板文件", "论坛模板管理", "act=templ" );
}
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 ( $INFO['safe_mode_skins'] != 1 )
{
if ( SAFE_MODE_ON == 1 )
{
$ADMIN->error( "监测到安全模式功能,你需要修改启用论坛设置[安全模式主题],你可以在[论坛变量设置]里进行设置。" );
}
if ( !$ADMIN->rm_dir( $INFO['base_dir']."Skin/s".$IN['id'] ) )
{
$ADMIN->error( "无法删除论坛模板文件,请检查目录属性(CHMOD 777)。" );
}
}
$DB->query( "DELETE FROM ibf_tmpl_names WHERE skid='".$IN['id']."'" );
$DB->query( "DELETE FROM ibf_skin_templates WHERE set_id='".$IN['id']."'" );
$std->boink_it( $SKIN->base_url."&act=templ" );
exit( );
}
function edit_bit( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
global $HTTP_COOKIE_VARS;
if ( $IN['suid'] == "" )
{
$ADMIN->error( "你必须指定一个存在的论坛模板文件ID,请返回后重试!" );
}
$DB->query( "SELECT * FROM ibf_skin_templates WHERE suid='".$IN['suid']."'" );
if ( !( $template = $DB->fetch_row( ) ) )
{
$ADMIN->error( "你必须指定一个存在的论坛模板文件ID,请返回后重试!" );
}
if ( $cookie = $HTTP_COOKIE_VARS['ad_tempform'] )
{
list( $rows, $cols ) = explode( "-", $cookie );
}
$cols = $cols ? $cols : 80;
$rows = $rows ? $rows : 40;
$wrap = "soft";
$DB->query( "SELECT * from ibf_tmpl_names WHERE skid='".$template['set_id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$templ = $this->convert_tags( $template['section_content'] );
$templ = preg_replace( "/&/", "&", $templ );
$templ = preg_replace( "/</", "<", $templ );
$templ = preg_replace( "/>/", ">", $templ );
$ADMIN->page_detail = "你可以编辑这个模板文件的 HTML 标签。";
$ADMIN->page_title = "论坛模板文件编辑";
$ADMIN->html .= $SKIN->js_template_tools( );
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "doedit" ),
2 => array( "act", "templ" ),
3 => array(
"suid",
$IN['suid']
)
), "theform" );
$SKIN->td_header[] = array( " ", "100%" );
$ADMIN->html .= $SKIN->start_table( "模板文件:".$template['func_name'] );
$ADMIN->html .= $SKIN->add_td_basic( "<input type='button' value='模板变量搜索' id='editbutton' title='查看模板变量定义' onClick='pop_win(\"code=macro_one&suid={$template['suid']}\", \"模板变量\", 400, 200)'>"." <input type='button' value='对照和比较' id='editbutton' title='与默认设置进行对照和比较' onClick='pop_win(\"act=rtempl&code=compare&suid={$template['suid']}\", \"对照和比较\", 500,400)'>"." <input type='button' value='恢复默认设置' id='editbutton' title='Restore the original, unedited template bit' onClick='restore(\"{$template['suid']}\",\"{$IN['expand']}\")'>"." <input type='button' value='查看默认设置' id='editbutton' title='以 HTML 方式查看' onClick='pop_win(\"act=rtempl&code=preview&suid={$template['suid']}&type=html\", \"查看默认设置\", 400,400)'>"." <input type='button' value='搜索' id='editbutton' title='搜索模板中的变量' onClick='pop_win(\"act=rtempl&code=search&suid={$template['suid']}&type=html\", \"搜索\", 500,400)'>"." <input type='button' value='编辑表框尺寸' id='editbutton' title='改变下面的表框尺寸' onClick='edit_box_size(\"{$cols}\", \"{$rows}\")'>", "center", "catrow" );
$ADMIN->html .= $SKIN->add_td_basic( "<b>显示 HTML 代码: <select name='htmlcode' onChange=\"document.theform.res.value='&'+document.theform.htmlcode.options[document.theform.htmlcode.selectedIndex].value+';'\" id='multitext'><option value='copy'>©</option>\n\t\t\t\t\t\t\t\t\t\t\t <option value='raquo'>»</option>\n\t\t\t\t\t\t\t\t\t\t\t <option value='laquo'>«</option>\n\t\t\t\t\t\t\t\t\t\t\t <option value='#149'>•</option>\n\t\t\t\t\t\t\t\t\t\t\t <option value='reg'>®</option>\n\t\t\t\t\t\t\t\t\t\t\t </select> <input type='text' name='res' size=20 id='multitext'> <input type='button' value='select' id='editbutton' onClick='document.theform.res.focus();document.theform.res.select();'>", "center", "tdrow1" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<center>".$SKIN->form_textarea( "template", $templ, $cols, $rows, $wrap )."</center>"
) );
$ADMIN->html .= $SKIN->end_form( "更新文件" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->nav[] = array( "act=templ", "论坛模板管理首页" );
$ADMIN->nav[] = array(
"act=templ&code=edit&id={$template['set_id']}",
$row['skname']
);
$ADMIN->nav[] = array(
"act=templ&code=edit&id={$template['set_id']}&expand={$IN['expand']}",
$template['group_name']
);
$ADMIN->nav[] = array(
"",
$template['func_name']
);
$ADMIN->output( );
}
function do_form( )
{
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_tmpl_names WHERE skid='".$IN['id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$form_array = array( );
$ADMIN->page_detail = "请在下面选择需要编辑的选项。";
$ADMIN->page_title = "编辑论坛模板文件";
$ADMIN->html .= $SKIN->js_no_specialchars( );
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "editinfo" ),
2 => array( "act", "templ" ),
3 => array(
"id",
$IN['id']
)
), "theAdminForm", "onSubmit=\"return no_specialchars('templates')\"" );
$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( "skname", $row['skname'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>模板文件作者:</b>",
$SKIN->form_input( "author", $row['author'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>模板文件作者信箱:</b>",
$SKIN->form_input( "email", $row['email'] )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -