1 頁 (共 1 頁)

[教學] 簡易子版面1.0小修正

發表於 : 2005-07-08 15:58
ETERNAL
1.修改看子版面時,上面路徑只顯示子版面名稱\r

打開 viewtopic.php

代碼: 選擇全部

找到==================================
$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments " . $count_sql . "

在, f.auth_attachments後面?#91;上==================================
,f.forum_sub

使其變成

$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments,f.forum_sub" . $count_sql . "


2.新增修改刪除文章時,沒有正確顯示子版的路徑

打開 posting.php

代碼: 選擇全部

找到=================
	$forum_name = $post_info['forum_name'];
後面?#91;上===============
	$forum_path=forum_path($post_info,$forum_id);
找到=================
	'L_POST_A' => $page_title,
	'L_POST_SUBJECT' => $lang['Post_subject'], 

後面?#91;上===============
	'FORUM_PATH' => $forum_path,

打開 \templates\subSilver\posting_body.tpl

代碼: 選擇全部

找到=================
-> <a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a>
取代為===============
 {FORUM_PATH} 

發表於 : 2005-07-08 16:00
ETERNAL
在安裝文章中,已經把這些步驟加上去了
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=33019

所以現在若按照文章中的步驟安裝,不需要理會這篇文章

發表於 : 2005-07-10 16:47
ETERNAL
有網友發現了一個bug

在A版面下,同時有b1,b2,b3個子版,而這些子版下面還有子版的情況
在下拉選單中,其b1,b2版的子版會不見

修改方式如下

在includes/functions.php裡面\r

尋找\r

代碼: 選擇全部

$forum_sub2[$row['forum_sub']]=$row[forum_id];
改成

代碼: 選擇全部

$forum_sub2[$row['forum_sub']][]=$row[forum_id];
尋找\r

代碼: 選擇全部

         if ( count($forum_sub[$forum_data[$cat_id][$j][forum_id]]) > 0 ) 
         { 
            $sub_list.= implode(' ', $forum_sub[$forum_data[$cat_id][$j][forum_id]]); 
            $sub_list.=sub_search($forum_sub2[$forum_data[$cat_id][$j][forum_id]],$forum_sub,$forum_sub2); 
         } 
替換成

代碼: 選擇全部

		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); 
			}
		}

尋找\r

代碼: 選擇全部

function sub_search($id,$forum_sub,$forum_sub2) 
{ 
   if ( count($forum_sub[$id]) > 0 ) 
   { 
      $list= implode(' ', $forum_sub[$id]); 
      $list.=sub_search($forum_sub2[$id],$forum_sub,$forum_sub2); 
   } 
   return $list; 
} 
替換成

代碼: 選擇全部

function sub_search($id,$forum_sub,$forum_sub2) 
{ 
	if ( count($forum_sub[$id]) > 0 ) 
	{
		$list="";
		for($jj=0;$jj<count($forum_sub[$id]);$jj++)
		{
			$list.= $forum_sub[$id][$jj];
			$list.=sub_search($forum_sub2[$id][$jj],$forum_sub,$forum_sub2);
		}
	}
	return $list; 
} 
打開admin/admin_forums.php

尋找\r

代碼: 選擇全部

$forum_sub2[$row['forum_sub']]=$row[forum_id];
改成

代碼: 選擇全部

$forum_sub2[$row['forum_sub']][]=$row[forum_id];

尋找\r

代碼: 選擇全部

         if ( count($forum_sub[$forum_data[$cat_id][$j][forum_id]]) > 0 ) 
         { 
            $sub_list.= implode(' ', $forum_sub[$forum_data[$cat_id][$j][forum_id]]); 
            $sub_list.=sub_search($forum_sub2[$forum_data[$cat_id][$j][forum_id]],$forum_sub,$forum_sub2); 
         } 
替換成

代碼: 選擇全部

			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); 
				}
			}

[建議] 修正後, 升級版本

發表於 : 2005-07-12 19:32
心靈捕手
To ETERNAL:

提供您幾點修正建議:
  1. 在 viewforum_body.tpl 可以" 小修正" 如下:

    代碼: 選擇全部

    #
    #-----[ Find ]-----
    #
    {sub_forum.forumrow.FORUM_DESC}
    
    #
    #-----[ Replace With ]-----
    #
    {sub_forum.forumrow.FORUM_DESC}<br />{sub_forum.forumrow.FORUM_NAME_SUB}
    
    或者

    代碼: 選擇全部

    #
    #-----[ Find ]-----
    #
    {sub_forum.forumrow.L_MODERATOR} {sub_forum.forumrow.MODERATORS}
    
    #
    #-----[ Replace With ]-----
    #
    {sub_forum.forumrow.L_MODERATOR} {sub_forum.forumrow.MODERATORS}<br />{sub_forum.forumrow.FORUM_NAME_SUB}
    
  2. 在原始的安裝說明當中, 關於 admin/admin_forums.php 後半段的建議修改, 可能有些錯誤, 容易造成誤解的地方; 由於之前, 我曾經建議您增加此段的建議修改, 所以, 我根據個人的安裝經驗, 將此處的修改, 稍加整理如下, 希望能夠提供您做修正的參考.
    http://phpbb-tw.net/phpbb/viewtopic.php?p=201125#201125
  3. 在原始的安裝說明當中, 發現您已經將這個欄位( main_sub), 增加進去 admin/admin_forums.php 當中
    如果網友照著修改的話, 恐怕會出現錯誤.
    http://phpbb-tw.net/phpbb/viewtopic.php?p=201966#201966

    因此, 建議您:
    將之後討論, 子版面跟主版的主題與文章數一起計算, 的相關修改\r
    http://bbs.2233.idv.tw/viewtopic.php?t=18931
    http://phpbb-tw.net/phpbb/viewtopic.php?t=36528
    全部整合進此一外掛後, 升級此版外掛.

發表於 : 2005-07-12 22:44
ETERNAL
恩 我把修正過程都整理起來重新發布v1.1了 ;-)
謝謝你的協助

發表於 : 2005-07-13 00:55
心靈捕手
ETERNAL 寫:恩 我把修正過程都整理起來重新發布v1.1了 ;-)
謝謝你的協助
您的動作真是又快又準啊! :-D

詳細比對您的 v1.1 後, 發現可能還有需要稍微修正的地方, 提供您參考:
  • 打開 viewforum_body.tpl
    #
    #-----[ Find ]-----
    #
    {sub_forum.forumrow.FORUM_DESC}<br />{sub_forum.forumrow.FORUM_NAME_SUB}

    #
    #-----[ Replace With ]-----
    #
    {sub_forum.forumrow.FORUM_DESC}<br />{sub_forum.forumrow.FORUM_NAME_SUB}<br />
  • 另外, 謝謝您願意參考我關於 admin/admin_forums.php 後半段的建議修改,
    不過, 因為加入了這個欄位( main_sub), 所以必須做一些修正:
    #
    #-----[ Open ]-----
    #
    admin/admin_forums.php 後半段的建議修改步驟A

    #
    #-----[ Find ]-----
    #
    ,forum_sub,sort_sub

    #
    #-----[ Replace With ]-----
    #
    ,forum_sub,sort_sub,main_sub

    #
    #-----[ Find ]-----
    # ps. 此處, 我以為您原本的語法, 可能有誤, 需要修正.\r
    .",". intval($HTTP_POST_VARS['prune_enable'])

    #
    #-----[ Replace With ]-----
    #
    ,". intval($HTTP_POST_VARS['prune_enable'])

    #
    #-----[ Find ]-----
    #
    . ", " .$forum_sub.",".$sort_sub.","

    #
    #-----[ Replace With ]-----
    #
    , " .$forum_sub.",".$sort_sub.",".$main_sub."

發表於 : 2005-07-13 12:27
心靈捕手
To ETERNAL:

又發現 v1.1 二個錯誤!
( 抱歉! 請原諒我的" 吃飽沒事幹") :mrgreen:
  1. 會不會是因為您在 index.php 多了一道手續?
    =============打開 index.php============
    找到===================
    default:
    $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id

    改成===============
    default:
    $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id,substring(pt.topic_title,1,18) as topic_title
    而造成進入首頁時, 出現了錯誤訊息!

    代碼: 選擇全部

    一般錯誤 
      
    Could not query forums information
    
    DEBUG MODE
    
    SQL Error : 1109 Unknown table 'pt' in field list
    
    SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id,substring(pt.topic_title,1,18) as topic_title FROM ((( phpbb_forums f LEFT JOIN phpbb_posts p ON p.post_id = f.forum_last_post_id ) LEFT JOIN phpbb_topics t ON t.topic_id = p.topic_id ) LEFT JOIN phpbb_users u ON u.user_id = p.poster_id ) ORDER BY f.cat_id, f.forum_order
    
    Line : 275
    File : index.php 
     
    
    我查看我原始的附加安裝紀錄, 並無此動作, 是否可以省略呢?
  2. 其次, 原先討論" 子版面跟主版的主題與文章數一起計算" 時,
    已經成功將它顯示在首頁( index.php);
    但是, 在 viewforum.php 部分, 則尚未完成.
    Bingo!第一個問題是一樣的想法,已經由ETERNAL大的文章解決。
    不過只是把所有子板+主板文章數,顯示在主板,還是沒辦法達到
    像我最先描述的,每個子版面以累加的方式顯示文章數。
    Source: http://phpbb-tw.net/phpbb/viewtopic.php?p=201690#201690

    今天上午, 重新以此外掛 v1.1 安裝時, 卻發現您可能已經有加入這部份的修改?
    if ( $forum_main[$forum_id]['forum_last_post_id'] )
    {
    $last_post_time = create_date($board_config['default_dateformat'], $forum_main[$forum_id]['post_time'], $board_config['board_timezone']);

    $last_post = '<table width="100%" align="center"><tr><td align="right"><span class="genmed"><a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $forum_main[$forum_id]['forum_last_post_id']) . '#' . $forum_main[$forum_id]['forum_last_post_id'] . '"> '.$forum_main[$forum_id]['topic_title'].' </a>'.'<br />'.$last_post_time . '<br />'.'by ';
    $last_post .= ( $forum_main[$forum_id]['user_id'] == ANONYMOUS ) ? ( ($forum_main[$forum_id]['post_username'] != '' ) ? $forum_main[$forum_id]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $forum_main[$forum_id]['user_id']) . '">' . $forum_main[$forum_id]['username'] . '</a> </span></td>';
    $last_post .= '<td align="right" valign="middle"><img src="' . $images['icon_latest_reply'] . '" border="0" /></td></tr></table>';
    }
    else
    {
    $last_post = $lang['No_Posts'];
    }
    'POSTS' => $forum_main[$forum_id]['forum_posts'],
    'TOPICS' => $forum_main[$forum_id]['forum_topics'],
    因為, 我發現您已經用\r

    代碼: 選擇全部

    $forum_main[$forum_id]
    
    取代了原先的

    代碼: 選擇全部

    $forum_data[$j]
    
    但是, 我安裝後, 在子版面的" 主題", "文章"數, 並無法顯示.

    我猜想:
    您可能是忽略了" $forum_main" 的定義?

發表於 : 2005-07-13 13:31
ETERNAL
謝謝你的提醒

1.viewforum_body.tpl 裡面加上<br />
2.admin_forums.php 這部分也改正了
3.index.php地方漏寫了一個地方\r
找到===================
FROM (( " . FORUMS_TABLE . " f
改成===============
FROM ((( " . FORUMS_TABLE . " f
找到===================
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
後面加上===================
LEFT JOIN " . TOPICS_TABLE . " pt ON pt.topic_id = p.topic_id )

4.那是我人為疏失把viewforum.php跟index.php安裝說明搞混了,還沒辦法計算文章數量拉 :mrgreen: