Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 每區獨立設定顯示多少條論壇公告 ( cache 版 )

[复制链接]
別問我是誰 发表于 2006-1-9 07:11:09 | 显示全部楼层 |阅读模式
==========================================================

 若板區置頂太多 可設定顯示一條公告

 若置頂太少 又可設定顯示多幾條公告

 完全讀取 cache 不會增加數據庫查詢

 程式預設為 儲存 cache 十條公告

 則表示每區最多可顯示十條論壇公告 ( 不會有人顯示這麼多掛 ) 

==========================================================

 修改檔案 ( 修改前請先備份 )

include/cache.func.php
admin/forums.inc.php

forumdisplay.php

templates/default/forumdisplay.htm ( 其它風格有這份檔亦要修改 )
templates/default/admincp.lang.php

 ( 完成後緊記 更新緩存 )

==========================================================

 數據庫升級

  1. ALTER TABLE `cdb_forums` ADD `fourmannnum` MEDIUMINT( 8 ) DEFAULT '1' NOT NULL ;
复制代码


==========================================================

include/cache.func.php


  1. $conditions = "LEFT JOIN {$tablepre}members m ON m.username=a.author ORDER BY a.displayorder, a.starttime DESC, a.id DESC LIMIT 1";
复制代码

改為
  1. $conditions = "LEFT JOIN {$tablepre}members m ON m.username=a.author ORDER BY a.displayorder, a.starttime DESC, a.id DESC LIMIT 0, 10";
复制代码

再找
  1.                 case 'announcements_forum':
  2.                         if($data = $db->fetch_array($query)) {
  3.                                 $data['authorid'] = intval($data['authorid']);
  4.                                 $data['message'] = cutstr(strip_tags($data['message']), 18);
  5.                         } else {
  6.                                 $data = array();
  7.                         }
  8.                         break;
复制代码

改為
  1.                 case 'announcements_forum':
  2.                                 while($anndata = $db->fetch_array($query)) {
  3.                                 $anndata['authorid'] = intval($anndata['authorid']);
  4.                                 $anndata['message'] = cutstr(strip_tags($anndata['message']), 30);
  5.                                 $data[] = $anndata;
  6.                         }
  7.                         break;
复制代码


==========================================================

forumdisplay.php


  1. if($page == 1) {
  2.         if($_DCACHE['announcements_forum']) {
  3.                 $announcement = $_DCACHE['announcements_forum'];
  4.                 $announcement['starttime'] = gmdate($dateformat, $announcement['starttime'] + ($timeoffset * 3600));
  5.         } else {
  6.                 $announcement = NULL;
  7.         }       
  8. }
复制代码

改為
  1. if($page == 1) {
  2.                 if($_DCACHE['announcements_forum']) {
  3.         $fourmannnum = $forum['fourmannnum'];
  4.         $announcementnum = 0;
  5.                 foreach($_DCACHE['announcements_forum'] as $announcement) {
  6.         $announcementnum++;
  7.                 if ($announcementnum <= $fourmannnum) {
  8.                 $announcement['starttime'] = gmdate($dateformat, $announcement['starttime'] + ($timeoffset * 3600));
  9.                 $announcement_list[] = $announcement;
  10.                 }
  11.                 }
  12.         } else {
  13.                 $announcement = NULL;
  14.         }       
  15. }
复制代码


==========================================================

templates/default/forumdisplay.htm ( 其它風格有這份檔亦要修改 )


  1. <!--{if $page == 1 && !empty($announcement)}-->
  2.         <tr>
  3.         <td class="altbg2" align="center"><a href="announcement.php?id=$announcement[id]#$announcement[id]" target="_blank"><img src="{IMGDIR}/lock_folder.gif" border="0"></a></td>
  4.         <td class="altbg2" colspan="2" onMouseOver="this.className='altbg1'" onMouseOut="this.className='altbg2'">{lang announcement}: <a href="announcement.php?id=$announcement[id]#$announcement[id]">$announcement[subject]</a></td>
  5.         <td class="altbg1" align="center"><a href="viewpro.php?uid=$announcement[authorid]">$announcement[author]</a><br><span class="smalltxt">$announcement[starttime]</span></td>
  6.         <td class="altbg2" align="center">-</td>
  7.         <td class="altbg1" align="center">-</td>
  8.         <td class="altbg2" align="center">-</td>
  9.         </tr>
  10. <!--{/if}-->
复制代码

改為
  1. <!--{if $page == 1 && count($announcement_list)}-->
  2.         <!--{loop $announcement_list $key $announcement}-->
  3.         <tr>
  4.         <td class="altbg2" align="center"><a href="announcement.php?id=$announcement[id]#$announcement[id]" target="_blank"><img src="{IMGDIR}/lock_folder.gif" border="0"></a></td>
  5.         <td class="altbg2" colspan="2" onMouseOver="this.className='altbg1'" onMouseOut="this.className='altbg2'">{lang announcement}: <a href="announcement.php?id=$announcement[id]#$announcement[id]">$announcement[subject]</a></td>
  6.         <td class="altbg1" align="center"><a href="viewpro.php?uid=$announcement[authorid]">$announcement[author]</a><br><span class="smalltxt">$announcement[starttime]</span></td>
  7.         <td class="altbg2" align="center">-</td>
  8.         <td class="altbg1" align="center">-</td>
  9.         <td class="altbg2" align="center">-</td>
  10.         </tr>
  11.         <!--{/loop}-->  
  12. <!--{/if}-->
复制代码


==========================================================

admin/forums.inc.php


  1.                         showsetting('forums_edit_edit_rules', '', '', '<input type="radio" name="alloweditrulesnew" value="0" '.$checkrules[0].'> '.$lang['forums_edit_edit_rules_html_none'].'<br><input type="radio" name="alloweditrulesnew" value="1" '.$checkrules[1].'> '.$lang['forums_edit_edit_rules_html_no'].'<br><input type="radio" name="alloweditrulesnew" value="2" '.$checkrules[2].'> '.$lang['forums_edit_edit_rules_html_yes']);
复制代码

之下加入
  1.                         showsetting('forums_edit_fourmannnum', 'fourmannnumnew', $forum['fourmannnum'], 'text');
复制代码
再找
  1. alloweditrules='$alloweditrulesnew',
复制代码

後面加入
  1. fourmannnum='$fourmannnumnew',
复制代码

加入完成如下
alloweditrules='$alloweditrulesnew', fourmannnum='$fourmannnumnew',

==========================================================

templates/default/admincp.lang.php


  1.         'forums_edit_edit_rules_html_none' => '不允許版主修改',
复制代码
之下加入
  1.         'forums_edit_fourmannnum' => '公告條數',
  2.         'forums_edit_fourmannnum_comment' => '本版區顯示多少條論壇公告',
复制代码


==========================================================

[ 本帖最后由 別問我是誰 于 2006-1-9 07:35 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
karl907 发表于 2006-1-9 07:20:07 | 显示全部楼层
坐沙發支持!!
回复

使用道具 举报

eghawk 发表于 2006-1-9 07:39:37 | 显示全部楼层
支持
回复

使用道具 举报

紫云杉 发表于 2006-1-9 07:59:17 | 显示全部楼层
不错
回复

使用道具 举报

szqyn 发表于 2006-1-9 08:01:55 | 显示全部楼层
不错
回复

使用道具 举报

547127256 发表于 2006-1-9 09:16:12 | 显示全部楼层
支持了
回复

使用道具 举报

freddy 发表于 2006-1-9 09:28:07 | 显示全部楼层
支持楼主。
回复

使用道具 举报

秋舞叶 发表于 2006-1-9 09:32:55 | 显示全部楼层
实用的很,严重支持
回复

使用道具 举报

linsie 发表于 2006-1-9 11:03:40 | 显示全部楼层
不顶还是人吗 HOHO
回复

使用道具 举报

泡海椒 发表于 2006-1-9 11:09:24 | 显示全部楼层
8错!!!!  太实用了~~~~~

支持ing
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-18 15:01 , Processed in 0.148186 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表