woff 發表於 2011-4-8 19:29:19

論壇版塊直排系統 v2.0 For DZ7.x(修正版 IP Banned )

本版本開始需在PHP5或更新的環境才可以運行。
本插件安裝需要有一定php的知識,新手有一定機率造成不明錯誤的情況。安裝前建議先備份一下。


本版本開始需在PHP5或更新的環境才可以運行。
界面走位等問題可能是由於界面風格設計的問題
首先上載文件

7.1&7.2: 找 include/index_classics.inc.php

這部份是變更用來讀取版區列表資料的代碼 , 方法是在上面加入新的代碼 及以If-Else 分開處理兩種不同的顯示模式
      $sql = !empty($accessmasks) ?
                              "SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, f.forumcolumns, f.simple, ff.description, ff.moderators, ff.icon, ff.viewperm, ff.redirect, a.allowview FROM {$tablepre}forums f
                                        LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid
                                        LEFT JOIN {$tablepre}access a ON a.uid='$discuz_uid' AND a.fid=f.fid
                                        WHERE f.status='1' ORDER BY f.type, f.displayorder"
                              : "SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, f.forumcolumns, f.simple, ff.description, ff.moderators, ff.icon, ff.viewperm, ff.redirect FROM {$tablepre}forums f
                                        LEFT JOIN {$tablepre}forumfields ff USING(fid)
                                        WHERE f.status='1' ORDER BY f.type, f.displayorder";


上加

它載入直排的Class文件 及建立物件
以Try-catch方式 確保不會因錯誤而出現PHP上的錯誤
// StraightDisplay Start
require_once DISCUZ_ROOT.'./plugins/straightdisplay/straightdisplay.class.php';
$sd = StraightDisplay::getInstance();
try{
      if(file_exists('./forumdata/cache/plugin_straightdisplay.php')){ //檢查插件設定檔
                include_once './forumdata/cache/plugin_straightdisplay.php';
      }else{
                throw new StraightDisplayException('找不到插件設定檔,請進行更新緩存或論壇管理中心確保插件已經開啟。');
      }

      $sd->setConfig($_DPLUGIN['straightdisplay']['vars']);
      if(!isset($_DCACHE['settings']['straightdisplayConfig'])){      //檢查版區顯示設定
                throw new StraightDisplayException('找不到版區顯示設定,請進行更新緩存或重新安裝。');
      }
      $sd->setDisplayConfig( unserialize($_DCACHE['settings']['straightdisplayConfig']) ); //套用版區顯示設定
}catch(StraightDisplayException $e ){
      StraightDisplayException::ExceptionHandler($e); //顯示錯誤訊息
}


if($sd->CheckViewType()){
         //目前以直排模式顯示
      $sd->registerPlugin(array('StraightDisplayUserDragPlugin','init'),'BeforeDispatch');//載入直排的其他插件
      $data = $sd->dispatch();      //讀取所有資料         
      list($group_list,$forumlist,$threads,$posts,$todayposts) = $data;
}else{
// StraightDisplay End 以下為 本來的顯示模式




      if(isset($catlist) && $catlist['forumscount']) {
                $catlist['fid'] = 0;
                $catlist['type'] = 'group';
                $catlist['name'] = $bbname;
                $catlist['collapseimg'] = 'collapsed_no.gif';
      } else {
                unset($catlist);
      }


下加
} // Add by StraightDisplay



界面顯示方面
找 discuz.htm (每個風格中有discuz.htm的 都要修改)/templates/*/discuz.htm

<!--{loop $catlist $key $cat}-->
      <!--{if $cat['forumscount']}-->
                <div class="mainbox list">
                        <span class="headactions">


上加
<!--{if empty($gid) && $sd->CheckViewType()}-->
{template forumlist_straightdisplay}
<!--{/if}-->







互換功能 顯示位置(如需要提供 顯示模式的轉換 , 可參考以下代碼 , 一般情形下這部份可以不用理會) (請確保你知道自己在做什麼)

首頁使用 (discuz.htm)
<!--{if empty($gid) && $sd->CheckViewType()}-->
<a href="index.php?viewtype=default">變更為普通顯示</a>
<!--{else}-->
<a href="index.php?viewtype=straightdisplay">變更為直排顯示</a>
<!--{/if}-->



其他頁面使用 (包括header.htm 或 footer.htm)
<!--{eval require_once DISCUZ_ROOT.'./plugins/straightdisplay/straightdisplay.class.php';}-->
<!--{eval $sd = StraightDisplay::getInstance();}-->
<!--{if empty($gid) && $sd->CheckViewType()}-->
<a href="index.php?viewtype=default">變更為普通顯示</a>
<!--{else}-->
<a href="index.php?viewtype=straightdisplay">變更為直排顯示</a>
<!--{/if}-->



7.1 & 7.2 :
到插件管理安裝

7.0:
7.0安裝 方法:
導入插件數據 : http://www.alan888.com/Discuz/vi ... p;page=2#pid1428092
執行Sql:

INSERT INTO `cdb_settings` (`variable` ,`value`)VALUES ('straightdisplayConfig', '');
ALTER TABLE `cdb_memberfields` ADD straightdisplayConfig TEXT;


反安裝: DELETE FROM `cdb_settings` WHERE `variable` = 'straightdisplayConfig' LIMIT 1;
ALTER TABLE cdb_memberfields DROP straightdisplayConfig;





歡迎提供演示圖片
請測試一下,好了才正式使用。



新功能 :
修正積了很久的問題
修復 子版的開關
可以變更直排可顯示的行數
加入熱門及新版塊標示
管理頁面Drag and Drop化 , 可設定版區的上下位置
可以隱藏分區

測試中的新功能 :
會員可自定義 頁面版塊位置 (有開關) (不建議開啟)

6.0 : http://www.alan888.com/Discuz/thread-177206-1-1.html




錯誤解決方法:
找不到版區顯示設定,請進行更新緩存或重新安裝。


請到管理系統設定版區位置,更新緩存。


如無法顯示版區可試試用測試檔案 檢查 安裝是否正確 ( 不包括人手修改的代碼
http://www.alan888.com/Discuz/vi ... ;page=12#pid1436106



直排風格製作圖片活動教學
找到
\images\forum 目錄下的圖檔
把圖檔改成 gidX.jpg 上傳即可
gidX.jpg X 代表的是板塊圖片

加新帖   NEW
跟熱門   HOT
方法!!


請找到(不需全部一樣。。。只要紅字 )
<IMG hspace=5 src="images/home/bullet_blue.gif" align=absMiddle vspace=11><a href="forumdisplay.php?fid=$forum" title="今日帖數:$forum {LF}主題數目:$forum {LF}帖子數目:$forum" class=orangelink>$forum</a>


有紅色字的那行   在這行下面添加
<!--{if $forum >= 10}-->
<img src="images/home/hot.gif" alt="總共帖數:$forum">
<!--{elseif $forum >0 &&$forum <10}-->
<span class="todayposts"><img src="images/home/new.gif" alt="此版今日有$forum帖" width="21" height="9" border="0"></span>
<!--{/if}-->

這樣就可以了

紅色熱門的判斷       > 10   大表   如果當日文章大於10顯示熱門hot
紫色 是有無新帖的判斷如果文章有0篇以上>0而且 少於 10篇就顯示new (如果大於10篇就是顯示 hot 如果想要兩個都顯示就去掉&&$forum <10)



下面是以寬度 190px 做的,字元大小是 1.1em
頁: [1]
查看完整版本: 論壇版塊直排系統 v2.0 For DZ7.x(修正版 IP Banned )