本帖最后由 nm512008 于 2011-9-4 12:55 编辑
先看演示再说话 http://www.0970a.com
这个美化很多人都在找,但是网上大多给的是懒人包,这样修改了模板的同志就不知道怎么办好了。经过我认真琢磨,终于搞定手动修改办法。现在放出来与大家共享。
首先将我提供的附件内的common.css文件放在template/风格文件夹/common文件夹内 如果你的风格里已经有这个文件了,那么请不要修改,用文本对比工具进行修改,或者将此文件另命它名,但是相应的你要在discuz.htm文件内修改CSS引用。
第二步骤,打开forum.php,在 $navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['forum']);
语句下一行加入以下代码:
- //帖子调用开始
- $hack_cut_str =26; // 这里修改标题长度
- $fids = array();
- if (file_exists("./data/cache/cache_forums.php")){
- require_once "./data/cache/cache_forums.php";
- if (is_array($_DCACHE['forums'])){
- foreach ($_DCACHE['forums'] as $k => $v){
- if (!strstr(',sub,forum,',','.$v['type'].',')) continue;
- $fids[$k] = 7; // 这里是第一处调用条数需要和后面的设置一样。
- }
- }
- }
- if (count($fids) < 1){
- $query = DB::query("SELECT fid FROM ".DB::table('forum_forum')." WHERE type='forum' OR type='sub'");
- while ($row = DB::fetch($query)){
- $fids[$row['fid']] = 7; // 这里是第二处调用条数需要和前面的设置一样。
- }
- }
- $limit_counts = 0;
- foreach ($fids as $k => $v){
- $sql .= "(SELECT t.*, f.name FROM ".DB::table('forum_thread')." t LEFT JOIN ".DB::table('forum_forum')." f ON f.fid = t.fid WHERE t.fid='$k' AND t.closed NOT LIKE 'moved|%' AND t.displayorder>=0 ORDER BY t.dateline DESC LIMIT $v) UNION ";
- }
- if ($sql){
- $sql = substr($sql,0,strlen($sql)-6);
- }
- $query = DB::query($sql);
- while ($row = DB::fetch($query)){
- $row['view_subject'] = cutstr($row['subject'],$hack_cut_str);
- $row['date']= gmdate('m-d/H:i', $row['dateline'] + $_G['setting']['timeoffset'] * 3600);
- if($row['highlight']) {
- $string = sprintf('%02d', $row['highlight']);
- $stylestr = sprintf('%03b', $string[0]);
- $row['highlight'] = 'style="';
- $row['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
- $row['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
- $row['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
- $row['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
- $row['highlight'] .= '"';
- } else {
- $row['highlight'] = '';
- }
- ${'new_no'.$row['fid'].'_threadlist'}[] = $row;
- }
- //帖子调用结束
复制代码 代码不解释,因为有注释,如果看不懂,可以回炉重造了。
保存并上传覆盖forum.php(安全起见,在本地所有文件修改完毕后一同上传)
第三步,找到风格文件下的discuz.htm 打开查找 <!--{loop $catlist $key $cat}-->和 <!--{hook/index_bottom}--> 中间内容省略,全选<!--{loop $catlist $key $cat}-->到 <!--{hook/index_bottom}--> 之间的内容,用以下代码覆盖即可。
上面的代码也不解释,一般的模板在这个位置的覆盖都不会影响问题。如果要在这里继续美化,能修改的地方就那么几处,
扫一眼就明白了,好了保存discuz.htm,上传覆盖。
最后就是listbg_li.gif,找到你的风格图片文件夹,上传即可,如果你连风格文件夹的话,那么你有两种选择,要么回炉重造,要么在我上面的代码中将背景图片地址改为绝对地址。如果你连在哪改绝对地址都不知道的话,强烈建议回炉重造。附件是几个用到的文件,懒人包就不上了,很简单,查找替换就完事,自己动手吧。
效果图:
附件:(附件不值1金币,但是你说我上面写的这些值不值得1金币呢)
重要说明:
修改前请备份,不然后果自负。看帖不回复的mjj
|