📄 ad_templates.php
字号:
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>模板文件作者网站:</b>",
$SKIN->form_input( "url", $row['url'] )
) );
$ADMIN->html .= $SKIN->end_form( "编辑模板文件信息" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->nav[] = array( "act=templ", "论坛模板管理首页" );
$ADMIN->output( );
}
function list_current( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
$form_array = array( );
$ADMIN->page_detail = "论坛模板文件中所有的HTML代码都是在论坛中需要使用的<br>你可以在此建立新的模板文件或修改当前的模板文件。";
$ADMIN->page_title = "论坛模板管理";
$SKIN->td_header[] = array( "模板文件名称", "35%" );
$SKIN->td_header[] = array( "模板分配", "25%" );
$SKIN->td_header[] = array( "编辑属性", "10%" );
$SKIN->td_header[] = array( "管理HTML代码", "15%" );
$SKIN->td_header[] = array( "删除", "15%" );
$DB->query( "SELECT DISTINCT(s.set_id), s.sname, t.skid, t.skname from ibf_tmpl_names t, ibf_skins s WHERE s.set_id=t.skid ORDER BY t.skname ASC" );
$used_ids = array( );
$show_array = array( );
if ( $DB->get_num_rows( ) )
{
$ADMIN->html .= $SKIN->start_table( "当前使用的论坛模板文件" );
while ( $r = $DB->fetch_row( ) )
{
$show_array[$r['skid']] .= stripslashes( $r['sname'] )."<br>";
if ( in_array( $r['skid'], $used_ids ) )
{
}
else
{
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>".stripslashes( $r['skname'] )."</b><br>[ <a href='{$SKIN->base_url}&act=templ&code=export&id={$r['skid']}' title='下载这个论坛模板文件'>导出</a> ]",
"<#X-{$r['skid']}#>",
"<center><a href='".$SKIN->base_url."&act=templ&code=dedit&id={$r['skid']}' title='编辑模板文件'>编辑属性</a></center>",
"<center><a href='".$SKIN->base_url."&act=templ&code=edit&id={$r['skid']}' title='编辑,上传和下载'>管理HTML代码</a></center>",
"删除前请重新匹配"
) );
$used_ids[] = $r['skid'];
$form_array[] = array(
$r['skid'],
$r['skname']
);
}
}
foreach ( $show_array as $idx => $string )
{
$string = preg_replace( "/<br>\$/", "", $string );
$ADMIN->html = preg_replace( "/<#X-{$idx}#>/", "{$string}", $ADMIN->html );
}
$ADMIN->html .= $SKIN->end_table( );
}
if ( 0 < count( $used_ids ) )
{
$DB->query( "SELECT skid, skname FROM ibf_tmpl_names WHERE skid NOT IN(".implode( ",", $used_ids ).")" );
if ( $DB->get_num_rows( ) )
{
$SKIN->td_header[] = array( "模板文件名称", "55%" );
$SKIN->td_header[] = array( "编辑属性", "10%" );
$SKIN->td_header[] = array( "管理HTML代码", "20%" );
$SKIN->td_header[] = array( "删除", "15%" );
$ADMIN->html .= $SKIN->start_table( "当前可用的论坛模板文件" );
$ADMIN->html .= $SKIN->js_checkdelete( );
while ( $r = $DB->fetch_row( ) )
{
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>".stripslashes( $r['skname'] )."</b>",
"<center><a href='".$SKIN->base_url."&act=templ&code=dedit&id={$r['skid']}'>编辑属性</a></center>",
"<center><a href='".$SKIN->base_url."&act=templ&code=edit&id={$r['skid']}' title='编辑,上传,下载'>管理HTML代码</a></center>",
"<center><a href='javascript:checkdelete(\"act=templ&code=remove&id={$r['skid']}\")'>删除</a></center>"
) );
$form_array[] = array(
$r['skid'],
$r['skname']
);
}
$ADMIN->html .= $SKIN->end_table( );
}
}
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "add" ),
2 => array( "act", "templ" ),
3 => array( "MAX_FILE_SIZE", "10000000000" )
), "uploadform", " enctype='multipart/form-data'" );
$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->add_td_row( array(
"<b><u>或者</u> 从你的电脑中选择执行导入的模板文件。</b><br>注意:模板文件必须有效。",
$SKIN->form_upload( )
) );
$ADMIN->html .= $SKIN->end_form( "添加论坛模板文件" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "tools" ),
2 => array( "act", "templ" )
) );
$SKIN->td_header[] = array( "模板文件工具", "50%" );
$SKIN->td_header[] = array( "运行模板文件", "50%" );
$extra = "";
if ( SAFE_MODE_ON == 1 )
{
$extra = "<br><span id='detail'>警告:检查到论坛安全模式,某些工具可能不能工作。</span>";
}
$ADMIN->html .= $SKIN->start_table( "模板工具:".$extra );
$ADMIN->html .= $SKIN->add_td_row( array(
$SKIN->form_dropdown( "tool", array(
1 => array( "tmpl", "在PHP主题界面中重新计算数据" )
) ),
$SKIN->form_dropdown( "id", $form_array )
) );
$ADMIN->html .= $SKIN->end_form( "运行工具" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->output( );
}
function convert_tags( $t = "" )
{
if ( $t == "" )
{
return "";
}
$t = preg_replace( "/{?\\\$ibforums->base_url}?/", "{ibf.script_url}", $t );
$t = preg_replace( "/{?\\\$ibforums->session_id}?/", "{ibf.session_id}", $t );
$t = preg_replace( "/{?\\\$ibforums->skin\\['?(\\w+)'?\\]}?/", "{ibf.skin.\\1}", $t );
$t = preg_replace( "/{?\\\$ibforums->lang\\['?(\\w+)'?\\]}?/", "{ibf.lang.\\1}", $t );
$t = preg_replace( "/{?\\\$ibforums->vars\\['?(\\w+)'?\\]}?/", "{ibf.vars.\\1}", $t );
$t = preg_replace( "/{?\\\$ibforums->member\\['?(\\w+)'?\\]}?/", "{ibf.member.\\1}", $t );
$t = preg_replace( "/\\{ibf\\.vars\\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\\}/", "", $t );
return $t;
}
function unconvert_tags( $t = "" )
{
if ( $t == "" )
{
return "";
}
$t = preg_replace( "/\\{ibf\\.vars\\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\\}/", "", $t );
$t = preg_replace( "/{ibf\\.script_url}/i", "{\$ibforums->base_url}", $t );
$t = preg_replace( "/{ibf\\.session_id}/i", "{\$ibforums->session_id}", $t );
$t = preg_replace( "/{ibf\\.skin\\.(\\w+)}/", "{\$ibforums->skin['\\1']}", $t );
$t = preg_replace( "/{ibf\\.lang\\.(\\w+)}/", "{\$ibforums->lang['\\1']}", $t );
$t = preg_replace( "/{ibf\\.vars\\.(\\w+)}/", "{\$ibforums->vars['\\1']}", $t );
$t = preg_replace( "/{ibf\\.member\\.(\\w+)}/", "{\$ibforums->member['\\1']}", $t );
return $t;
}
function process_upload( $raw, $setid, $group, $isnew = 0 )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
$skin_dir = ROOT_PATH."Skin/s".$setid;
if ( $INFO['safe_mode_skins'] != 1 )
{
if ( SAFE_MODE_ON == 1 )
{
if ( $isnew == 1 )
{
$DB->query( "DELETE FROM ibf_tmpl_names WHERE skid='{$setid}'" );
}
$ADMIN->error( "监测到安全模式功能,你需要修改启用论坛设置[安全模式主题],你可以在[论坛变量设置]里进行设置。" );
}
if ( $isnew == 1 )
{
if ( !is_writeable( ROOT_PATH."Skin" ) )
{
$DB->query( "DELETE FROM ibf_tmpl_names WHERE skid='{$setid}'" );
$ADMIN->error( "无法写入目录 'Skin' ,请检查目录权限(CHMOD 777)。" );
}
if ( !file_exists( $skin_dir ) )
{
if ( !mkdir( $skin_dir, 511 ) )
{
$DB->query( "DELETE FROM ibf_tmpl_names WHERE skid='{$setid}'" );
$ADMIN->error( "无法建立目录 '{$skin_dir}' ,请检查目录权限(CHMOD 777)。" );
}
else
{
@chmod( $skin_dir, 511 );
}
}
}
else if ( !is_writeable( $skin_dir ) )
{
$ADMIN->error( "无法写入目录 '{$skin_dir}' ,请检查目录权限(CHMOD 777)。" );
}
}
$raw = preg_replace( "/^.*?(<!--IBF_START_FUNC)/s", "\\1", trim( $raw ) );
$raw = str_replace( "\r\n", "\n", $raw );
$raw = $this->unconvert_tags( $raw );
$DB->query( "SELECT func_name, group_name FROM ibf_skin_templates WHERE set_id='{$setid}'" );
while ( $DB->get_num_rows( ) && ( $gname = $DB->fetch_row( ) ) )
{
$curr_group[$gname['group_name']][$gname['func_name']] = 1;
}
$master = array( );
$flag = 0;
$eachline = explode( "\n", $raw );
foreach ( $eachline as $line )
{
if ( $flag == 0 && preg_match( "/\\s*<!--IBF_START_FUNC\\|(\\S+?)\\|(.*?)-->\\s*/", $line, $matches ) )
{
$func = trim( $matches[1] );
$data = trim( $matches[2] );
if ( $func != "" )
{
$flag = $func;
$master[$func] = array(
"func_name" => $func,
"func_data" => $data,
"content" => ""
);
continue;
}
}
if ( preg_match( "/\\s*?<!--IBF_END_FUNC\\|{$flag}-->\\s*?/", $line ) )
{
$flag = 0;
}
else if ( isset( $master[$flag]['content'] ) )
{
$master[$flag]['content'] .= $line."\n";
}
}
if ( $INFO['safe_mode_skins'] != 1 )
{
if ( SAFE_MODE_ON == 1 )
{
$ADMIN->error( "监测到安全模式功能,你需要修改启用论坛设置[安全模式主题],你可以在[论坛变量设置]里进行设置。" );
}
$final = "<?php\n\n"."class {$group} {\n\n";
foreach ( $master as $func_name => $data )
{
$final .= "\n\nfunction ".trim( $data['func_name'] )."(".trim( $data['func_data'] ).") {\n"."global \$ibforums;\n"."return <<<EOF\n";
$final .= trim( $data['content'] );
$final .= "\nEOF;\n}\n";
}
$final .= "\n\n}\n?>";
if ( $fh = fopen( $skin_dir."/".$group.".php", "w" ) )
{
fwrite( $fh, $final, strlen( $final ) );
fclose( $fh );
}
else
{
if ( $isnew == 1 )
{
$DB->query( "DELETE FROM ibf_tmpl_names WHERE skid='{$setid}'" );
}
$errors[] = "无法保存信息到 {$phpskin} ,请检查目录权限设置。";
}
}
foreach ( $master as $func_name => $data )
{
if ( $isnew == 0 && $curr_group[$group][$func_name] != 1 )
{
$isnew = 1;
}
if ( $isnew == 0 )
{
$data['content'] = str_replace( "\\n", "\\\\\\n", $data['content'] );
$str = $DB->compile_db_update_string( array(
"section_content" => trim( $data['content'] ),
"func_data" => trim( $data['func_data'] )
) );
$DB->query( "UPDATE ibf_skin_templates SET {$str} WHERE set_id='{$setid}' AND group_name='{$group}' AND func_name='".trim( $data['func_name'] )."'" );
}
else
{
$data['content'] = str_replace( "\\n", "\\\\\\n", $data['content'] );
$str = $DB->compile_db_insert_string( array(
"section_content" => trim( $data['content'] ),
"func_data" => trim( $data['func_data'] ),
"set_id" => $setid,
"group_name" => $group,
"func_name" => trim( $data['func_name'] ),
"can_remove" => 0
) );
$DB->query( "INSERT INTO ibf_skin_templates ({$str['FIELD_NAMES']}) VALUES({$str['FIELD_VALUES']})" );
}
}
return TRUE;
}
}
ad_settings( );
$idx = new ad_settings( );
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -