📄 ad_forums.php
字号:
<?php
class ad_forums
{
var $base_url;
function ad_forums( )
{
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 "new" :
$this->new_form( );
break;
case "donew" :
$this->do_new( );
break;
case "edit" :
$this->edit_form( );
break;
case "doedit" :
$this->do_edit( );
break;
case "pedit" :
$this->perm_edit_form( );
break;
case "pdoedit" :
$this->perm_do_edit( );
break;
case "reorder" :
$this->reorder_form( );
break;
case "doreorder" :
$this->do_reorder( );
break;
case "delete" :
$this->delete_form( );
break;
case "dodelete" :
$this->do_delete( );
break;
case "recount" :
$this->recount( );
break;
case "empty" :
$this->empty_form( );
break;
case "doempty" :
$this->do_empty( );
break;
case "frules" :
$this->show_rules( );
break;
case "dorules" :
$this->do_rules( );
break;
case "newsp" :
$this->new_form( );
break;
case "donewsplash" :
$this->donew_splash( );
break;
case "donewsub" :
$this->add_sub( );
break;
case "subedit" :
$this->subedit( );
break;
case "doeditsub" :
$this->doeditsub( );
break;
case "subdelete" :
$this->subdeleteform( );
break;
case "dosubdelete" :
$this->dosubdelete( );
break;
case "skinedit" :
$this->skin_edit( );
break;
case "doskinedit" :
$this->do_skin_edit( );
break;
default :
$this->new_form( );
break;
}
}
function skin_edit( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $IN['f'] == "" )
{
$ADMIN->error( "没有找到需要清空的论坛栏目ID。" );
}
$DB->query( "SELECT id, name, skin_id FROM ibf_forums WHERE id='".$IN['f']."'" );
if ( !$DB->get_num_rows( ) )
{
$ADMIN->error( "没有找到论坛栏目ID。" );
}
$forum = $DB->fetch_row( );
if ( $forum['skin_id'] == "" || $forum['skin_id'] == -1 )
{
$forum['skin_id'] = "n";
}
$form_array = array( );
$form_array[] = array( "n", "-- 系统默认设置 --" );
$DB->query( "SELECT sid, sname FROM ibf_skins" );
while ( $r = $DB->fetch_row( ) )
{
$form_array[] = array(
$r['sid'],
$r['sname']
);
}
$ADMIN->page_title = "主题界面选项";
$ADMIN->page_detail = "你可以从下面选择一种你喜欢的论坛主题界面,所有论坛用户将统一使用你设置的主题界面。";
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "doskinedit" ),
2 => array( "act", "forum" ),
3 => array(
"f",
$IN['f']
)
) );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "主题界面选项:{$forum['name']}" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>选择主题界面:</b>",
$SKIN->form_dropdown( "fsid", $form_array, $forum['skin_id'] )
) );
$ADMIN->html .= $SKIN->end_form( "编辑论坛主题界面选项" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->output( );
}
function do_skin_edit( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $IN['f'] == "" )
{
$ADMIN->error( "没有找到需要清空的论坛栏目ID。" );
}
$DB->query( "SELECT id, name, skin_id FROM ibf_forums WHERE id='".$IN['f']."'" );
$forum = $DB->fetch_row( );
if ( !$DB->get_num_rows( ) )
{
$ADMIN->error( "没有找到论坛栏目ID。" );
}
if ( $IN['fsid'] == "n" )
{
$DB->query( "UPDATE ibf_forums SET skin_id='-1' WHERE id='".$IN['f']."'" );
$ADMIN->rebuild_config( array( "" ) );
}
else
{
$DB->query( "UPDATE ibf_forums SET skin_id='".$IN['fsid']."' WHERE id='".$IN['f']."'" );
$ADMIN->rebuild_config( array(
"forum_skin_".$IN['f'] => $IN['fsid']
) );
}
$ADMIN->save_log( "编辑论坛主题界面设置:'{$forum['name']}'" );
$std->boink_it( $ADMIN->base_url."&act=cat" );
exit( );
}
function subdeleteform( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
$form_array = array( );
if ( $IN['f'] == "" )
{
$ADMIN->error( "没有找到需要删除的论坛栏目ID。" );
}
$cats = array( );
$name = "";
$last_cat_id = -1;
$DB->query( "SELECT c.id, c.name, f.id as forum_id, f.subwrap, f.name as forum_name, f.parent_id, f.category FROM ibf_categories c, ibf_forums f WHERE c.id > 0 ORDER BY c.position, f.position" );
while ( $r = $DB->fetch_row( ) )
{
if ( $last_cat_id != $r['id'] )
{
$cats[] = array(
"c_".$r['id'],
"论坛分类:".$r['name']
);
$last_cat_id = $r['id'];
}
if ( 0 < $r['parent_id'] )
{
}
else if ( $r['forum_id'] == $IN['f'] )
{
$name = $r['forum_name'];
}
else if ( $r['subwrap'] != 1 )
{
}
else if ( $r['category'] == $r['id'] )
{
$cats[] = array(
"f_".$r['forum_id'],
"论坛子分类:".$r['forum_name']
);
}
}
if ( $DB->get_num_rows( ) < 2 )
{
$ADMIN->error( "无法删除这个论坛栏目,请尝试建立其它论坛栏目或论坛子分类" );
}
$ADMIN->page_title = "删除论坛子分类:'{$name}'";
$ADMIN->page_detail = "删除论坛栏目前,我们需要决定如何处理论坛栏目下的论坛子分类。";
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "dosubdelete" ),
2 => array( "act", "forum" ),
3 => array(
"f",
$IN['f']
),
4 => array(
"name",
$name
)
) );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "必须进行选择或填写" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>删除论坛栏目:</b>",
$name
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>将此论坛栏目下存在的所有论坛子分类移动到:</b>",
$SKIN->form_dropdown( "MOVE_ID", $cats )
) );
$ADMIN->html .= $SKIN->end_form( "移动论坛子分类并删除论坛栏目" );
$ADMIN->html .= $SKIN->end_table( );
$ADMIN->output( );
}
function dosubdelete( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
if ( $IN['f'] == "" )
{
$ADMIN->error( "没有找到论坛栏目ID信息。" );
}
if ( $IN['MOVE_ID'] == "" )
{
$ADMIN->error( "没有找到论坛栏目ID文件。" );
}
$cat = -1;
$parent = -1;
if ( preg_match( "/^c_(\\d+)\$/", $IN['MOVE_ID'], $match ) )
{
$cat = $match[1];
}
else
{
$parent = preg_replace( "/^f_/", "", $IN['MOVE_ID'] );
}
$DB->query( "UPDATE ibf_forums SET category='{$cat}', parent_id='{$parent}' WHERE parent_id='".$IN['f']."'" );
$DB->query( "DELETE FROM ibf_forums WHERE id='".$IN['f']."'" );
$DB->query( "DELETE FROM ibf_moderators WHERE forum_id='".$IN['f']."'" );
$ADMIN->save_log( "删除论坛子分类:'{$IN['name']}'" );
$ADMIN->done_screen( "论坛栏目已经删除", "论坛栏目控制面板", "act=cat" );
}
function subedit( )
{
global $IN;
global $INFO;
global $DB;
global $SKIN;
global $ADMIN;
global $std;
global $MEMBER;
global $GROUP;
global $HTTP_GET_VARS;
$cats = array( );
$last_cat_id = -1;
$DB->query( "SELECT * from ibf_categories WHERE id > 0 ORDER BY position" );
while ( $r = $DB->fetch_row( ) )
{
$cats[] = array(
$r['id'],
"论坛分类:".$r['name']
);
}
$DB->query( "SELECT * from ibf_forums WHERE subwrap='1' AND id='".$IN['f']."'" );
if ( !( $forum = $DB->fetch_row( ) ) )
{
$ADMIN->error( "没有找到论坛子分类数据" );
}
if ( $forum['password'] == "-1" )
{
$forum['password'] = "";
}
$ADMIN->page_title = "编辑论坛子分类";
$ADMIN->page_detail = "请在下面编辑你的论坛子分类信息。";
$ADMIN->html .= $SKIN->start_form( array(
1 => array( "code", "doeditsub" ),
2 => array( "act", "forum" ),
3 => array(
"f",
$IN['f']
)
) );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "论坛栏目设置" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>添加到哪个论坛分类?</b><br>",
$SKIN->form_dropdown( "CATEGORY", $cats, $forum['category'] )
) );
$ADMIN->html .= $SKIN->end_table( );
$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_input( "name", $forum['name'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>论坛栏目叙述:</b>",
$SKIN->form_textarea( "desc", $forum['description'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>论坛栏目状态:</b>",
$SKIN->form_dropdown( "FORUM_STATUS", array(
0 => array( 1, "立即启用" ),
1 => array( 0, "只读文档" )
), $forum['status'] )
) );
$ADMIN->html .= $SKIN->end_table( );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "是否允许用户在此论坛进行回复?" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否允许用户在子论坛发表新主题和回复?</b><br>如果选择'是',那么子论坛栏目将根据默认参数显示帖子。<b>如果选择'否',那么任何设置将无效,你可以忽略这个选项的设置。</b>",
$SKIN->form_yes_no( "sub_can_post", $forum['sub_can_post'] )
) );
$ADMIN->html .= $SKIN->end_table( );
$SKIN->td_header[] = array( " ", "40%" );
$SKIN->td_header[] = array( " ", "60%" );
$ADMIN->html .= $SKIN->start_table( "论坛帖子发表参数设置" );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否允许在帖子中使用 HTML 语言?</b>",
$SKIN->form_yes_no( "FORUM_HTML", $forum['use_html'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否允许在帖子中使用 IBF 代码?</b>",
$SKIN->form_yes_no( "FORUM_IBC", $forum['use_ibc'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否允许在论坛中发表投票主题?</b>",
$SKIN->form_yes_no( "allow_poll", $forum['allow_poll'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否将用户的投票计算为回复帖子?</b>",
$SKIN->form_yes_no( "allow_pollbump", $forum['allow_pollbump'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否自动增加用户发表帖子的计数值?</b>",
$SKIN->form_yes_no( "inc_postcount", $forum['inc_postcount'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否在帖子发表前进行帖子发表审核?</b><br>(必须由版主通过审核后,才能正式发表帖子到论坛)",
$SKIN->form_yes_no( "MODERATE", $forum['preview_posts'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>是否使用登录密码才能访问论坛?</b><br>(不填写表示禁止使用此功能,你也可以在表单中输入一个用户登录论坛的密码。)",
$SKIN->form_input( "FORUM_PROTECT", $forum['password'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>论坛默认显示主题的天数:</b>",
$SKIN->form_dropdown( "PRUNE_DAYS", array(
0 => array( 1, "显示今天主题" ),
1 => array( 5, "显示5天前" ),
2 => array( 7, "显示7天前" ),
3 => array( 10, "显示10天前" ),
4 => array( 15, "显示15天前" ),
5 => array( 20, "显示20天前" ),
6 => array( 25, "显示25天前" ),
7 => array( 30, "显示30天前" ),
8 => array( 60, "显示60天前" ),
9 => array( 90, "显示90天前" ),
10 => array( 100, "显示所有主题" )
), $forum['prune'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>默认的帖子显示方式:</b>",
$SKIN->form_dropdown( "SORT_KEY", array(
0 => array( "last_post", "最后回复日期" ),
1 => array( "title", "主题标题名称" ),
2 => array( "starter_name", "发表作者名字" ),
3 => array( "posts", "主题回复数量" ),
4 => array( "views", "主题查看数量" ),
5 => array( "start_date", "主题发表日期" ),
6 => array( "last_poster_name", "最后发表作者" )
), $forum['sort_key'] )
) );
$ADMIN->html .= $SKIN->add_td_row( array(
"<b>默认的帖子排列方式:</b>",
$SKIN->form_dropdown( "SORT_ORDER", array(
0 => array( "Z-A", "降序排列(Z - A,0 - 10)" ),
1 => array( "A-Z", "升序排列(A - Z,10 - 0)" )
), $forum['sort_order'] )
) );
$ADMIN->html .= $SKIN->end_form( "编辑论坛栏目" );
$ADMIN->html .= $SKIN->end_table( );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -