本博文是为博友小宋解答问题,其问题如下:
前一段时间看了你制作的门户文章的表态功能, 有一个问题就是点击了之后需要重新刷新一下才能显示投票. 这个discuz自带的空间博客上面有游客表态功能,你看看能把代码移植过去吧 ==================================================第二个想法:it618开发了一个帖子内部游客表态功能的插件,这个插件在门户文章不能实现..你看看能把这个插件功能移植在首页文章里面=============== 第三个问题,discuz的门户的栏目比较多,我想在portal_view.htm 模版中修改一处,调出最新的10条数据.是不是需要在portal_view.php中写上mysql的调用代码,然后在view.htm中用模版展示出来 ==================================================谢谢
关于表态的问题,本文采用session的方法做一下表态的限制。
本文接上次discuz允许游客表态的方法来说,注释掉的代码还跟上次的一样。注释完成后,修改如下:
找到文件:/source/include/spacecp/spacecp_click.php
在文件顶部,即:
[代码]php代码:if(!defined('IN_DISCUZ')) { exit('Access Denied');} 上面加入一句话:
[代码]php代码:session_start(); 开启session。然后最后注释掉的:
[代码]php代码:/*if(C::t('home_clickuser')->count_by_uid_id_idtype($space['uid'], $id, $idtype)) { showmessage('click_have'); }*/ 这句话下面加入:
[代码]php代码:if($_SESSION['vote'] == session_id()){ showmessage('click_have'); } $_SESSION['vote'] = session_id(); 这样就可以通过用户访问网站的session来做表态的限制,演示查看本博客表态功能。
其实还可以通过IP来做限制,可以自己查看下相关资料。方法有很多,在于自己的挖掘。
至于需要刷新之后,才能显示,是因为表态之后,本页没有刷新,修改方法,可以参考下ajax来实现,本文不再细说。
你说的空间博客上的表态,我没有注意到有这么一个功能呢。
第二个问题,没有用过这个插件本文不说其修改方法了。
第三个问题
其实不用自己来写sql语句,discuz提供了一个内部调用数据的功能。
进入网站后台 |