Discuz2.5/3.0论坛系统通过移动APP客户端发帖自动颁发勋章

discuz2.5/3.0论坛系统通过移动APP客户端发帖自动颁发勋章

在做社区运营的时候,我们可能面对这样的场景,为了鼓励用户,如果用户在客户端发帖,给他颁发勋章,譬如手机发帖达人勋章等,那改怎么搞呢?

需要写入3个表:common_member_field_forum, forum_medallog,common_member_medal

具体代码如下:

<?php
/*勋章颁发*/
$medalsnew = 232;
$uidsArr[] = $discuz_uid;
foreach(C::t('common_member_field_forum')->fetch_all($uidsArr) as $uid => $medalnew) {
	$medal_yes = 0;  //是否需要颁发操作变量
	$usermedal = array();
	$addmedalnew = '';
	if(empty($medalnew['medals'])) {
		$addmedalnew = $medalsnew;
		$medal_yes = 1;  //开启
	} else {
		$usermedal_arr = explode("\t", $medalnew['medals']);
		foreach($usermedal_arr AS $key => $medalval) {
			list($usermedalid,) = explode("|", $medalval);
			$usermedal[] = $usermedalid;
		}
		if(!in_array($medalsnew, $usermedal)){
			$addmedalnew .= $medalsnew."\t";
			$medal_yes = 1;  //开启
		}

		$addmedalnew .= $medalnew['medals'];
	}
	if($medal_yes == 1){
		C::t('common_member_field_forum')->update($medalnew['uid'], array('medals' =>
 $addmedalnew), 'UNBUFFTERED');
		$data = array(
			'uid' => $discuz_uid,
			'medalid' => 232,
			'type' => 0,
			'dateline' => $_G['timestamp'],
			'expiration' => 0,
			'status' => 0,
		);
		C::t('forum_medallog')->insert($data);
		C::t('common_member_medal')->insert(array('uid' => $discuz_uid, 'medalid' => 232), 0, 1);	
	}
}

ok,这样就结束了。同理还可以自动触发进行颁发其他勋章。。。

关键词: discuz , 自动颁发勋章

上一篇: python学习:python采集(抓取)中国天气网天气信息
下一篇: CentOS常用运维命令,非常实用的的Linux运维命令(收藏)

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):