虚位以待(AD)
虚位以待(AD)
首页 > CMS教程 > Discuz! > discuz游客表态修改及内部数据调用方法

discuz游客表态修改及内部数据调用方法
类别:Discuz!   作者:码皇   来源:互联网   点击:

本博文是为博友小宋解答问题,其问题如下:前一段时间看了你制作的门户文章的表态功能, 有一个问题就是点击了之后需要重新刷新一下才能显示投票 这个discuz自带的空间博客上面有游客表态功能,你看看能把代码移植过去 ,魔客吧
本博文是为博友小宋解答问题,其问题如下:

前一段时间看了你制作的门户文章的表态功能, 有一个问题就是点击了之后需要重新刷新一下才能显示投票.
这个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提供了一个内部调用数据的功能。

进入网站后台——门户——模块管理——数据调用


其操作方法跟diy是一样的,添加好数据模块之后,点击内部调用:


将这段代码复制到discuz对应要放置的位置即可,discuz会自动解析数据的。

好了,解答完毕,希望能帮到你!

相关热词搜索: discuz游客表态修改及内部数据调用方法