在DEDECMS中,实现文档通过审核后再奖励的机制,可以通过修改系统文件和编写插件来实现,具体步骤如下:
方法一:修改系统文件
1、修改会员发布文章后的积分增加代码:
打开/member/article_add.php
文件。
找到以下代码段并注释掉或删除:
```php
//增加积分
$dsql>ExecuteNoneQuery("Updatedede_member
set scores=scores+{$cfg_sendarc_scores} where mid='".$cfg_ml>M_ID."' ; ");
```
2、修改文档审核后的积分增加代码:
打开/dede/archives_do.php
文件。
找到function checkArchives()
函数。
在该函数内,找到$aid = $row['id'];
这一行,在其后面添加以下代码:
```php
//审核后增加积分
$dsql>ExecuteNoneQuery("Update 'dede_member' set scores=scores+{$cfg_sendarc_scores} where mid=(select mid from 'dede_arctiny' where id='$aid')");
```
方法二:使用自定义字段和插件
1、创建自定义字段:
在后台创建一个自定义字段“审核状态”,类型选择为“单选框”,选项设置为“未审核”和“已审核”。
2、编写插件代码:
编写一个插件,监听文章的保存事件,当文章保存时,检查自定义字段“审核状态”的值,如果为“已审核”,则执行积分或金币的增加操作。
示例代码:
```php
// 假设插件名为 article_check.php
function article_check($mid, $aid) {
if ($status == '已审核') {
$dsql>ExecuteNoneQuery("Updatedede_member
set scores=scores+{$cfg_sendarc_scores} where mid='$mid'");
}
}
```
3、设置积分或金币规则:
根据需要设置具体的积分或金币增加规则,例如每篇文章通过审核后增加10积分或10金币等。
相关问答(FAQs)
1、Q: 如何确保只有通过审核的文档才能获得奖励?
A: 通过上述方法中的自定义字段和插件机制,可以确保只有标记为“已审核”的文档才会触发积分或金币的增加操作。
2、Q: 如果需要针对不同栏目设置不同的积分规则怎么办?
A: 可以在插件代码中加入条件判断,根据文章所属的栏目ID来设置不同的积分规则,如果文章属于某个特定栏目,则通过审核后增加更多积分。
3、Q: 这种方法是否适用于其他类型的内容管理系统(CMS)?
A: 虽然具体实现细节可能因CMS而异,但基本思路是相似的:即通过修改系统文件或利用自定义字段和插件机制来实现内容审核后的奖励机制。
DEDECMS文档通过审核后再奖励的实现方法
DEDECMS(帝国CMS)是一款功能强大的内容管理系统,广泛应用于企业网站建设,在文档审核通过后给予奖励,可以激励用户积极提交优质内容,以下将详细介绍如何在DEDECMS中实现文档通过审核后的奖励机制。
实现步骤
1. 数据库准备
需要在数据库中添加一个用于记录奖励信息的表,以下是一个简单的表结构示例:
CREATE TABLEdede_reward
(id
int(11) NOT NULL AUTO_INCREMENT,uid
int(11) NOT NULL COMMENT '用户ID',docid
int(11) NOT NULL COMMENT '文档ID',reward_type
tinyint(1) NOT NULL COMMENT '奖励类型(1:积分,2:金钱等)',reward_value
int(11) NOT NULL COMMENT '奖励值',reward_time
int(11) NOT NULL COMMENT '奖励时间', PRIMARY KEY (id
) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 系统功能扩展
2.1 添加奖励配置
在后台管理系统中,添加一个奖励配置页面,允许管理员设置奖励的类型和值。
奖励类型:积分、金钱等。
奖励值:根据文档类型、质量等因素设定。
2.2 审核功能增强
在文档审核功能中,增加奖励发放的步骤。
当文档审核通过后,系统自动根据配置的奖励类型和值,向用户发放奖励。
将奖励信息记录到dede_reward
表中。
3. 代码实现
3.1 奖励配置代码
在后台管理系统中,编写奖励配置的代码,用于存储和获取奖励设置。
// 添加奖励配置 function addRewardConfig($reward_type, $reward_value) { $sql = "INSERT INTOdede_reward_config
(reward_type
,reward_value
) VALUES (?, ?)"; $db>query($sql, array($reward_type, $reward_value)); } // 获取奖励配置 function getRewardConfig() { $sql = "SELECT * FROMdede_reward_config
"; return $db>get_all($sql); }
3.2 审核后发放奖励
在文档审核通过后,调用函数发放奖励。
// 文档审核通过后发放奖励 function rewardAfterReview($docid, $uid) { $config = getRewardConfig(); foreach ($config as $row) { $reward_type = $row['reward_type']; $reward_value = $row['reward_value']; // 根据奖励类型发放奖励 if ($reward_type == 1) { // 发放积分 addPoints($uid, $reward_value); } elseif ($reward_type == 2) { // 发放金钱 addMoney($uid, $reward_value); } } // 记录奖励信息 $reward_time = time(); $sql = "INSERT INTOdede_reward
(uid
,docid
,reward_type
,reward_value
,reward_time
) VALUES (?, ?, ?, ?, ?)"; $db>query($sql, array($uid, $docid, $reward_type, $reward_value, $reward_time)); } // 添加积分 function addPoints($uid, $value) { // 实现积分增加逻辑 } // 添加金钱 function addMoney($uid, $value) { // 实现金钱增加逻辑 }
4. 前端展示
在用户个人中心或其他适当的位置,展示用户已获得的奖励信息。
<!用户奖励信息展示 > <div class="rewardinfo"> <h3>奖励信息</h3> <ul> <li>积分:{{ points }}</li> <li>金钱:{{ money }}</li> </ul> </div>
通过以上步骤,可以实现DEDECMS文档通过审核后的奖励机制,这样既能激励用户提交优质内容,又能增强网站的活跃度,在实际应用中,可根据具体需求调整奖励类型和值。