如下圖
並且欲異動版面時,如果版面下含有其他子版面時允許異動版面(1.2之前版本不行)
舉例 主版A下面有->子版1->子版2->子版3
把子版1移動到主版B後
版面會變成主版B->子版1->子版2->子版3
- 代碼: 選擇全部
#
#--------[OPEN]----------------
#
admin/admin_forums.php
#
#--------[ FIND ]----------------
#
//
// End function block
// ------------------
#
#-----[ BEFORE ADD 之前, 加上 ]--------------------------------
#
function forum_id_sub($row)
{
global $db,$sub_id_array;
$sql = "select forum_id from " . FORUMS_TABLE . " WHERE forum_sub = " . $row["forum_id"]." ";
if( !$result2 = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't query forums table ", "", __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result2) )
{
$sub_id_array[]=$row["forum_id"];
forum_id_sub($row);
}
$db->sql_freeresult($result2);
}
function creat_sub_admin($forum_id,$forum_sub2)
{
global $template,$phpEx;
for($k=0;$k<count($forum_sub2[$forum_id]);$k++)
{
$forum_sub_id=$forum_sub2[$forum_id][$k]['forum_id'];
$template->assign_block_vars("catrow.forumrow.sub_forumrow",array(
'FORUM_NAME' => $forum_sub2[$forum_id][$k]['forum_name'],
'FORUM_DESC' => $forum_sub2[$forum_id][$k]['forum_desc'],
'ROW_COLOR' => $row_color,
'NUM_TOPICS' => $forum_sub2[$forum_id][$k]['forum_topics'],
'NUM_POSTS' => $forum_sub2[$forum_id][$k]['forum_posts'],
'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_sub_id"),
'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$forum_sub_id"),
'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$forum_sub_id"),
'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$forum_sub_id"),
'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$forum_sub_id"),
'SUB_LINE' =>$forum_sub2[$forum_id][$k]['sort_sub'],
'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_sub_id"))
);
creat_sub_admin($forum_sub_id,$forum_sub2);
}
}
#
#--------[ FIND ]----------------
#
$sql = "select count(forum_sub) as id from " . FORUMS_TABLE . " WHERE forum_sub = " . intval($HTTP_POST_VARS[POST_FORUM_URL]);
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "設定錯誤");
}
$get_sub_Id = $db->sql_fetchrow($result);
if($get_sub_Id[id]>0)
{
message_die(GENERAL_ERROR, "此版面有其他子版面相連,無法設定成子版面");
}
$temp=split(",",$forum_set);
$c=intval($temp[0]);
$forum_sub=intval($temp[1]);
#
#-----[ REPLACE WITH 替換 ]-----------------------------------
#
$temp=split(",",$forum_set);
$c=intval($temp[0]);
$forum_sub=intval($temp[1]);
$sort_sub=intval($temp[2]);
$main_sub=intval($temp[3]);
$forum_id=intval($HTTP_POST_VARS[POST_FORUM_URL]);
$sub_array = array();
$sub_id_array = array();
if($main_sub==0)
{
$temp_main_id=$forum_sub;
}else
{
$temp_main_id=$main_sub;
}
$sql = "select forum_sub from " . FORUMS_TABLE . " WHERE forum_id = ".$forum_sub." ";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't query forums table ", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$get_forum_sub=$row["forum_sub"];
$sql = "select forum_id,forum_sub from " . FORUMS_TABLE . " WHERE (main_sub = " . $temp_main_id." or forum_id=".$temp_main_id.") and sort_sub < ".$sort_sub." order by sort_sub desc";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't query forums table ", "", __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
if($get_forum_sub == $row["forum_id"])
{
$sub_array[]=$row["forum_id"];
$get_forum_sub = $row["forum_sub"];
}
}
for($i=0;$i<count($sub_array);$i++)
{
if($sub_array[$i]==$forum_id)
{
message_die(GENERAL_ERROR, "無法將版面設定在自己子版面下");
}
}
$sql = "select forum_id from " . FORUMS_TABLE . " WHERE forum_sub = " . $forum_id." ";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't query forums table ", "", __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
$sub_id_array[]=$row["forum_id"];
forum_id_sub($row);
}
#
#--------[ FIND ]----------------
#
$main_sub=intval($temp[3]);
$sql = "UPDATE " . FORUMS_TABLE . "
SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . $c . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . "
,forum_sub=".$forum_sub.",sort_sub=".$sort_sub.",main_sub=".$main_sub."
WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]);
#
#-----[ REPLACE WITH 替換 ]-----------------------------------
#
$sql = "UPDATE " . FORUMS_TABLE . "
SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . $c . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . "
,forum_sub=".$forum_sub.",sort_sub=".$sort_sub.",main_sub=".$main_sub."
WHERE forum_id = " . $forum_id;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql);
}
$sort_sub=($sort_sub-intval($HTTP_POST_VARS["s_sort_sub"]));
$sql = "UPDATE " . FORUMS_TABLE . "
SET sort_sub=sort_sub+".$sort_sub."
WHERE forum_id in (".implode(', ',$sub_id_array).")" ;
#
#--------[ FIND ]----------------
#
if( $total_forums = $db->sql_numrows($q_forums) )
{
$forum_rows = $db->sql_fetchrowset($q_forums);
}
#
#-----[ REPLACE WITH 替換 ]-----------------------------------
#
while( $row = $db->sql_fetchrow($q_forums) )
{
if($row[forum_sub]>0)
{
$forum_sub2[$row['forum_sub']][]=$row;
}else
{
$forum_rows[] = $row;
}
}
$total_forums=count($forum_rows);
#
#--------[ FIND ]----------------
#
'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_id"))
);
#
#-----[ AFTER ADD 之後, 加上 ]--------------------------------
#
creat_sub_admin($forum_id,$forum_sub2);
#
#--------[OPEN]----------------
#
/templates/subSilver/admin/forum_admin_body.tpl
#
#--------[ FIND ]----------------
#
<p>{L_FORUM_EXPLAIN}</p>
#
#-----[ AFTER ADD 之後, 加上 ]--------------------------------
#
<script language="JavaScript">
function sub_line(s)
{
var temp="";
for(var i=0;i<s;i++)
{
temp+="→";
}
document.write(temp);
}
</script>
#
#--------[ FIND ]----------------
#
<td class="row2" align="center" valign="middle"><span class="gen"><a href="{catrow.forumrow.U_FORUM_RESYNC}">{L_RESYNC}</a></span></td>
</tr>
#
#-----[ AFTER ADD 之後, 加上 ]--------------------------------
#
<!-- BEGIN sub_forumrow -->
<tr>
<td class="row2"><table width="100%"><tr>
<td>
<script language="JavaScript">sub_line({catrow.forumrow.sub_forumrow.SUB_LINE});</script>
</td>
<td width="100%">
<span class="gen"><fieldset ><a href="{catrow.forumrow.sub_forumrow.U_VIEWFORUM}" target="_new">{catrow.forumrow.sub_forumrow.FORUM_NAME}</a></span><br /><span class="gensmall">{catrow.forumrow.sub_forumrow.FORUM_DESC}</fieldset></span>
</td>
</tr></table></td>
<td class="row1" align="center" valign="middle"><span class="gen">{catrow.forumrow.sub_forumrow.NUM_TOPICS}</span></td>
<td class="row2" align="center" valign="middle"><span class="gen">{catrow.forumrow.sub_forumrow.NUM_POSTS}</span></td>
<td class="row1" align="center" valign="middle"><span class="gen"><a href="{catrow.forumrow.sub_forumrow.U_FORUM_EDIT}">{L_EDIT}</a></span></td>
<td class="row2" align="center" valign="middle"><span class="gen"><a href="{catrow.forumrow.sub_forumrow.U_FORUM_DELETE}">{L_DELETE}</a></span></td>
<td class="row1" align="center" valign="middle"><span class="gen"><a href="{catrow.forumrow.sub_forumrow.U_FORUM_MOVE_UP}">{L_MOVE_UP}</a> <br /> <a href="{catrow.forumrow.sub_forumrow.U_FORUM_MOVE_DOWN}">{L_MOVE_DOWN}</a>{catrow.forumrow.sub_forumrow.FORUM_SUB}</span></td>
<td class="row2" align="center" valign="middle"><span class="gen"><a href="{catrow.forumrow.sub_forumrow.U_FORUM_RESYNC}">{L_RESYNC}</a></span></td>
</tr>
<!-- END sub_forumrow -->