在Discuz!中,默认情况下,点赞功能是需要用户登录后才能使用的。如果你希望让游客(未登录用户)也能使用点赞功能,需要进行一些代码修改和功能扩展。以下是实现这一功能的步骤:
### 1. 修改模板文件
首先,你需要找到并修改相关的模板文件,通常是`template/default/forum/viewthread_node.htm`或`template/default/forum/viewthread_node_body.htm`,具体取决于你的模板。
找到点赞按钮的代码,通常是类似以下的代码:
- <!--{if $_G['uid']}-->
- <a href="javascript:;" onclick="recommend($('recommendv_add'), $('recommendv_subtract'), {$_G['forum_thread']['tid']}, 'add');" id="recommendv_add" class="xi2">赞</a>
- <!--{/if}-->
复制代码
将`<!--{if $_G['uid']}-->`和`<!--{/if}-->`这两行代码删除或注释掉,这样点赞按钮就会对所有用户(包括游客)显示。
### 2. 修改JavaScript代码
接下来,你需要修改相关的JavaScript代码,以确保游客点击点赞按钮时不会弹出登录提示。
找到`static/js/forum.js`文件,搜索`recommend`函数,通常是类似以下的代码:
- function recommend(obj_add, obj_subtract, tid, type) {
- if (!$_G['uid']) {
- showDialog('您需要登录后才能进行此操作', 'notice', null, function() {
- showWindow('login', 'member.php?mod=logging&action=login');
- });
- return false;
- }
- // 其他代码...
- }
复制代码
将`if (!$_G['uid'])`这一判断条件删除或注释掉,这样游客点击点赞按钮时就不会弹出登录提示。
### 3. 修改PHP代码
最后,你需要修改相关的PHP代码,以确保游客的点赞请求能够被正确处理。
找到`source/module/forum/forum_viewthread.php`文件,搜索`recommend`相关的代码,通常是类似以下的代码:
- if(!$_G['uid']) {
- showmessage('not_loggedin', '', array(), array('login' => 1));
- }
复制代码
将`if(!$_G['uid'])`这一判断条件删除或注释掉,这样游客的点赞请求就能够被正确处理。
### 4. 测试功能
完成以上修改后,刷新你的论坛页面,测试游客是否能够正常使用点赞功能。
### 注意事项
- 修改代码前请备份相关文件,以防出现问题。
- 由于游客没有用户ID,你可能需要为游客点赞功能设计一个独立的记录方式,例如使用IP地址或Cookie来记录游客的点赞行为,以防止重复点赞。
如果你对代码修改不熟悉,建议在DZ插件网(https://www.dz-x.net/)寻找相关的插件或寻求技术支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |