[phpbb外掛]簡易子版面1.2->1.3

網站架設,免費空間申請,架站技術交流區

ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

[phpbb外掛]簡易子版面1.2->1.3

文章ETERNAL » 2005-10-22 12:26 am

這次加強是針對後台版面管理的部分
如下圖
圖檔
並且欲異動版面時,如果版面下含有其他子版面時允許異動版面(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&amp;" . POST_FORUM_URL . "=$forum_sub_id"),
                  'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&amp;" . POST_FORUM_URL . "=$forum_sub_id"),
                  'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&amp;move=-15&amp;" . POST_FORUM_URL . "=$forum_sub_id"),
                  'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&amp;move=15&amp;" . 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&amp;" . 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&amp;" . 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 -->



最後由 ETERNAL 於 2005-10-26 3:55 pm 編輯,總共編輯了 2 次。

basang
 
文章: 18
註冊時間: 2005-04-10 1:15 pm

文章basang » 2005-10-22 11:29 am

#
#--------[ FIND ]----------------
#
$total_forums = $db->sql_numrows($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);

站長我在這邊不知道怎麼去修改
我的下面的內容如下
if( $total_forums = $db->sql_numrows($q_forums) )
{
$forum_rows = $db->sql_fetchrowset($q_forums);
}
但是這樣修改開啟後台便會出現錯誤的訊息
不知道站長是否有修正的方法




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

文章ETERNAL » 2005-10-22 12:11 pm

謝謝告知
應該是替換
代碼: 選擇全部
   if( $total_forums = $db->sql_numrows($q_forums) )
   {
      $forum_rows = $db->sql_fetchrowset($q_forums);
   }





回到 架站討論

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客