[phpbb外掛]簡易子版面v1.2

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

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

[phpbb外掛]簡易子版面v1.2

文章ETERNAL » 2005-07-12 9:53 pm

範例圖片
http://iqstar.myweb.hinet.net/forum_sub.jpg

範例網站
http://bbs.et99.org

在phpbb2.0.4,2.0.11~2.0.17測試過皆無問題

代碼: 選擇全部
/*=====================================================
 Mod Title: 簡易子版面
 Author : ETERNAL<iqstar@ms24.hinet.net>
 Mod Version: 1.2
 Mod Date: 2005/9/10
 Demo Site : http://bbs.2233.idv.tw/
 Files To Edit: 22
===================================================== */


簡易子版面1.2下載
http://iqstar.myweb.hinet.net/sub_forum_12.rar

1.2修改部分

移動文章時的版面下拉選單,以及後台權限設定的版面下拉選單改成有階層顯示
圖檔
搜尋文章時的版面選單,改成有階層顯示
圖檔

想美化子版面以及有安裝全區公告的話,可以參考後半段御津闇慈的文章
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=33019

若頁面因受到風格影響,造成最後發表文章標題亂掉,請參考心靈捕手提供的修改方式
http://phpbb-tw.net/phpbb/viewtopic.php?p=200685#200685

9/11 下午 1:30修正
在search.php
代碼: 選擇全部
if(!empty($HTTP_POST_VARS['search_forum']))
{
   $temp_search=split(",",$HTTP_POST_VARS['search_forum']);
   if($temp_search[1]=="0")
   {
      $search_cat=$temp_search[0];
      $search_forum=-1;
   }else if($temp_search[1]=="1")
   {
      $search_forum=$temp_search[0];
      $search_cat=-1;
   }else
   {
      $search_forum=-1;
      $search_cat=-1;
   }
}

後面加上
代碼: 選擇全部
else
{
   $search_forum=-1;
   $search_cat=-1;
}



最後由 ETERNAL 於 2005-09-12 9:04 pm 編輯,總共編輯了 5 次。

頭像
炎之虛空
 
文章: 30
註冊時間: 2003-05-10 10:40 pm

文章炎之虛空 » 2005-08-30 7:51 pm

這是ET叫我幫忙改的
改變 jumpbox 顯示方式
原先是箭頭符號
修改成下圖這樣(這是另外一個子分區外掛)
圖檔

DEMO
圖檔

不過先說好.........我只有針對第二階層的
再下一層就XD不知道

打開
\includes\functions.php
代碼: 選擇全部
搜尋
//forum_sub start
function make_jumpbox($action,$match_forum_id=0)
{
   global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID,$is_auth, $userdata;


$userdata

增加


, $board_config


代碼: 選擇全部
搜尋

   $sub_list="add_select('-1','".$lang['Select_forum']."','$s',0);";

下方加上
                     $sub_list .="add_select('-1','&nbsp;','$s',0);";
   $sub_list .="add_select('-1','".$board_config['sitename']."','$s',0);";


代碼: 選擇全部
搜尋

               $sub_list .="add_select('-1','&nbsp;','$s',0);";
      $sub_list .="add_select('-1','".$cat_data[$i][cat_title]."','$s',0);";

替換成

      $sub_list .="add_select('-1','|','$s',0);";
      $sub_list .="add_select('-1','|--".$cat_data[$i][cat_title]."','$s',0);";


代碼: 選擇全部
搜尋
         $sub_list .= "add_select('".$forum_data[$cat_id][$j][forum_id]."','".$forum_data[$cat_id][$j][forum_name]."','$s',".($forum_data[$cat_id][$j][sort_sub]+1).");";

替換成
         $sub_list .= "add_select('".$forum_data[$cat_id][$j][forum_id]."','".$forum_data[$cat_id][$j][forum_name]."','$s',".($forum_data[$cat_id][$j][sort_sub]+1).");";


打開
jumpbox.tpl

代碼: 選擇全部
搜尋

   var temp="";
   if(sort>0)
   {
      na="→ "+na
   }
   for(var i=0;i<sort;i++)
   {
      temp+=" ";
   }

替換上

   if(sort>0)
   {
      na="|--"+na
   }
   for(var i=0;i<sort;i++)
   {
      temp+="|&nbsp;&nbsp;&nbsp;";
   }


收工



頭像
炎之虛空
 
文章: 30
註冊時間: 2003-05-10 10:40 pm

文章炎之虛空 » 2005-08-31 12:05 am

修正第二層以後被拉回來的問題



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

文章basang » 2005-08-31 10:31 pm

站長該子分區
已經很完善嚕
但是不知道站長有無發現

當要移動文章的時候,要選擇版區

他沒有像前往: 選擇一個版面 這樣的這種功能

假如能改成顯示成這樣


會方便大家去管理版面,感謝站長,希望能增加此功能,讓子分區更完美
炎之虛空 寫:CP我的圖片=A=

<a href="profile.php?mode=viewprofile&u=60">炎之虛空</a> 在 <a href="viewforum.php?f=55">架站討論</a> at 2005-09-12 9:25 am 提出檢舉





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

文章ETERNAL » 2005-08-31 11:41 pm

這功能早就有了,只是一直沒拿出來
圖檔

後台管理的權限設定地方,也有這功能


水色論壇 http://www.et99.net
簡恩峻分享

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

文章basang » 2005-09-01 3:50 am

ETERNAL 寫:這功能早就有了,只是一直沒拿出來
後台管理的權限設定地方,也有這功能


站長是否這項功能能釋出
方便使用移動文章的功能

目前使用該子分區用的感想就是差再這一項而已

用站長現在貼出的版本就好,不要再弄另一版,我比較喜歡這一版

因為統一的格是方便管理者的操作

會讓這個子分區更完美




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

文章ETERNAL » 2005-09-01 9:02 am

原本是打算拿來當1.2的東西

改法很簡單

打開modcp.php

尋找
代碼: 選擇全部
            'S_FORUM_SELECT' => make_forum_select('new_forum', $forum_id),


前面加上
代碼: 選擇全部
   'S_FORUM_SELECT_NAME' => '<select name="new_forum">',


打開
include/functions_admin.php


代碼: 選擇全部
function make_forum_select($box_name, $ignore_forum = false, $select_forum = '')
{
.....................
.....................
.....................
}


替換成
代碼: 選擇全部
function make_forum_select($box_name, $ignore_forum = false, $select_forum = '')
{
   global $db, $userdata;
   $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
   $sql="select cat_id,cat_title from ".CATEGORIES_TABLE." order by cat_order  ";
   if( !$result = $db->sql_query($sql) )
   {
      message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql);
   }
   $cat_data = array();
   while( $row = $db->sql_fetchrow($result) )
   {
      $cat_data[] = $row;
   }
   $db->sql_freeresult($result);
   $sql = "SELECT cat_id,forum_id,forum_name,sort_sub,forum_sub from ".FORUMS_TABLE."  ORDER BY cat_id,forum_order";
   if( !$result = $db->sql_query($sql) )
   {
      message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql);
   }
   $forum_data = array();
   $forum_sub = array();
   $forum_sub2 = array();
   while( $row = $db->sql_fetchrow($result) )
   {
      $s="";
      if($is_auth_ary[$row['forum_id']]['auth_read'])
      {
         if($row[forum_sub]==0)
         {
            $forum_data[$row['cat_id']][] = $row;
         }
         else
         {
            if($row[forum_id] == $ignore_forum)
            {
               $s = " selected=\"selected\"";
            }
            $forum_sub[$row['forum_sub']][] = "add_select('".$row[forum_id]."','".$row[forum_name]."','$s',".($row[sort_sub]+1).",'end_setup');";
            $forum_sub2[$row['forum_sub']][]=$row[forum_id];
         }
      }
   }
   $db->sql_freeresult($result);
   $sub_list="add_select('-1','".$lang['Select_forum']."','$s',0);";
   $end_setup='0';
   for( $i=0;$i<count($cat_data);$i++)
   {
      $s = "";
      $cat_id=$cat_data[$i][cat_id];
      $sub_list .="add_select('-1','&nbsp;','$s',0);";
      $sub_list .="add_select('-1','".$cat_data[$i][cat_title]."','$s',0);";
      for($j=0;$j<count($forum_data[$cat_id]);$j++)
      {
         $s = "";
         $end_setup='0';
         $end_setup2=0;
         if ($forum_data[$cat_id][$j][forum_id] == $ignore_forum)
         {
            $s = " selected=\"selected\"";
         }
         $sub_list .= "add_select('".$forum_data[$cat_id][$j][forum_id]."','".$forum_data[$cat_id][$j][forum_name]."','$s',".($forum_data[$cat_id][$j][sort_sub]+1).");";
         if( count($forum_sub[$forum_data[$cat_id][$j][forum_id]]) > 0 )
         {
            for($jj=0;$jj<count($forum_sub[$forum_data[$cat_id][$j][forum_id]]);$jj++)
            {

               $sub_list.= $forum_sub[$forum_data[$cat_id][$j][forum_id]][$jj];
               $sub_list.=sub_search($forum_sub2[$forum_data[$cat_id][$j][forum_id]][$jj],$forum_sub,$forum_sub2);
            }
         }
      }
   }
   return $sub_list;
}


打開
templates/subSilver/modcp_move.tpl

尋找
代碼: 選擇全部
         <td align="center"><span class="gen">{L_MOVE_TO_FORUM} &nbsp; {S_FORUM_SELECTbr /><br />


替換成
代碼: 選擇全部
         <td align="center"><span class="gen">{L_MOVE_TO_FORUM} &nbsp; {S_FORUM_SELECT_NAME}<script language="JavaScript">{S_FORUM_SELECT}</script></select><br /><br />


打開
admin/admin_forumauth.php

尋找
代碼: 選擇全部
      'S_AUTH_SELECT' => $select_list)


改成
代碼: 選擇全部
      'S_AUTH_NAME' => '<select name="' . POST_FORUM_URL . '">',
      'S_AUTH_SELECT' => make_forum_select(''))


打開
templates/subSilver/admin/auth_select_body.tpl

尋找
代碼: 選擇全部
{S_HIDDEN_FIELDS}{S_AUTH_SELECT}


改成
代碼: 選擇全部
{S_HIDDEN_FIELDS}
      {S_AUTH_NAME}
      <script language="JavaScript">{S_AUTH_SELECT}</script>
      </select>




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

文章basang » 2005-09-01 4:47 pm

ETERNAL 寫:原本是打算拿來當1.2的東西

改法很簡單


打開
admin/admin_forumauth.php

尋找
代碼: 選擇全部
      'S_AUTH_SELECT' => $select_list)


改成
代碼: 選擇全部
      'S_AUTH_NAME' => '<select name="' . POST_FORUM_URL . '">',
      'S_AUTH_SELECT' => make_forum_select(''))


對懂PHP的語法的人,是很簡單,對我只會修改而已,很困難
站長願意釋出這個功能,只會讓子分區更加完美

問題一
我安裝了之後還是沒有顯示出來,選取的方框
我在modcp_move.tpl 開頭加上這個,就會顯示出來
代碼: 選擇全部
<script language="JavaScript">
function add_select(val,na,s,sort)
{
   var temp="";
   if(sort>0)
   {
      na="→ "+na
   }
   for(var i=0;i<sort;i++)
   {
      temp+=" ";
   }
   document.write('<option value="'+val+'" '+s+'>'+temp+na+'</option>');
}
</script>


問題二:
站長我改了這一各區段
出現一各問題是
Fatal error: Call to undefined function: make_forum_select() in /home/gamania/html/admin/admin_forumauth.php on line 201

我進去看這個位置的.....資料是
'S_AUTH_SELECT' => make_forum_select(''))
這一筆,我實在看不出來哪邊有問題

這一點在麻煩站長修正一下,先謝謝站長




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

文章ETERNAL » 2005-09-01 5:09 pm

問題一
不懂你的意思

問題二
可能是漏掉
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
把這段加在
require($phpbb_root_path . 'extension.inc');
的後面


水色論壇 http://www.et99.net
簡恩峻分享

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

文章basang » 2005-09-01 5:21 pm

ETERNAL 寫:問題一
不懂你的意思

問題二
可能是漏掉
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
把這段加在
require($phpbb_root_path . 'extension.inc');
的後面


問題一
照這樣改好,會出現這種情形
圖檔

我只要把上面的加入便會正常顯示分區

問題二
錯誤訊息,這樣子就排除



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

文章basang » 2005-09-08 2:29 am

站長是否能建議一下

搜尋那邊的選擇版面

也能把它修改成這樣的選單

這樣方便大家去選擇要去搜尋的版面




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

文章ETERNAL » 2005-09-10 10:45 am

basang 寫:站長是否能建議一下

搜尋那邊的選擇版面

也能把它修改成這樣的選單

這樣方便大家去選擇要去搜尋的版面


以下方式你試試看吧

代碼: 選擇全部
#
#--------[OPEN]----------------
#
/include/functions_search.php

#
#--------[ FIND ]----------------
#
?>

#
#-----[ BEFORE ADD 之前, 加上 ]--------------------------------
#
function search_forum_select($is_auth_ary)
{
   global $db, $userdata;

   $sql="select cat_id,cat_title from ".CATEGORIES_TABLE." order by cat_order  ";
   if( !$result = $db->sql_query($sql) )
   {
      message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql);
   }
   $cat_data = array();
   while( $row = $db->sql_fetchrow($result) )
   {
      $cat_data[] = $row;
   }
   $db->sql_freeresult($result);
   $sql = "SELECT cat_id,forum_id,forum_name,sort_sub,forum_sub from ".FORUMS_TABLE."  ORDER BY cat_id,forum_order";
   if( !$result = $db->sql_query($sql) )
   {
      message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql);
   }
   $forum_data = array();
   $forum_sub = array();
   $forum_sub2 = array();
   while( $row = $db->sql_fetchrow($result) )
   {
      $s="";
      if($is_auth_ary[$row['forum_id']]['auth_read'])
      {
         if($row[forum_sub]==0)
         {
            $forum_data[$row['cat_id']][] = $row;
         }
         else
         {
            $forum_sub[$row['forum_sub']][] = "search_select('".$row[forum_id]."','".$row[forum_name]."','$s',".($row[sort_sub]+1).",1);";
            $forum_sub2[$row['forum_sub']][]=$row[forum_id];
         }
      }
   }
   $db->sql_freeresult($result);
   $end_setup='0';
   for( $i=0;$i<count($cat_data);$i++)
   {
      $s = "";
      $cat_id=$cat_data[$i][cat_id];
      $sub_list .="search_select('','&nbsp;','$s',0,'');";
      $sub_list .="search_select('$cat_id','".$cat_data[$i][cat_title]."','$s',0,0);";
      for($j=0;$j<count($forum_data[$cat_id]);$j++)
      {
         $s = "";
         $end_setup='0';
         $end_setup2=0;
         $sub_list .= "search_select('".$forum_data[$cat_id][$j][forum_id]."','".$forum_data[$cat_id][$j][forum_name]."','$s',".($forum_data[$cat_id][$j][sort_sub]+1).",1);";
         if( count($forum_sub[$forum_data[$cat_id][$j][forum_id]]) > 0 )
         {
            for($jj=0;$jj<count($forum_sub[$forum_data[$cat_id][$j][forum_id]]);$jj++)
            {

               $sub_list.= $forum_sub[$forum_data[$cat_id][$j][forum_id]][$jj];
               $sub_list.=sub_search($forum_sub2[$forum_data[$cat_id][$j][forum_id]][$jj],$forum_sub,$forum_sub2);
            }
         }
      }
   }
   return $sub_list;
}

#
#--------[OPEN]----------------
#
search.php

#
#--------[ FIND ]----------------
#
$search_forum = ( isset($HTTP_POST_VARS['search_forum']) ) ? intval($HTTP_POST_VARS['search_forum']) : -1;

#
#-----[ AFTER ADD 之後, 加上 ]--------------------------------
#
#ps.建議把
#$search_cat = ( isset($HTTP_POST_VARS['search_cat']) ) ? intval($HTTP_POST_VARS['search_cat']) : -1;
#$search_forum = ( isset($HTTP_POST_VARS['search_forum']) ) ? intval($HTTP_POST_VARS['search_forum']) : -1;
#這兩行註解起來

if(!empty($HTTP_POST_VARS['search_forum']))
{
   $temp_search=split(",",$HTTP_POST_VARS['search_forum']);
   if($temp_search[1]=="0")
   {
      $search_cat=$temp_search[0];
      $search_forum=-1;
   }else if($temp_search[1]=="1")
   {
      $search_forum=$temp_search[0];
      $search_cat=-1;
   }else
   {
      $search_forum=-1;
      $search_cat=-1;
   }
}

#
#--------[ FIND ]----------------
#
//
// Search forum
//
#
#-----[ AFTER ADD 之後, 加上 ]--------------------------------
#
/*

#
#--------[ FIND ]----------------
#
//
// Number of chars returned
//

#
#-----[ BEFORE ADD 之前, 加上 ]--------------------------------
#
*/
$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
$s_forums=search_forum_select($is_auth_ary);
if ( $s_forums != '' )
{
   $s_forums="search_select('-1','". $lang['All_available'] ."','$s',0,'');". $s_forums;
}
else
{
   message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']);
}

#
#--------[OPEN]----------------
#
/templates/subSilver(你的風格)/search_body.tpl

#
#--------[ FIND ]----------------
#
      {S_FORUM_OPTIONS}

#
#-----[ REPLACE WITH 替換 ]-----------------------------------
#
<script language="JavaScript">{S_FORUM_OPTIONS}</script>

#
#--------[ FIND ]----------------
#
      <td class="row1" align="right"><span class="gen">{L_CATEGORY}:&nbsp;</span></td>
      <td class="row2"><span class="genmed"><select class="post" name="search_cat">{S_CATEGORY_OPTIONS}
      </select></span></td>
#
#-----[ REPLACE WITH 替換 ]-----------------------------------
#
      <td class="row1" align="right"><span class="gen">{L_DISPLAY_RESULTS}:&nbsp;</span></td>
      <td class="row2"><span class="genmed"><input type="radio" name="show_results" value="posts" /><span class="genmed">{L_POSTS}<input type="radio" name="show_results" value="topics" checked="checked" />{L_TOPICS}</span>&nbsp; {L_RETURN_FIRST}:<span class="genmed"><select class="post" name="return_chars">{S_CHARACTER_OPTIONS}</select> {L_CHARACTERS}</span></td>
#
#-----[ DELETE 刪除 ]--------------------------------------------
#
   <tr>
      <td class="row1" align="right" nowrap="nowrap"><span class="gen">{L_DISPLAY_RESULTS}:&nbsp;</span></td>
      <td class="row2" nowrap="nowrap"><input type="radio" name="show_results" value="posts" /><span class="genmed">{L_POSTS}<input type="radio" name="show_results" value="topics" checked="checked" />{L_TOPICS}</span></td>
      <td class="row1" align="right"><span class="gen">{L_RETURN_FIRST}</span></td>
      <td class="row2"><span class="genmed"><select class="post" name="return_chars">{S_CHARACTER_OPTIONS}</select> {L_CHARACTERS}</span></td>
   </tr>
#
#--------[ UPLOAD ]----------------
#
search_forum.js to /


search_forum.js下載位子
http://iqstar.myweb.hinet.net/search_forum.js



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

文章basang » 2005-09-10 1:51 pm

給站長

我的論壇,一直不會去呼叫search_forum.js
這個檔案

所以他都無法直接顯示出來版面

我把裡面的內容捕到這裡面search_body.tpl,就可以顯示

另一個子分區的建議,我是建議站長,能讓首頁資料

跑到最多四層,相信,四層已經夠多

希望站長能幫忙修改一下




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

文章ETERNAL » 2005-09-10 4:52 pm

basang 寫:給站長

我的論壇,一直不會去呼叫search_forum.js
這個檔案

所以他都無法直接顯示出來版面

我把裡面的內容捕到這裡面search_body.tpl,就可以顯示

另一個子分區的建議,我是建議站長,能讓首頁資料

跑到最多四層,相信,四層已經夠多

希望站長能幫忙修改一下


1.
說明漏掉一個地方

代碼: 選擇全部
#
#--------[ FIND ]----------------
#
<form action="{S_SEARCH_ACTION}" method="POST"><table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">

#
#-----[ BEFORE ADD 之前, 加上 ]--------------------------------
#
<script language="JavaScript" src="search_forum.js"></script>


2.
3層以上就已經太多了,而且顯示方式更是困難的問題



頭像
炎之虛空
 
文章: 30
註冊時間: 2003-05-10 10:40 pm

文章炎之虛空 » 2005-09-12 9:25 am

basang 寫:站長該子分區
已經很完善嚕
但是不知道站長有無發現

當要移動文章的時候,要選擇版區

他沒有像前往: 選擇一個版面 這樣的這種功能

假如能改成顯示成這樣
圖檔

會方便大家去管理版面,感謝站長,希望能增加此功能,讓子分區更完美
別亂CP我的圖片=W=
要的話請自己抓



下一頁

回到 架站討論

誰在線上

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