·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

请问怎么在页面模板里判断一个id=2的任务是否完成?

665 2
发表于 2021-7-4 12:48:01 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
请问怎么在页面模板里判断一个id=2的任务是否完成?

请问怎么在页面模板里判断一个id=2的任务是否完成? 请问,怎么,页面,页面模板,模板 1

请问怎么在页面模板里判断一个id=2的任务是否完成? 请问,怎么,页面,页面模板,模板 2

请问怎么在页面模板里判断一个id=2的任务是否完成? 请问,怎么,页面,页面模板,模板 3

这是吾爱破解社区的一个签到   实质也就是一个系统任务里面的  红包任务  任务id=2

做了改进:任务完成不会发送消息短信,  在页面个人信息旁边显示是否签到

想学习一下这个效果,就是不晓得如何在页面模板加上相关代码对这个签到是否完成作判断,以此显示图2还是图3
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-20 18:15:30 | 查看全部
要在Discuz的页面模板中判断一个任务(例如ID为2的任务)是否完成,并在页面上显示相应的状态(例如签到或未签到),你可以按照以下步骤进行操作:

### 1. 获取任务完成状态
首先,你需要在模板中获取当前用户的任务完成状态。Discuz的任务系统通常会将用户的任务完成状态存储在数据库中,你可以通过查询数据库来获取这些信息。

### 2. 在模板中添加判断逻辑
在Discuz的模板文件中,你可以使用PHP代码来判断任务是否完成,并根据结果显示不同的内容。

假设你希望在用户个人信息旁边显示签到状态,你可以在 `template/default/member/header.htm` 文件中添加以下代码:

  1. <!--{eval
  2.     // 获取当前用户ID
  3.     $uid = $_G['uid'];
  4.    
  5.     // 查询任务完成状态
  6.     $taskid = 2; // 任务ID
  7.     $query = DB::query("SELECT * FROM ".DB::table('common_task_member')." WHERE uid='$uid' AND taskid='$taskid' AND status='1'");
  8.     $task_completed = DB::fetch($query);
  9. }-->

  10. <!--{if $task_completed}-->
  11.     <!-- 任务已完成,显示已签到 -->
  12.     <img src="path/to/signed_image.png" alt="已签到" />
  13. <!--{else}-->
  14.     <!-- 任务未完成,显示未签到 -->
  15.     <img src="path/to/unsigned_image.png" alt="未签到" />
  16. <!--{/if}-->
复制代码


### 3. 解释代码
- `$_G['uid']`:获取当前用户的ID。
- `DB::query`:执行SQL查询,查询用户是否完成了ID为2的任务。
- `DB::fetch`:获取查询结果。
- `<!--{if $task_completed}-->`:判断任务是否完成,如果完成则显示已签到的图片,否则显示未签到的图片。

### 4. 图片路径
你需要将 `path/to/signed_image.png` 和 `path/to/unsigned_image.png` 替换为你实际的图片路径。

### 5. 缓存问题
如果你修改了模板文件,可能需要更新缓存才能看到效果。你可以在Discuz后台的“工具” -> “更新缓存”中进行操作。

### 6. 安全性
确保你的代码不会引入SQL注入等安全问题。Discuz的 `DB::query` 和 `DB::fetch` 方法已经对SQL注入进行了防护,但如果你直接拼接SQL语句,仍需注意安全性。

### 7. 进一步优化
如果你希望这个功能更加灵活,可以考虑将其封装成一个插件,或者通过Discuz的钩子机制来实现,这样可以避免直接修改模板文件,便于后续维护和升级。

通过以上步骤,你应该能够在Discuz的页面模板中判断任务是否完成,并根据结果显示不同的内容。如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 23:37:11 | 查看全部
要在Discuz的页面模板中判断一个任务(例如ID为2的任务)是否完成,并在页面上显示相应的状态(例如签到或未签到),你可以按照以下步骤进行操作:

### 1. 获取任务完成状态
首先,你需要在模板中获取当前用户的任务完成状态。Discuz提供了任务相关的API和数据库表来获取这些信息。

### 2. 在模板中添加判断逻辑
你可以在模板文件中(例如`template/default/forum/discuz.htm`)添加判断逻辑,根据任务完成状态显示不同的内容。

### 3. 示例代码
以下是一个示例代码,展示如何在模板中判断任务是否完成并显示相应的内容:

  1. <!-- 获取当前用户的ID -->
  2. {php $uid = $_G['uid'];}

  3. <!-- 查询任务完成状态 -->
  4. {php
  5.     $taskid = 2; // 任务ID
  6.     $query = DB::query("SELECT * FROM ".DB::table('common_task_member')." WHERE uid='$uid' AND taskid='$taskid' AND status='1'");
  7.     $task_completed = DB::fetch($query);
  8. }

  9. <!-- 根据任务完成状态显示不同的内容 -->
  10. {if $task_completed}
  11.     <!-- 任务已完成,显示已签到 -->
  12.     <img src="path/to/signed_image.png" alt="已签到" />
  13. {else}
  14.     <!-- 任务未完成,显示未签到 -->
  15.     <img src="path/to/unsigned_image.png" alt="未签到" />
  16. {/if}
复制代码


### 4. 解释代码
- `$_G['uid']`:获取当前登录用户的ID。
- `DB::query`:执行SQL查询,查询`common_task_member`表中当前用户的任务完成状态。
- `DB::fetch`:获取查询结果。
- `{if $task_completed}`:根据任务完成状态显示不同的图片或内容。

### 5. 注意事项
- 确保任务ID(`$taskid`)正确。
- 图片路径(`path/to/signed_image.png`和`path/to/unsigned_image.png`)需要根据实际情况进行替换。
- 如果你在模板中直接使用PHP代码,请确保模板文件支持PHP代码嵌入。

### 6. 进一步优化
如果你希望在多个页面中使用这个功能,可以考虑将这段逻辑封装成一个函数或插件,以便复用和维护。

通过以上步骤,你可以在Discuz的页面模板中判断任务是否完成,并根据状态显示不同的内容。如果你有更多问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:13.59.173.30,GMT+8, 2025-4-13 19:13 , Processed in 0.493606 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表