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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

首页n格的问题整理与解决[最后更新:2007.11.05 JS调用附件]

[复制链接]
TaRot! 发表于 2007-6-18 12:39:01 | 显示全部楼层 |阅读模式
关于图片调用,因为原有的pic.php文件不完美,我们推荐用户使用JS调用图片附件,可以参考以下几帖:
https://discuz.dismall.com/thread-419519-1-1.html
https://discuz.dismall.com/thread-571665-1-1.html
https://discuz.dismall.com/thread-737586-1-1.html

关于修改了0724补丁无法显示的问题,是因为补丁中覆盖了index.php。建议根据手动升级的方法进行修改:https://discuz.dismall.com/thread-688304-1-1.html


因为首页n格的版本之多,所以今天闲来无事把首页n格所出现的问题大致整理下,毕竟这个东西从4.x或者2.x就开始用,变化一直大同小异,整理仓促,有什么问题回贴提出,以便更快的处理。本帖外其他首页N格相关问题恕不一一作答。正如各个作者可能个人事情比较多,使你的问题得不到及时处理,你可以把问题回复在这里,并写出所装首页n格的地址,我们尽力帮你处理。为了使会员的问题及时得到解决,本主题禁止灌水,谢谢合作。

最后更新:2007.07.28


关于后面有人问到的一些代码加到哪里.一般下面给出的修改数据库的,都是加在index.php里增加的代码中的$query后面的部分,这里是数据库查询.

Q:开启主题回收站后,删除的帖子在首页n格还显示。
A:index.php里增加的代码里的查询中,加入
  1. AND t.displayorder>=0
复制代码
代码。  
延伸:displayorder!=-1 and displayorder!=-2不稳定,建议使用displayorder>=0

Q:为什么首页n格的图片浏览不显示?
A:你先确定下你做了以下操作:在论坛的帖子内,有jpg格式的图片附件,在pic.php里 找
  1. AND filetype='image/pjpeg'
复制代码
或者
  1. AND filetype='image/jpeg'
复制代码
替换成
  1. AND filetype='image/jpeg' OR filetype='image/pjpeg'
复制代码
另外,因为目前的pic.php都是用的一个文件,所以远程调用的附件可能不能显示。
图片调用不显示的问题 受诸多方面影响 不仅是程序 还包括服务器设置以及论坛的某些路径设置 每个网站的配置和设置都不一样 无法通过站长的介绍得出任何结论 因此我们提供的解决方法仅就程序而言 如果尝试了我们提供的几种方法仍然不能显示图片的 最好是向原作者求助
延伸:让游客不能查看首页n格的图片预览。因为图片的一般都是调用的一个pic.php,所以只要在这个IFRAME的前后加一个判断即可。下面是个例子,当然不推荐用文字显示,可以做一个同FLASH大小的图片放在那里。
  1. <!--{if !$discuz_uid}-->对不起,你没有登陆,不能查看论坛图片.<!--{else}--><iframe name="I1" src="pic.php" width="230" height="170" frameborder=0 scrolling=no marginwidth="9" marginheight="2" align="right"></iframe><!--{/if}-->
复制代码
Q:如何调整首页n格内的Flash图片的宽度和高度?
A:主要是width和height的数值,参考贴:https://discuz.dismall.com/viewthread.php?tid=648565
延伸:还有个在pic.php里调整的,参考:https://discuz.dismall.com/viewthread.php?tid=651929

Q:首页n格的标题显示字数怎么修改?
A:这个一般都是有注释的,控制的字段是index.php里添加的字段,因为版本不同,所以各有不同,但那个字段,我想负责任的作者都有注释。
延伸:有些时候觉得调用主题条数和自己设置的不一致,其实问题就出在显示字数上,因为显示字数过多,造成一些标题换行显示

Q:如何把首页四格的最热话题改为发贴排行?
A:参考:https://discuz.dismall.com/viewth ... p;page=1#pid5110414

Q:首页四格如何不显示某个指定的版块?
A:可以直接在查询里加入,AND f.fid NOT IN (1,2) 等等 ,也可以参考后台控制的:https://discuz.dismall.com/viewthread.php?tid=295570

Q:怎么将首页三各中点击标题后不要另外跳出一个页面,之间进去即可?
A:在discuz.htm里添加的代码内,查找target="_blank"即可,此为A的新窗口效果。
延伸:不能新打开窗口的,只要在A中增加target="_blank"即可。
Q:如果将首页n格的图片更换为其他内容?
A:其实这个图片调用是用的一个iframe将pic.php镶嵌,没有数据库查询,只要将discuz.htm里添加的代码中的iframe一行替换即可。

Q:使用首页n格后,版块名如何正常使用html代码加颜色?
A:主要是首页n格没有加过滤,参考:https://discuz.dismall.com/thread-622582-1-1.html

Q:Warning: shuffle() expects parameter 1 to be array, boolean given in e:\web\33zx\web\pic.php on line 39
A:没有正确上传图片附件,发一个帖子以附件形式上传jpg图片文件。

Q:为什么我的首页n格显示数超过了是10,并且换行乱了?
A:1.把图片调用的Flash设置宽度窄一点.2.设置首页调用的字符数小些,这个在数据库代码那里作者都应该有注释.

Q:热门、精华、随机等代码的示例。
A:首页n格都可以根据自己的需要修改,主要都修改查询。例子:[quote]$query = $db->query("SELECT t.*, f.name FROM {$tablepre}threads t, {$tablepre}forums f WHERE t.fid<>'$fid' AND f.fid=t.fid  AND t.closed NOT LIKE 'moved|%' AND t.replies !=0 ORDER BY t.views DESC LIMIT 0, 10");//10代表的为显示10行//
蓝色部分为回复不为0,按照主题查看数排序。
  1. AND t.digest>0 ORDER by rand()
复制代码
此为随机精华。其他修改大同小异。[/quote]

Q:出现Errno.: 1064错误,该如何处理?
A:这是因为带后台版的n格,安装后没有在后台设置不显示的版块FID,在后台加入要屏蔽的版块的FID即可。也可以在index.php所加代码里加入
  1. $Hiddenfid = empty($Hiddenfid) ? 0 : $Hiddenfid;
复制代码
(此以https://discuz.dismall.com/thread-571328-1-1.html为例)

Q:首页四格的美化-隐藏与展示
A:参考:https://discuz.dismall.com/thread-433569-1-1.html

Q:首页n格,出现乱码
A:n格模板中含有中文 且字符集于论坛字符集冲突
用记事本等文本编辑工具打开四格模版(如直接修改discuz.htm则打开此文件) 选择 文件-另存为 在弹出窗口最下部 编码 处选择和论坛字符集对应的编码
延伸万用插件转码安装程序(让UTF8论坛也能用GBK插件) BASE64内容编辑器
特别说明:最好的方法是在语言包中定义汉字内容

Q:为什么我上传了很多jpg的附件图片,却只显示1个
A:因为图片存在于同一个主题。

Q:我的首页四格图片不动呀
A:参考:https://discuz.dismall.com/thread-640554-1-1.html

Q:关于四格图片的出现几率
A:参考:https://discuz.dismall.com/thread-641732-1-1.html


Q:TOPLIST首页四格Cache版 0724升级后不更新临时解决方案
A:参考:https://discuz.dismall.com/thread-693320-1-1.html主贴及12、14楼解决方法

[ 本帖最后由 习明 于 2007-12-25 12:37 编辑 ]

评分

5

查看全部评分

 楼主| TaRot! 发表于 2007-6-18 12:43:07 | 显示全部楼层
2楼更新.你的问题在上面没有列出的话,可以回贴说明.

无关灌水一律删除.



[ 本帖最后由 TaRot! 于 2007-6-18 13:33 编辑 ]
回复

使用道具 举报

习明 发表于 2007-6-18 12:47:26 | 显示全部楼层
您可以把问题在这里跟帖,并写出所装首页n格的地址,要达到什么目的,曾经改过什么。您所提供的信息越充分,获得帮助就越及时准确,这是提问的技巧
回复

使用道具 举报

动凡心 发表于 2007-6-18 21:55:19 | 显示全部楼层
能把首页的图片换成视讯吗?
如果是做偶像论坛的,该如何改才能不影响论坛游览啊???
回复

使用道具 举报

 楼主| TaRot! 发表于 2007-6-18 23:43:52 | 显示全部楼层

回复 #8 动凡心 的帖子

不好意思,你说的"视讯"我不太清楚是什么?
回复

使用道具 举报

sunbrain 发表于 2007-6-19 09:32:49 | 显示全部楼层
1、我觉得首页五格上的“最新主题”板块会使网站的主题不够明确,因此希望将“最新主题”板块放置在最后面。即调整各板块的顺序,怎么处理呢?
2、我还想把首页五格的位置放置在首页的底部而不是顶端,有怎么处理呢?

多谢
回复

使用道具 举报

 楼主| TaRot! 发表于 2007-6-19 10:05:35 | 显示全部楼层

回复 #6 sunbrain 的帖子

1.你说的只要修改discuz.htm里增加的代码即可.一般增加的代码作者都写了注释,直接移动表格内的内容即可 .
2.放到底部也是编辑discuz.htm,将加入的代码加到合适位置即可.
回复

使用道具 举报

OGNW.net 发表于 2007-6-19 16:56:35 | 显示全部楼层
好久没有这样的技术帖~~继续发其他的,好让DZ新手学习一下
回复

使用道具 举报

juse 发表于 2007-6-19 17:43:43 | 显示全部楼层
请问AND t.displayorder>=0加在index.php哪里?

我的代码是这样的
  1. /////////////////////////////////////////////////////////////首页热门贴
  2. //今日发贴排行
  3. $tomonth=date(n);
  4. $todate=date(j);
  5. $toyear=date(Y);
  6. $time=mktime(0,0,0,$tomonth,$todate,$toyear);
  7. $query=$db->query("select count(pid) as num,authorid,author from $tablepre"."posts where dateline>=$time group by authorid order by num desc limit 0,11");
  8. while($result=$db->fetch_array($query)){
  9. $poststar.="<a href=viewpro.php?uid=".$result[authorid].">".$result[author]."</a> (<font color=red>".$result[num]."</font>)<br>";
  10. }
  11. //今日发贴排行

  12. $hack_subject_len=80; //每个标题最多显示得字数
  13. $hack_subject_num=10; //需要显示记录数

  14. $hack_newthreads_threadlist = array();
  15. $thread = array();
  16. //最新贴
  17. $query = $db->query("SELECT dateline,tid,subject,author,views,replies,lastpost,lastposter FROM {$tablepre}threads WHERE fid    ORDER  BY dateline DESC LIMIT 0, $hack_subject_num");

  18. while($thread = $db->fetch_array($query)) {
  19.               $thread['forumname'] = $thread['name'];
  20.               $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] + $timeoffset * 3600);
  21.               $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread[lastpost] + ($timeoffset * 3600));
  22.               $thread[subject0]=$thread[subject];
  23.               $thread['subject'] = cutstr($thread['subject'], $hack_subject_len);
  24.               $hack_newthreads_threadlist[] = $thread;
  25. }
  26. //最新贴

  27. $threadview = $threadreply = array();
  28. //最新回复
  29. $query = $db->query("SELECT dateline,tid,subject,author,views,replies,lastpost,lastposter FROM {$tablepre}threads WHERE fid    AND replies ORDER BY lastpost DESC LIMIT 0, $hack_subject_num");
  30.               while($thread = $db->fetch_array($query)) {
  31.                               $thread[subject0]=$thread[subject];
  32.                               $thread['forumname'] = $thread['name'];
  33.                               $thread['date']= gmdate("$dateformat $timeformat", $thread['dateline'] + $timeoffset * 3600);
  34.                               $thread['lastreplytime']= gmdate("$dateformat $timeformat", $thread[lastpost] + ($timeoffset * 3600));
  35.                               $thread[subject] = cutstr($thread[subject], $hack_subject_len);
  36.                               $threadreply[] = $thread;
  37.               }
  38. //最新回复
  39. ///////////////////////////////////////////////////////////////////首页热门贴
复制代码
回复

使用道具 举报

习明 发表于 2007-6-19 17:55:09 | 显示全部楼层

回复 #9 juse 的帖子

  1. $query=$db->query("select count(pid) as num,authorid,author from $tablepre"."posts where dateline>=$time group by authorid order by num desc limit 0,11");
复制代码

to
  1. $query=$db->query("select count(pid) as num,authorid,author from $tablepre"."posts where dateline>=$time AND t.displayorder>=0 group by authorid order by num desc limit 0,11");
复制代码

类似的 其他几个$query同样修改
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 01:39 , Processed in 0.635065 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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