📄 ad_templates.php
字号:
<?php
class ad_settings
{
var $base_url;
function ad_settings( )
{
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_splash( );
break;
case "edit" :
$this->show_cats( );
break;
case "dedit" :
$this->do_form( );
break;
case "doedit" :
$this->do_edit( );
break;
case "remove" :
$this->remove( );
break;
case "tools" :
$this->tools( );
break;
case "editinfo" :
$this->edit_info( );
break;
case "export" :
$this->export( );
break;
case "edit_bit" :
$this->edit_bit( );
break;
case "download" :
$this->download_group( );
break;
case "upload" :
$this->upload_form( );
break;
case "do_upload" :
$this->upload_single( );
break;
default :
$this->list_current( );
break;
}
}
function add_splash( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
global $HTTP_POST_FILES;
$FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name'];
$FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size'];
$FILE_TYPE = $HTTP_POST_FILES['FILE_UPLOAD']['type'];
$FILE_TYPE = preg_replace( "/^(.+?);.*\$/", "\\1", $FILE_TYPE );
if ( $HTTP_POST_FILES['FILE_UPLOAD']['name'] == "" || !$HTTP_POST_FILES['FILE_UPLOAD']['name'] || $HTTP_POST_FILES['FILE_UPLOAD']['name'] == "none" )
{
$this->add_templates( );
exit( );
}
if ( !is_dir( $INFO['upload_dir'] ) )
{
$ADMIN->error( "无法找到文件上传目录 - 请确认目录 'uploads' 是否存在或设置正确?" );
}
if ( !move_uploaded_file( $HTTP_POST_FILES['FILE_UPLOAD']['tmp_name'], $INFO['upload_dir']."/".$FILE_NAME ) )
{
$ADMIN->error( "文件上传失败" );
}
else
{
@chmod( $INFO['upload_dir']."/".$FILE_NAME, 511 );
}
$filename = $INFO['upload_dir']."/".$FILE_NAME;
if ( $FH = @fopen( $filename, "r" ) )
{
$data = @fread( $FH, @filesize( $filename ) );
@fclose( $FH );
@unlink( $filename );
}
else
{
$ADMIN->error( "无法打开和读取上传目录里的文件!" );
}
if ( !preg_match( "/<!--TEMPLATE_SET\\|(.+?)-->/", $data, $matches ) )
{
$ADMIN->error( "此文件不是合法的论坛论坛模板文件" );
}
list( $pack_name, $author, $email, $url ) = explode( ",", trim( $matches[1] ) );
$pack_name .= "(Upload ID: ".substr( time( ), -6 ).")";
$pack_name = str_replace( "'", "", $pack_name );
$author = str_replace( "'", "", $author );
$email = str_replace( "'", "", $email );
$url = str_replace( "'", "", $url );
$DB->query( "INSERT INTO ibf_tmpl_names (skname, author, email, url) VALUES('{$pack_name}', '{$author}', '{$email}', '{$url}')" );
$setid = $DB->get_insert_id( );
preg_match_all( "/<!--IBF_GROUP_START:(\\S+?)-->(.+?)<!--IBF_GROUP_END:\\S+?-->/s", $data, $match );
$i = 0;
for ( ; $i < count( $match[0] ); ++$i )
{
$match[1][$i] = trim( $match[1][$i] );
$match[2][$i] = trim( $match[2][$i] );
$this->process_upload( $match[2][$i], $setid, $match[1][$i], 1 );
}
$ADMIN->done_screen( "论坛模板文件导入完成", "论坛模板管理", "act=templ" );
}
function upload_single( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
global $HTTP_POST_FILES;
$FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name'];
$FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size'];
$FILE_TYPE = $HTTP_POST_FILES['FILE_UPLOAD']['type'];
$FILE_TYPE = preg_replace( "/^(.+?);.*\$/", "\\1", $FILE_TYPE );
if ( !is_dir( $INFO['upload_dir'] ) )
{
$ADMIN->error( "无法找到文件上传目录 - 请确认目录 'uploads' 是否存在或设置正确?" );
}
if ( $HTTP_POST_FILES['FILE_UPLOAD']['name'] == "" || !$HTTP_POST_FILES['FILE_UPLOAD']['name'] || $HTTP_POST_FILES['FILE_UPLOAD']['name'] == "none" )
{
$ADMIN->error( "没有选择需要上传的文件!" );
}
if ( !move_uploaded_file( $HTTP_POST_FILES['FILE_UPLOAD']['tmp_name'], $INFO['upload_dir']."/".$FILE_NAME ) )
{
$ADMIN->error( "文件上传失败" );
}
else
{
@chmod( $INFO['upload_dir']."/".$FILE_NAME, 511 );
}
$filename = $INFO['upload_dir']."/".$FILE_NAME;
if ( $FH = @fopen( $filename, "r" ) )
{
$data = @fread( $FH, @filesize( $filename ) );
@fclose( $FH );
@unlink( $filename );
}
else
{
$ADMIN->error( "无法打开和读取上传目录里的文件!" );
}
preg_match( "/<!--IBF_GROUP_START:(\\S+?)-->/", $data, $matches );
$found_group = trim( $matches[1] );
if ( $found_group != $IN['group'] )
{
$ADMIN->error( "上传的文件不是合法的的论坛模板文件类型。请在论坛模板文件 '{$IN['group']}', 查找 '{$found_group}'" );
}
$data = preg_replace( "/<!--IBF_GROUP_END:\\S+-->/", "", $data );
$this->process_upload( $data, $IN['setid'], $IN['group'] );
$ADMIN->done_screen( "论坛模板文件更新完成", "论坛模板管理", "act=templ" );
}
function upload_form( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
require( "./sources/Admin/skin_info.php" );
if ( $IN['setid'] == "" )
{
$ADMIN->error( "你必须指定一个存在的论坛模板文件ID,请返回后重试!" );
}
if ( $IN['group'] == "" )
{
$ADMIN->error( "你必须指定一个存在的论坛模板文件ID,请返回后重试!" );
}
$DB->query( "SELECT * FROM ibf_skin_templates WHERE set_id='".$IN['setid']."' AND group_name='".$IN['group']."'" );
if ( !$DB->get_num_rows( ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$DB->query( "SELECT skname FROM ibf_tmpl_names WHERE skid='".$IN['setid']."'" );
$row = $DB->fetch_row( );
$ADMIN->page_detail = "请在提交前仔细审核所有信息";
$ADMIN->page_title = "上传论坛主题模板文件:{$row['skname']}";
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "do_upload" ),
2 => array( "act", "templ" ),
3 => array( "MAX_FILE_SIZE", "10000000000" ),
4 => array(
"setid",
$IN['setid']
),
5 => array(
"group",
$IN['group']
)
), "uploadform", " enctype='multipart/form-data'" );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "上传替换论坛主题模板文件:".$skin_names[$IN['group']][0] );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>请在你的电脑里选择需要上传的文件</b><br>注意:上传的文件将替换所有当数据!",
$SKIN->form_upload( )
) );
$ADMIN->html .= $SKIN->end_form( "上传文件" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->nav[] = array( "act=templ", "论坛模板管理首页" );
$ADMIN->nav[] = array(
"act=templ&code=edit&id={$IN['setid']}",
$row['skname']
);
$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_tmpl_names WHERE skid='".$IN['id']."'" );
if ( !( $set = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的论坛模板文件ID,请检查后重试!" );
}
$groups = $DB->query( "SELECT DISTINCT(group_name) FROM ibf_skin_templates WHERE set_id='".$IN['id']."'" );
if ( !$DB->get_num_rows( $groups ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$author = str_replace( ",", "-", $set['author'] );
$email = str_replace( ",", "-", $set['email'] );
$url = str_replace( ",", "-", $set['url'] );
$skname = str_replace( ",", "-", $set['skname'] );
$output .= "<!--TEMPLATE_SET|{$skname},{$author},{$email},{$url}-->\n\n";
while ( $row = $DB->fetch_row( $groups ) )
{
$output .= $this->download_group( 1, $IN['id'], $row['group_name'] );
}
$name = str_replace( " ", "_", $set['skname'] );
@header( "Content-type: unknown/unknown" );
@header( "Content-Disposition: attachment; filename={$name}.SET.html" );
print $output;
exit( );
}
function download_group( $return = 0, $setid = "", $group = "" )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $setid != "" )
{
$IN['setid'] = $setid;
}
if ( $group != "" )
{
$IN['group'] = $group;
}
if ( $IN['setid'] == "" )
{
$ADMIN->error( "你必须指定一个存在的论坛模板文件ID,请返回后重试!" );
}
if ( $IN['group'] == "" )
{
$ADMIN->error( "你必须指定一个存在的论坛模板文件ID,请返回后重试!" );
}
$aq = $DB->query( "SELECT * FROM ibf_skin_templates WHERE set_id='".$IN['setid']."' AND group_name='".$IN['group']."'" );
if ( !$DB->get_num_rows( $aq ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$output = "<!-- PLEASE LEAVE ALL 'IBF' COMMENTS IN PLACE, DO NOT REMOVE THEM! -->\n<!--IBF_GROUP_START:{$IN['group']}-->\n\n";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -