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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

站内附件图片展示 cache + 后台设定 多功能版

[复制链接]
oytktk 发表于 2005-10-10 00:10:45 | 显示全部楼层 |阅读模式
上次看到某论坛里转我的贴子把我的版权删除了..没必要吧?


原创: oytktk

测试: 小 JM (jimmyjimmyqqq) 在这里感谢一下啦.

说明一下:  这个展示的优点在于, 用JS特效使图片不停的滚动..无间隔显示.
不会对论坛服务器造成任何影响,
JS是在客户端运行的,
如果滚动速度很快,
客户端会占一部分CPU资源,如果慢则不会.

功能简介:

1. 后台设置开关;
2. 后台设定图片个数;
3. 后台设定 随机提取图片最新图片
    1). 选最新图片, 首页不加查询;
    2). 选随机图片, 首页增加1个查询;
4. 后台设置图片滚动的速度;


图片演示:





安装方法:


1. 升级数据库

  1. INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('attaopen', '1');
  2. INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('attacoun', '15');
  3. INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('attasehe', '1');
  4. INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('attasppe', '30');
复制代码



2. admin/settings.php

查找:

  1. showsetting('settings_smcols', 'settingsnew[smcols]', $settings['smcols'], 'text');
复制代码


下面加:

  1.                 showsetting('settings_attaopen', 'settingsnew[attaopen]', $settings['attaopen'], 'radio');
  2.                 showsetting('settings_attacoun', 'settingsnew[attacoun]', $settings['attacoun'], 'text');
  3.                 showsetting('settings_attasehe', 'settingsnew[attasehe]', $settings['attasehe'], 'radio');
  4.                 showsetting('settings_attasppe', 'settingsnew[attasppe]', $settings['attasppe'], 'text');
复制代码

查找:

  1. 'maxonlines', 'loadctrl'
复制代码


后面加:

  1. , 'attacoun', 'attasppe'
复制代码



3.templates\default\admincp.lang.php

查找:

  1. 'settings_smcols_comment' => '发帖页面每行显示 Smilies 的个数',
复制代码


下面加:

  1.         'settings_attaopen' => '首页站内图片展示开关:',
  2.         'settings_attacoun' => '首页站内图片展示中图片的个数:',
  3.         'settings_attasehe' => '首页站内图片展示是否启用随机功能:',
  4.         'settings_attasehe_comment' => '注意:开启随机功能首页会增加1个查询,若关闭随机则显示最新图片,首页不增加查询',
  5.         'settings_attasppe' => '首页站内图片展示的滚动速度:',
  6.         'settings_attasppe_comment' => '默认为30,数字越大速度越慢,速度越快越占系统资源.(by oytktk)',
复制代码



4. include/cache.php

查找:

  1. 'censor'        => array('censor'),
复制代码


下面加:

  1.                         'attas'                => array('attachs'),//首页站内图片附件展示 by oytktk
复制代码


查找:

  1. case ranks:
  2.                         $table = $GLOBALS['table_ranks'];
  3.                         $cols='ranktitle,postshigher,stars,color';
  4.                         $conditions = "WHERE 1 ORDER BY postshigher desc";
  5.                         break;
复制代码


上面加:

  1.                 //首页站内图片附件展示 by oytktk
  2.                 case attachs:
  3.                         global $attacoun;
  4.                         $table = $GLOBALS['table_attachments'];
  5.                         $cols='tid, attachment';
  6.                         $conditions = "WHERE filetype='image/pjpeg' ORDER BY aid DESC LIMIT 0, $attacoun";
  7.                         break;
  8.                 //首页站内图片附件展示 by oytktk
复制代码


查找:

  1. case 'plugins':
  2.                         $data = array();
  3.                         while($plugin = $db->fetch_array($query)) {
  4.                                 $data["$plugin[plug_key]"] = $plugin;
  5.                         }
  6.                         break;
复制代码



上面加:

  1.                 //首页站内图片附件展示 by oytktk
  2.                 case 'attachs':
  3.                         while($atta = $db->fetch_array($query)) {
  4.                                 $data[] = $atta;
  5.                         }
  6.                         break;

  7.                 //首页站内图片附件展示 by oytktk
复制代码



5. include/editpost.php

查找:

  1. $db->query("UPDATE $table_attachments set creditsrequire='$att[creditsrequire]' WHERE aid='$att[aid]'", 'UNBUFFERED');
复制代码


下面加:

  1.                                                 @require_once "./include/cache.php";
  2.                                                 updatecache("attachs");
复制代码


查找:

  1. $db->query("DELETE FROM $table_attachments WHERE pid='$pid' and aid in($del_aids)", 'UNBUFFERED');
复制代码


下面加:

  1.                                 @require_once "./include/cache.php";
  2.                                 updatecache("attachs");
复制代码

继续查找:

  1. $post_attaches_count++;
复制代码


下面加:

  1.                                 @require_once "./include/cache.php";
  2.                                 updatecache("attachs");
复制代码


再查找:

  1. $db->query("DELETE FROM $table_attachments WHERE pid='$pid'");
  2.                                 updatethread_type($tid , $thread['attachment']);
复制代码


下面加:

  1.                                 @require_once "./include/cache.php";
  2.                                 updatecache("attachs");
复制代码

最后查找:

  1. $db->query("DELETE FROM $table_posts WHERE tid='$tid'");
复制代码


下面加:

  1.                         @require_once "./include/cache.php";
  2.                         updatecache("attachs");
复制代码


6. include/newthread.php

查找:

  1. $db->query("UPDATE $table_attachments SET tid='$tid', pid='$pid' WHERE aid in ($aid)", 'UNBUFFERED');
复制代码


下面加:

  1.                 @require_once "./include/cache.php";
  2.                 updatecache("attachs");
复制代码


7. include/newreply.php

查找:

  1. $db->query("UPDATE $table_attachments SET pid='$pid' WHERE aid in ($aid)", 'UNBUFFERED');
复制代码


下面加:

  1.                 @require_once "./include/cache.php";
  2.                 updatecache("attachs");
复制代码



8. index.php


查找:

  1. unset($_DCACHE['announcements']);
复制代码


下面加:

  1.         //首页站内图片附件展示 by oytktk
  2.         if($attaopen){
  3.                 if($attasehe){
  4.                         $query = $db->query("SELECT tid, attachment FROM $table_attachments WHERE filetype='image/pjpeg' ORDER BY rand() DESC LIMIT 0, $attacoun");
  5.                         while($aids = $db->fetch_array($query)) {
  6.                                 $scoll.="<a href='viewthread.php?tid=".$aids['tid']."'><img border=0 width='120' height='120' src='attachments/".$aids['attachment']."'></a><img border=0 src='images/bk.gif'>";
  7.                         }
  8.                 }else{
  9.                         require DISCUZ_ROOT.'./forumdata/cache/cache_attas.php';
  10.                         $attass=$_DCACHE['attachs'];
  11.                         foreach($attass as $aids){
  12.                         $scoll.="<a href='viewthread.php?tid=".$aids['tid']."'><img border=0 width='120' height='120' src='attachments/".$aids['attachment']."'></a><img border=0 src='images/bk.gif'>";
  13.                 }
  14.         }
  15.         }
  16.         //首页站内图片附件展示 by oytktk end
复制代码



9. 模板 index.htm

关于模板的修改大家可以自己爱自己的意愿来改,我提供加在HEADER.HTM下的一种方法,只要把这代加在你要想显示的位置就可以了.

查找:

  1. {template header}
复制代码


下面加:

  1. <!--{if $attaopen}-->
  2. <center> <div id=demo style=overflow:hidden;height:122;width:98%>
  3. <table height="100%" border=0 align=left cellpadding=2 cellspace=0>
  4. <tr><td height="120" valign=top id=demo1>$scoll</td><td id=demo2 valign=top>
  5. </td></tr>
  6. </table>
  7. </div></center>
  8. <!--{/if}-->
复制代码



查找:

{template footer}

下面加:

  1. <script>
  2.         var speed=$attasppe;
  3.         demo2.innerHTML=demo1.innerHTML;
  4.         function Marquee(){
  5.                 if(demo2.offsetWidth-demo.scrollLeft<=0)
  6.                         demo.scrollLeft-=demo1.offsetWidth
  7.                 else{
  8.                         demo.scrollLeft++
  9.                 }
  10.         }
  11.         var MyMar=setInterval(Marquee,speed)
  12.         demo.onmouseover=function() {clearInterval(MyMar)}
  13.         demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
  14. </script>
复制代码



完成--> 更新缓存.

如果你想在其它页面也出现这个展示的话, 重复8,9两步对你需要的页面进行修改...

bk.gif 图片上传到 images 目录下

图片用肉眼看不到, 直接点击附件名称进行下载!


反安装代码:


  1. DELETE FROM `cdb_settings` WHERE `variable` = 'attaopen';
  2. DELETE FROM `cdb_settings` WHERE `variable` = 'attacoun';
  3. DELETE FROM `cdb_settings` WHERE `variable` = 'attasehe';
  4. DELETE FROM `cdb_settings` WHERE `variable` = 'attasppe';
复制代码

[ 本帖最后由 oytktk 于 2007-8-24 08:44 编辑 ]

本帖子中包含更多资源

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

x
hufanyun 发表于 2005-10-10 00:12:59 | 显示全部楼层
....
回复

使用道具 举报

hufanyun 发表于 2005-10-10 00:54:35 | 显示全部楼层
精华支持
回复

使用道具 举报

hufanyun 发表于 2005-10-10 00:54:46 | 显示全部楼层
4楼也不给人了
回复

使用道具 举报

hufanyun 发表于 2005-10-10 00:55:01 | 显示全部楼层
这个楼也觉得没有意思。,没有人顶我来了就顶了
回复

使用道具 举报

 楼主| oytktk 发表于 2005-10-10 00:55:27 | 显示全部楼层
设了阅读权限了..没去掉..明天再去掉~~
回复

使用道具 举报

hufanyun 发表于 2005-10-10 00:59:13 | 显示全部楼层
原帖由 oytktk 于 2005-10-10 00:55 发表
设了阅读权限了..没去掉..明天再去掉~~

那把第一页灌了吧4
回复

使用道具 举报

 楼主| oytktk 发表于 2005-10-10 01:00:26 | 显示全部楼层
原帖由 hufanyun 于 2005-10-10 00:59 发表

那把第一页灌了吧4


好...你负责灌..我负责睡觉觉~~
回复

使用道具 举报

hufanyun 发表于 2005-10-10 01:01:14 | 显示全部楼层
原帖由 oytktk 于 2005-10-10 01:00 发表


好...你负责灌..我负责睡觉觉~~

那么早。我才刚刚配好电脑。1G内存。。
回复

使用道具 举报

 楼主| oytktk 发表于 2005-10-10 01:01:55 | 显示全部楼层
原帖由 hufanyun 于 2005-10-10 01:01 发表

那么早。我才刚刚配好电脑。1G内存。。


爽..跟我一样哈~~哈哈哈~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 22:14 , Processed in 0.030365 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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