📄 ad_imagemacros.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 "wrapper" :
$this->list_current( );
break;
case "add" :
$this->add_macro_set( );
break;
case "edit" :
$this->show_macros( );
break;
case "doedit" :
$this->edit_set_name( );
break;
case "macroedit" :
$this->macro_form( "edit" );
break;
case "macroadd" :
$this->macro_form( "add" );
break;
case "macroremove" :
$this->macro_remove( );
break;
case "doeditmacro" :
$this->macro_edit( );
break;
case "doaddmacro" :
$this->macro_add( );
break;
case "remove" :
$this->remove( );
break;
case "export" :
$this->export( );
break;
case "import" :
$this->import( );
break;
default :
$this->list_current( );
break;
}
}
function import( )
{
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" )
{
$ADMIN->error( "没有选择上传文件,请返回重试!" );
}
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( "/~=~/", $data ) )
{
$ADMIN->error( "此文件不是有效的论坛图片图标文件" );
}
$DB->query( "SELECT MAX(set_id) as max FROM ibf_macro_name" );
$max = $DB->fetch_row( );
$new_id = $max['max'] + 1;
$init_array = array( );
$final_keys = array( );
$init_array = explode( "\n", $data );
foreach ( $init_array as $l )
{
if ( preg_match( "~=~", $l ) )
{
list( $k, $v ) = explode( "~=~", $l );
$k = trim( $k );
$v = trim( $v );
$final_keys[$k] = $v;
}
}
foreach ( $final_keys as $k => $v )
{
if ( $v == "*UNASSIGNED*" )
{
$v = "";
}
$row['macro_replace'] = str_replace( "\\n", "\n", $v );
$str = $DB->compile_db_insert_string( array(
"macro_value" => stripslashes( $k ),
"macro_replace" => $v,
"macro_set" => $new_id,
"can_remove" => 1
) );
$DB->query( "INSERT INTO ibf_macro ({$str['FIELD_NAMES']}) VALUES({$str['FIELD_VALUES']})" );
}
$set_name = "新图片图标设置 (上传:".substr( time( ), -6 ).")";
$str = $DB->compile_db_insert_string( array(
"set_name" => $set_name,
"set_id" => $new_id
) );
$DB->query( "INSERT INTO ibf_macro_name ({$str['FIELD_NAMES']}) VALUES({$str['FIELD_VALUES']})" );
$ADMIN->done_screen( "模板变量文件导入成功", "模板变量管理", "act=image" );
}
function edit_set_name( )
{
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_macro WHERE macro_id='".$IN['id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$DB->query( "UPDATE ibf_macro_name SET set_name='{$IN['macro_name']}' WHERE set_id='".$IN['id']."'" );
$ADMIN->done_screen( "模板变量已经更新", "模板变量管理 {$row['macro_name']}", "act=image&code=edit&id={$row['macro_set']}" );
}
function macro_remove( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
global $HTTP_POST_VARS;
if ( $IN['mid'] == "" )
{
$ADMIN->error( "你必须指定一个存在的模板变量文件ID,请返回后重试!" );
}
$DB->query( "SELECT * FROM ibf_macro WHERE macro_id='".$IN['mid']."'" );
$row = $DB->fetch_row( );
$DB->query( "DELETE FROM ibf_macro WHERE macro_id='".$IN['mid']."'" );
$ADMIN->done_screen( "模板变量已经删除", "模板变量管理 {$row['macro_name']}", "act=image&code=edit&id={$row['macro_set']}" );
}
function macro_edit( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
global $HTTP_POST_VARS;
if ( $IN['mid'] == "" )
{
$ADMIN->error( "你必须指定一个存在的模板变量文件ID,请返回后重试!" );
}
$DB->query( "SELECT * FROM ibf_macro WHERE macro_id='".$IN['mid']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$key = str_replace( "'", "\\'", stripslashes( $HTTP_POST_VARS['macro_value'] ) );
$val = str_replace( "'", "\\'", stripslashes( $HTTP_POST_VARS['macro_replace'] ) );
$DB->query( "UPDATE ibf_macro SET macro_value='{$key}', macro_replace='{$val}' WHERE macro_id='".$IN['mid']."'" );
$ADMIN->done_screen( "模板变量已经更新", "模板变量设置 {$row['macro_name']}", "act=image&code=edit&id={$row['macro_set']}" );
}
function macro_add( )
{
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_macro WHERE macro_set='".$IN['id']."' LIMIT 0,1" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$str = $DB->compile_db_insert_string( array(
"macro_value" => stripslashes( $HTTP_POST_VARS['macro_value'] ),
"macro_replace" => stripslashes( $HTTP_POST_VARS['macro_replace'] ),
"can_remove" => 1,
"macro_set" => $row['macro_set']
) );
$DB->query( "INSERT INTO ibf_macro ({$str['FIELD_NAMES']}) VALUES({$str['FIELD_VALUES']})" );
$ADMIN->done_screen( "模板变量已经添加", "模板变量管理 {$row['macro_name']}", "act=image&code=edit&id={$row['macro_set']}" );
}
function macro_form( $type = "edit" )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $type == "edit" )
{
if ( $IN['mid'] == "" )
{
$ADMIN->error( "你必须指定一个存在的模板变量文件ID,请返回后重试!" );
}
$DB->query( "SELECT m.*, mn.set_name from ibf_macro m, ibf_macro_name mn WHERE macro_id='".$IN['mid']."' AND mn.set_id=m.macro_set" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$button = "编辑模板变量";
$title = "编辑模板变量在文件:<a href='{$SKIN->base_url}&act=image&code=edit&id={$row['macro_set']}'>{$row['set_name']}</a>";
$code = "doeditmacro";
}
else
{
if ( $IN['id'] == "" )
{
$ADMIN->error( "你必须指定一个存在的模板变量文件ID,请返回后重试!" );
}
$DB->query( "SELECT set_name from ibf_macro_name WHERE set_id='".$IN['id']."'" );
if ( !( $row = $DB->fetch_row( ) ) )
{
$ADMIN->error( "无法在数据库中找到相关的数据信息" );
}
$code = "doaddmacro";
$title = "添加模板变量到文件:<a href='{$SKIN->base_url}&act=image&code=edit&id={$IN['id']}'>{$row['set_name']}</a>";
$button = "添加模板变量";
}
$ADMIN->page_detail = "模板变量可以在任何论坛模板中使用。<br>\n\t\t\t\t\t\t\t <b>例如:</b>如果添加一个模板变量为 'green_font' ,并且指定变量转换的内容 '<font color='green'>',以后所有像 <span style='color:red'><b><{green_font}></b></span> 这样的模板变量将被自动转换为 <font color='green'>\n\t\t\t\t\t\t\t <br><b><#IMG_DIR#></b> - 可以在任何模板文件中使用,系统将自动转换变量名称为主题界面中的对应图片文件路径";
$ADMIN->page_title = "模板变量管理:{$row['set_name']}";
$ADMIN->html .= $SKIN->js_no_specialchars( );
$ADMIN->html .= $SKIN->start_form( array(
1 => array(
"code",
$code
),
2 => array( "act", "image" ),
3 => array(
"id",
$IN['id']
),
4 => array(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -