|  | 
 
 | 插件名稱:【超級美化】AL8 首頁六格顯示 for Discuz 6.0.0 適合版本:Discuz 6.0.0
 原作者: alan888
 出處:http://www.alan888.com/Discuz/vi ... 7&highlight=al8
 DZ 5.0補增益版:By djkevin (在AL8首頁4格的個人資料加入個人圖像 For 5.0)
 DZ 5.5修改整理:By 范倫鐵諾(修正5.5與5.0不同處並整理)
 DZ 5.5超級美化:By 范倫鐵諾(2007.04.02完成)
 DZ 6.0修改美化:By 范倫鐵諾(2007.09.30完成)
 演示:http://www.k-song.com/index.php
 數據庫升級:無
 修改模板:1個
 修改PHP:8個
 加入文件: foruminfo.htm 及圖片(附件1&2)
 修改文件:
 /index.php
 /logging.php
 /topicadmin.php
 /register.php
 /include/newthread.inc.php
 /include/newreply.inc.php
 /include/counter.inc.php
 /include/cache.func.php
 /templates/default/discuz.htm
 
 解說:
 
 因為6.0的改動有滿多地方的,所以自身並未急著於第一時間在
 
 官方釋出DZ 6.0正式版時同時間進行升級,直到近日有需多站
 
 長友人詢問DZ 6.0的手動方式修正,加上研究6.0有一段時間後,
 
 這才開始修改,這次與5.5版的修正方式並無太大差異,除了細部
 
 較不同的字串外,對模板也稍微進行了美化(增加部份圖及格線調整)
 
 ,最後,也是一樣的原因,這是由AL8衍生的六格,短期內只會分享
 
 在AL8,希望各位會喜歡這插件。題外話一下,目前正整合更新的首頁
 
 N格,會做更大幅度的修正,預計10月底釋出,有相關建議的歡迎指教
 
 提出。
 
 By  【K歌黨】系統顧問暨管理顧問@范倫鐵諾
 
 注意:
 
 『1』此版安裝程繁雜,安裝前請記得備份,初學者需再詳細確認步驟。
 
 『2』修正之前熱門精華無法自動更新問題。
 
 『3』盼站長注意各論壇編碼,勿單純以筆記本做編碼存檔動作,修正過的請善用ConvertZ軟體轉碼後再上傳。
 
 『4』此版本小弟自我測試無錯誤,若有因為過程上造成使用者的問題或其它損害,小弟並不負責任何責任
 
 『5』歡迎指教。
 
 說明:
 
 1. 修改 include/cache.func.php
 修改完成此文件後請即時到後台→更新緩存
 找
 更換為複製代碼'medals'        => array('medals'),
再找複製代碼  'medals'        => array('medals'),
                'newtopic'      => array('newtopic'),
                'newreply'      => array('newreply'),
                'topdigest'     => array('topdigest'),
在下面加上 (注意填妥"填上不需要顯示回帖區域的 fid 編號, 以逗號作分格, 最後一個不用加上逗號")複製代碼case 'medals':
                        $table = 'medals';
                        $cols = 'medalid, name, image';
                        $c;
                        break;
填上不需要顯示帖子區域
 由於使用快取檔型式, 故某些私密區不能判斷會員權限來顯示發帖及回帖, 所以要先修改及取代下紅字部份 "填上不需要顯示帖子區域的 fid 編號, 以逗號作分格, 最後一個不用加上逗號" 部份, 例如希望不顯示 fid 1,3,5 便填上 "$fids="1,3,5";"
 如果希望全部顯示者, 請將下面三段的 NOT IN ($fids) (藍色字顯示部份)刪除, 否則會出現數據錯誤的顯示
 找複製代碼                case newtopic:
                        $table = 'threads t';
                        $cols = "t.tid, t.typeid, t.subject, t.author, t.dateline, t.views, t.replies, t.lastpost, t.lastposter, t.highlight, f.name, tt.name AS idname";
                        $fids="填上不需要顯示回帖區域的 fid 編號, 以逗號作分格, 最後一個不用加上逗號";
                        $c;
                        break;
                case newreply:
                        $table = 'threads t';
                        $cols = "t.tid, t.typeid, t.subject, t.author, t.dateline, t.views, t.replies, t.lastpost, t.lastposter, t.highlight, f.name, tt.name AS idname";
                        $fids="填上不需要顯示回帖區域的 fid 編號, 以逗號作分格, 最後一個不用加上逗號";
                        $c;
                        break;
                case topdigest:
                        $table = 'threads t';
                        $cols = "t.tid, t.typeid, t.subject, t.author, t.dateline, t.views, t.replies, t.lastpost, t.lastposter, t.highlight, f.name, tt.name AS idname";
                        $fids="填上不需要顯示回帖區域的 fid 編號, 以逗號作分格, 最後一個不用加上逗號";
                        $c;
                        break;
                 case todayvisit:
                        $table = 'members';
                        $cols = "COUNT(*)";
                        $datecut = time() - (3600 * 24);
                        $c;
                        break;
在下面加上複製代碼$GLOBALS['totalmembers'] = $data['totalmembers'] = $db->result($query, 0);
找複製代碼                        $datecut = time() - (3600 * 24);
                        $query = $db->query("SELECT COUNT(*) FROM {$tablepre}members WHERE regdate>='$datecut'");
                        $GLOBALS['todaynewmems'] = $data['todaynewmems'] = $db->result($query, 0);
上面加上複製代碼case 'forumlinks':
                        global $forumlinkstatus;
2. 修改 include/newthread.inc.php複製代碼                case 'newreply':
                $hack_cut_str = 36;
                $new_reply_threadlist = array();
                $rthread = array();
                $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
                while($rthread = $db->fetch_array($query)){
                $rthread['forumname'] = $rthread['name'];
                $rthread['view_subject'] = $rthread[idname] ? cutstr( "$rthread[idname] $rthread[subject]",$hack_cut_str) : cutstr($rthread['subject'],$hack_cut_str);
                $rthread['subject'] = cutstr($rthread['subject'],46);
                $rthread['date']= gmdate('Y-n-j G:i', $rthread['dateline'] + 8 * 3600);
                $rthread['lastreplytime']= gmdate('Y-n-j G:i', $rthread['lastpost'] + 8 * 3600);
                if($rthread['highlight']) { 
                $string = sprintf('%02d', $rthread['highlight']); 
                $stylestr = sprintf('%03b', $string[0]); 
                $rthread['highlight'] = 'style="'; 
                $rthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : ''; 
                $rthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : ''; 
                $rthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : ''; 
                $rthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : ''; 
                $rthread['highlight'] .= '"'; 
                } else { 
                $rthread['highlight'] = ''; 
                }
                $new_reply_threadlist = "<a href="redirect.php?tid=$rthread[tid]&goto=lastpost#lastpost" title="論壇rthread[forumname]\r\n標題rthread[subject]\r\n作者rthread[author]\r\n發表時間rthread[date]\r\n瀏覽次數rthread[views] 次\r\n回覆rthread[replies] 次\r\n最後回覆rthread[lastreplytime]\r\n最後發表rthread[lastposter]" $rthread[highlight]>$rthread[view_subject]</a>
";
                $data[] = array('content' => $new_reply_threadlist);
                        }
                break;
                case 'newtopic':
                $hack_cut_str = 36;
                $new_post_threadlist = array();
                $nthread = array();
                $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
                while($nthread = $db->fetch_array($query)){
                $nthread['forumname'] = $nthread['name'];
                $nthread['view_subject'] = $nthread[idname] ? cutstr( "$nthread[idname] $nthread[subject]",$hack_cut_str) : cutstr($nthread['subject'],$hack_cut_str);
                $nthread['subject'] = cutstr($nthread['subject'],46);
                $nthread['date']= gmdate('Y-n-j G:i', $nthread['dateline'] + 8 * 3600);
                $nthread['lastreplytime']= gmdate('Y-n-j G:i', $nthread[lastpost] + 8 * 3600);
                if($nthread['highlight']) { 
                $string = sprintf('%02d', $nthread['highlight']); 
                $stylestr = sprintf('%03b', $string[0]); 
                $nthread['highlight'] = 'style="'; 
                $nthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : ''; 
                $nthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : ''; 
                $nthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : ''; 
                $nthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : ''; 
                $nthread['highlight'] .= '"'; 
                } else { 
                $nthread['highlight'] = ''; 
                }
        $new_post_threadlist = $nthread[replies] ? "<a href="redirect.php?tid=$nthread[tid]&goto=lastpost#lastpost" title="論壇nthread[forumname]\r\n標題nthread[subject]\r\n作者nthread[author]\r\n發表時間nthread[date]\r\n瀏覽次數nthread[views] 次 \r\n回覆nthread[replies] 次\r\n最後回覆nthread[lastreplytime]\r\n最後發表nthread[lastposter]" $nthread[highlight] >$nthread[view_subject]</a>
" : "<a href="redirect.php?tid=$nthread[tid]&goto=lastpost#lastpost" title="論壇nthread[forumname]\r\n標題nthread[subject]\r\n作者nthread[author]\r\n發表時間nthread[date]\r\n瀏覽次數nthread[views] 次\r\n回覆: 暫時沒有回覆" $nthread[highlight] >$nthread[view_subject]</a>
";
                $data[] = array('content' => $new_post_threadlist);
                        }
                break;
case 'topdigest':
                $hack_cut_str = 75;
                $top_digest_threadlist = array();
                $rthread = array();
                $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
                while($rthread = $db->fetch_array($query)){
                $rthread['forumname'] = $rthread['name'];
                $rthread['view_subject'] = $rthread[idname] ? cutstr( "$rthread[idname] $rthread[subject]",$hack_cut_str) : cutstr($rthread['subject'],$hack_cut_str);
                $rthread['subject'] = cutstr($rthread['subject'],46);
                $rthread['date']= gmdate('Y-n-j G:i', $rthread['dateline'] + 8 * 3600);
                $rthread['lastreplytime']= gmdate('Y-n-j G:i', $rthread['lastpost'] + 8 * 3600);
                if($rthread['highlight']) { 
                $string = sprintf('%02d', $rthread['highlight']); 
                $stylestr = sprintf('%03b', $string[0]); 
                $rthread['highlight'] = 'style="'; 
                $rthread['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : ''; 
                $rthread['highlight'] .= $stylestr[1] ? 'font-style: italic;' : ''; 
                $rthread['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : ''; 
                $rthread['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : ''; 
                $rthread['highlight'] .= '"'; 
                } else { 
                $rthread['highlight'] = ''; 
                }
                $top_digest_threadlist = "<a href="redirect.php?tid=$rthread[tid]&goto=lastpost#lastpost" title="論壇rthread[forumname]\r\n標題rthread[subject]\r\n作者rthread[author]\r\n發表時間rthread[date]\r\n瀏覽次數rthread[views] 次\r\n回覆rthread[replies] 次\r\n最後回覆rthread[lastreplytime]\r\n最後發表rthread[lastposter]" $rthread[highlight]>$rthread[view_subject]</a>
";
                $data[] = array('content' => $top_digest_threadlist);
                        }
                break;
找
 在上面加上複製代碼showmessage('post_newthread_succeed', "viewthread.php?tid=$tid&extra=$extra".(!empty($frombbs) ? "&frombbs=$frombbs" : ''));
3. 修改 include/newreply.inc.php複製代碼require DISCUZ_ROOT.'./include/cache.func.php';
        updatecache('newtopic');
找
 在上面加上複製代碼showmessage($replymessage, "viewthread.php?tid=$tid&pid=$pid&page=".(@ceil(($thread['special'] ? $thread['replies'] + 1 thread['replies'] + 2) / $ppp))."&extra=$extra#pid$pid");
4. 修改 include/counter.inc.php複製代碼require DISCUZ_ROOT.'./include/cache.func.php';
updatecache(array('newreply', 'newtopic'));
找
 更換為複製代碼if(!$sessionexists) {
        if(strpos($visitor['agent'], 'Netscape')) {
                $visitor['browser'] = 'Netscape';
        } elseif(strpos($visitor['agent'], 'Lynx')) {
                $visitor['browser'] = 'Lynx';
        } elseif(strpos($visitor['agent'], 'Opera')) {
                $visitor['browser'] = 'Opera';
        } elseif(strpos($visitor['agent'], 'Konqueror')) {
                $visitor['browser'] = 'Konqueror';
        } elseif(strpos($visitor['agent'], 'MSIE')) {
                $visitor['browser'] = 'MSIE';
        } elseif(substr($visitor['agent'], 0, 7) == 'Mozilla') {
                $visitor['browser'] = 'Mozilla';
        } else {
                $visitor['browser'] = 'Other';
        }
        if(strpos($visitor['agent'], 'Win')) {
                $visitor['os'] = 'Windows';
        } elseif(strpos($visitor['agent'], 'Mac')) {
                $visitor['os'] = 'Mac';
        } elseif(strpos($visitor['agent'], 'Linux')) {
                $visitor['os'] = 'Linux';
        } elseif(strpos($visitor['agent'], 'FreeBSD')) {
                $visitor['os'] = 'FreeBSD';
        } elseif(strpos($visitor['agent'], 'SunOS')) {
                $visitor['os'] = 'SunOS';
        } elseif(strpos($visitor['agent'], 'OS/2')) {
                $visitor['os'] = 'OS/2';
        } elseif(strpos($visitor['agent'], 'AIX')) {
                $visitor['os'] = 'AIX';
        } elseif(preg_match("/(Bot|Crawl|Spider)/i", $visitor['agent'])) {
                $visitor['os'] = 'Spiders';
        } else {
                $visitor['os'] = 'Other';
5. 修改 topicadmin.php複製代碼if(!$sessionexists || $discuz_uid) {
if(strpos($visitor['agent'], "MSIE 7.0")) { 
                $visitor_browser = "Internet Explorer 7.0";
                $visitor['browser'] = 'MSIE';
        } elseif(strpos($visitor['agent'], "MSIE 6.0")) { 
                $visitor_browser = "Internet Explorer 6.0";
                $visitor['browser'] = 'MSIE';
        } elseif(strpos($visitor['agent'], "MSIE 5.5")) { 
                $visitor_browser = "Internet Explorer 5.5"; 
                $visitor['browser'] = 'MSIE';
        } elseif(strpos($visitor['agent'], "MSIE 5.0")) { 
                $visitor_browser = "Internet Explorer 5.0"; 
                $visitor['browser'] = 'MSIE';
        } elseif(strpos($visitor['agent'], "MSIE 4.01")) { 
                $visitor_browser = "Internet Explorer 4.01"; 
                $visitor['browser'] = 'MSIE';
        } elseif(strpos($visitor['agent'], "Netscape")) { 
                $visitor_browser = "Netscape"; 
                $visitor['browser'] = 'Netscape';
        } elseif(strpos($visitor['agent'], "Lynx")) { 
                $visitor_browser = "Lynx"; 
                $visitor['browser'] = 'Lynx';
        } elseif(strpos($visitor['agent'], "Opera")) { 
                $visitor_browser = "Opera"; 
                $visitor['browser'] = 'Opera';
        } elseif(strpos($visitor['agent'], "Konqueror")) { 
                $visitor_browser = "Konqueror"; 
                $visitor['browser'] = 'Konqueror';
        } elseif(strpos($visitor['agent'], "Firefox")) { 
                $visitor_browser = "Firefox";
                $visitor['browser'] = 'Mozilla';
        } elseif(strpos($visitor['agent'], "Mozilla/5.0")) { 
                $visitor_browser = "Mozilla";
                $visitor['browser'] = 'Mozilla';
        } else { 
                $visitor_browser = "其它"; 
                $visitor['browser'] = 'Other';
        } 
        if(strpos($visitor['agent'], "NT 5.1")) {
        if(strpos($visitor['agent'], "SV1")){ 
                $visitor_os = "Windows XP SP2"; 
                $visitor['os'] = 'Windows';
        }else{ 
                $visitor_os = "Windows XP"; 
                $visitor['os'] = 'Windows';
        }
        }elseif(strpos($visitor['agent'], "NT 6.0")) { 
                $visitor_os = "Win Vista"; 
                $visitor['os'] = 'Windows';
        }elseif(strpos($visitor['agent'], "NT 5.2")) { 
                $visitor_os = "Windows Server 2003"; 
                $visitor['os'] = 'Windows';
        }elseif(strpos($visitor['agent'], "NT 5")) { 
                $visitor_os = "Windows 2000"; 
                $visitor['os'] = 'Windows';
        } elseif(strpos($visitor['agent'], "4.9")) { 
                $visitor_os = "Windows ME";
                $visitor['os'] = 'Windows'; 
        } elseif(strpos($visitor['agent'], "NT 4")) { 
                $visitor_os = "Windows NT 4.0"; 
                $visitor['os'] = 'Windows';
        } elseif(strpos($visitor['agent'], "98")) { 
                $visitor_os = "Windows 98"; 
                $visitor['os'] = 'Windows';
        } elseif(strpos($visitor['agent'], "95")) { 
                $visitor_os = "Windows 95";
                $visitor['os'] = 'Windows'; 
        } elseif(strpos($visitor['agent'], "Mac")) { 
                $visitor_os = "Mac"; 
                $visitor['os'] = 'Mac';
        } elseif(strpos($visitor['agent'], "Linux")) { 
                $visitor_os = "Linux"; 
                $visitor['os'] = 'Linux';
        } elseif(strpos($visitor['agent'], "Unix")) { 
                $visitor_os = "Unix"; 
                $visitor['os'] = 'Other'; 
        } elseif(strpos($visitor['agent'], "FreeBSD")) { 
                $visitor_os = "FreeBSD";
                $visitor['os'] = 'FreeBSD'; 
        } elseif(strpos($visitor['agent'], "SunOS")) { 
                $visitor_os = "SunOS"; 
                $visitor['os'] = 'SunOS';
        } elseif(strpos($visitor['agent'], "OS/2")) { 
                $visitor_os = "OS/2"; 
                $visitor['os'] = 'OS/2';
        }elseif(strpos($visitor['agent'], "AIX")) { 
                $visitor_os = "AIX"; 
                $visitor['os'] = 'AIX';
        } elseif(preg_match("/(Bot|Crawl|Spider)/i", $visitor['agent'])) {
                $visitor_os = "Spiders"; 
                $visitor['os'] = 'Spiders';
        } else { 
                $visitor_os = "其他"; 
                $visitor['os'] = 'Other';
        }
找 (第一段約第 15 行那句)
 在下面加上複製代碼require_once DISCUZ_ROOT.'./include/misc.func.php';
找複製代碼require_once DISCUZ_ROOT.'./include/cache.func.php';
在上面加上複製代碼showmessage((isset($resultarray['message']) ? $resultarray['message'] : 'admin_succeed'), $resultarray['redirect']);
6. 修改 logging.php複製代碼 updatecache(array('newreply', 'newtopic', 'topdigest'));
找在下面加上
 7. 修改 index.php複製代碼require_once DISCUZ_ROOT.'./include/cache.func.php';
                                updatecache('todayvisit');
找
 下方加入複製代碼$rsshead = $rssstatus ? ('<link rel="alternate" type="application/rss+xml" title="'.$bbname.'" href="'.$boardurl.'rss.php?auth='.$rssauth."" />\n") : '';
找複製代碼//------------圖像 by keven
        $member_query = $db->query("SELECT * FROM {$tablepre}members m, {$tablepre}memberfields mf
                WHERE m.uid='$discuz_uid' AND mf.uid='$discuz_uid'");
        $member = $db->fetch_array($member_query);
        $member['lastvisit'] = gmdate("$dateformat $timeformat", $member['lastvisit'] + ($timeoffset * 3600));
        $member['usernameenc'] = rawurlencode($member['username']);
        $allowfriendcheck = array($member['allowfriend'] => 'checked');
        $avatypecheck = array($member['avatype'] => 'checked');
if(!$member[avatar]){
        $member[avatar]="images/avatars/noavatar.gif";
}
//-------------圖像 END
在上面加上複製代碼$catlist = $forumlist = $sublist = $pmlist = array();
找複製代碼//-----------hack AL8 Info
if(!$statstatus && $discuz_uid){
require_once DISCUZ_ROOT.'./include/counter.inc.php';
}
require_once DISCUZ_ROOT.'./include/misc.func.php';
$mem_home = convertip($onlineip, $datadir = "./");
@include './forumdata/cache/cache_newtopic.php';
@include './forumdata/cache/cache_newreply.php';
@include './forumdata/cache/cache_topdigest.php';
//-----------hack AL8 Info End
在後面插入9. 修改 register.php複製代碼'forumlinks', 'birthdays', 'supe_updateusers'
找
 在下面加上複製代碼$styleid = $styleid ? $styleid _DCACHE['settings']['styleid'];
找在上面加上複製代碼$datecut = time() - (3600 * 24);
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}members WHERE regdate>='$datecut'");
$todaynewmems = $db->result($query, 0);
8. 修改 discuz 模板複製代碼$_DCACHE['settings']['todaynewmems'] = $todaynewmems;
找
 上面加複製代碼<table summary="HeadBox" class="portalbox" cellpadding="0" cellspacing="1">
        <tr>
        <!--{if $supeitemsstatus || $hottagstatus}-->
 | 
 |