亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Discuz > 正文

Discuz論壇教程之notification_add發送系統通知方法

2024-08-30 19:07:26
字體:
來源:轉載
供稿:網友

Discuz!論壇如何發送系統通知呢,怎么樣讓用戶收到系統發送的通知呢?Discuz!發送系統通知方法notification_add解析,想要知道Discuz!論壇怎么樣發送通知就來看看吧

方法定義位置:

source/function/function_core.php

代碼如下:

view plaincopy

functionnotification_add($touid, $type, $note, $notevars= array(), $system= 0) { returnhelper_notification::notification_add($touid, $type, $note, $notevars, $system);  

}  

參數說明:

$touid:接收通知的uid,即發給誰;

$type:通知類型,如system為系統通知,這里$type參數稍微復制一點,下面我們把type參數的各種意義羅列出來供大家參考:

appId(數字)         漫游應用 
myapp                應用邀請或請求 
credit                積分充值 
goods                商品 
mod_member        用戶審核 
system                系統消息 
group                群組審核通過 
report                舉報 
verify                認證 
manage_                管理通知 
magic                道具 
poke                打招呼 
friend                好友 
task                任務 
wall                留言 
piccomment        圖片評論 
blogcomment        日志評論 
sharecomment        分享評論 
follow                關注 
pusearticle        推送 
at                        @功能 
pcomment        點評 
post                回帖引用 
show                排行榜 
clickblog        日志頂操作 
clickarticle 文章頂操作 
clickpic        圖片頂操作 
doing                記錄 
pmreport        消息舉報 
sharenotice        分享通知 
group                群組 
reward                懸賞 
activity        活動 
thread                主題 
blog                日志 
article                文章 

$note:通知內容,支持html代碼;

$notevars:附加參數,如:actor、from_num、from_id、from_idtype

$system:是否系統通知,默認0,強制轉為系統通知;

詳細代碼邏輯參考helper_notification類代碼

helper類所在位置:

/source/class/helper/helper_notification.php

相關代碼如下:

public static function notification_add($touid, $type, $note, $notevars = array(), $system = 0, $category = -1) {  

global $_G;  

if(!($tospace = getuserbyuid($touid))) {  

return false;  

}  

space_merge($tospace, 'field_home');  

$filter = empty($tospace['privacy']['filter_note'])?array():array_keys($tospace['privacy']['filter_note']);  

if($filter && (in_array($type.'|0', $filter) || in_array($type.'|'.$_G['uid'], $filter))) {  

return false;  

}  

if($category == -1) {  

$category = 0;  

$categoryname = '';  

if($type == 'follow' || $type == 'follower') {  

switch ($type) {  

case 'follow' : $category = 5; break;  

case 'follower' : $category = 6; break;  

}  

$categoryname = $type;  

} else {  

foreach($_G['notice_structure'] as $key => $val) {  

if(in_array($type, $val)) {  

switch ($key) {  

case 'mypost' : $category = 1; break;  

case 'interactive' : $category = 2; break;  

case 'system' : $category = 3; break;  

case 'manage' : $category = 4; break;  

default :  $category = 0;  

}  

$categoryname = $key;  

break;  

}  

}  

}  

} else {  

switch ($category) {  

case 1 : $categoryname = 'mypost'; break;  

case 2 : $categoryname = 'interactive'; break;  

case 3 : $categoryname = 'system'; break;  

case 4 : $categoryname = 'manage'; break;  

case 5 : $categoryname = 'follow'; break;  

case 6 : $categoryname = 'follower'; break;  

default :  $categoryname = 'app';  

}  

}  

if($category == 0) {  

$categoryname = 'app';  

} elseif($category == 1 || $category == 2) {  

$categoryname = $type;  

}  

$notevars['actor'] = "<a href=/"home.php?mod=space&uid=$_G[uid]/">".$_G['member']['username']."</a>";  

if(!is_numeric($type)) {  

$vars = explode(':', $note);  

if(count($vars) == 2) {  

$notestring = lang('plugin/'.$vars[0], $vars[1], $notevars);  

} else {  

$notestring = lang('notification', $note, $notevars);  

}  

$frommyapp = false;  

} else {  

$frommyapp = true;  

$notestring = $note;  

}  

$oldnote = array();  

if($notevars['from_id'] && $notevars['from_idtype']) {  

$oldnote = C::t('home_notification')->fetch_by_fromid_uid($notevars['from_id'], $notevars['from_idtype'], $touid);  

}  

if(empty($oldnote['from_num'])) $oldnote['from_num'] = 0;  

$notevars['from_num'] = $notevars['from_num'] ? $notevars['from_num'] : 1;  

$setarr = array(  

'uid' => $touid,  

'type' => $type,  

'new' => 1,  

'authorid' => $_G['uid'],  

'author' => $_G['username'],  

'note' => $notestring,  

'dateline' => $_G['timestamp'],  

'from_id' => $notevars['from_id'],  

'from_idtype' => $notevars['from_idtype'],  

'from_num' => ($oldnote['from_num']+$notevars['from_num']),  

'category' => $category  

);  

if($system) {  

$setarr['authorid'] = 0;  

$setarr['author'] = '';  

}  

$pkId = 0;  

if($oldnote['id']) {  

C::t('home_notification')->update($oldnote['id'], $setarr);  

$pkId = $oldnote['id'];  

} else {  

$oldnote['new'] = 0;  

$pkId = C::t('home_notification')->insert($setarr, true);  

}  

$banType = array('task');  

if($_G['setting']['cloud_status'] && !in_array($type, $banType)) {  

$noticeService = Cloud::loadClass('Service_Client_Notification');  

if($oldnote['id']) {  

$noticeService->update($touid, $pkId, $setarr['from_num'], $setarr['dateline'], $note);  

} else {  

$extra = $type == 'post' ? array('pId' => $notevars['pid']) : array();  

$extra['notekey'] = $note;  

$noticeService->add($touid, $pkId, $type, $setarr['authorid'], $setarr['author'], $setarr['from_id'], $setarr['from_idtype'], $setarr['note'], $setarr['from_num'], $setarr['dateline'], $extra);  

}  

}  

if(empty($oldnote['new'])) {  

C::t('common_member')->increase($touid, array('newprompt' => 1));  

$newprompt = C::t('common_member_newprompt')->fetch($touid);  

if($newprompt) {  

$newprompt['data'] = unserialize($newprompt['data']);  

if(!empty($newprompt['data'][$categoryname])) {  

$newprompt['data'][$categoryname] = intval($newprompt['data'][$categoryname]) + 1;  

} else {  

$newprompt['data'][$categoryname] = 1;  

}  

C::t('common_member_newprompt')->update($touid, array('data' => serialize($newprompt['data'])));  

} else {  

C::t('common_member_newprompt')->insert($touid, array($categoryname => 1));  

}  

require_once libfile('function/mail');  

$mail_subject = lang('notification', 'mail_to_user');  

sendmail_touser($touid, $mail_subject, $notestring, $frommyapp ? 'myapp' : $type);  

}  

if(!$system && $_G['uid'] && $touid != $_G['uid']) {  

C::t('home_friend')->update_num_by_uid_fuid(1, $_G['uid'], $touid);  

}  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产成人在线| 亚洲欧美日韩在线高清直播| 欧美激情va永久在线播放| 国产一区二区三区高清在线观看| 欧美黑人巨大精品一区二区| 中文字幕日韩精品有码视频| 国产91对白在线播放| 日av在线播放中文不卡| 日韩中文字幕亚洲| 亚洲天天在线日亚洲洲精| 中文字幕欧美视频在线| 亚洲综合色av| 亚洲成人激情小说| 一区二区三区四区在线观看视频| 精品久久久久久久久久久| 97婷婷大伊香蕉精品视频| 欧美成人免费在线观看| 亚洲激情视频在线观看| 奇米4444一区二区三区| 色婷婷av一区二区三区久久| 91久久精品国产91久久性色| 国产精品99蜜臀久久不卡二区| 日本一区二区在线播放| 国产亚洲视频在线| 欧洲成人在线视频| 久久久久久久影视| 亚洲精品美女久久久| 欧美贵妇videos办公室| 久久综合亚洲社区| 欧美午夜激情视频| 九九综合九九综合| 日韩欧美亚洲成人| 久久久久久久91| 欧美极品少妇xxxxⅹ免费视频| 亚洲免费一级电影| 成人福利视频网| 国产精品v片在线观看不卡| 久久影视电视剧免费网站清宫辞电视| 国产视频999| 亚洲在线免费看| 久久久久国色av免费观看性色| 九九热这里只有精品免费看| 国产欧美日韩专区发布| 日韩中文有码在线视频| 国产在线高清精品| 久久777国产线看观看精品| 美女精品视频一区| 欧美性xxxx极品高清hd直播| 欧美激情图片区| 伊人伊成久久人综合网小说| 日韩欧美黄色动漫| 美女视频久久黄| 亚洲国产高清高潮精品美女| 成人欧美一区二区三区黑人孕妇| 欧美日韩在线第一页| 欧美激情精品久久久久久| 日本一区二三区好的精华液| 国产精品视频午夜| 久久久久久久久久婷婷| 国产精品高潮呻吟久久av黑人| 欧美大片在线免费观看| 精品国产美女在线| 91网站在线看| 欧美精品情趣视频| 欧美成人免费播放| 琪琪第一精品导航| 国产色婷婷国产综合在线理论片a| 国产精品成人av性教育| 亚洲国产欧美久久| 亚洲精品日韩激情在线电影| 国产精品成人va在线观看| 国产精品入口免费视频一| 国产999精品久久久| 国内精品模特av私拍在线观看| 亚洲高清av在线| 97精品国产97久久久久久| 国产亚洲精品久久久久久777| 中文在线资源观看视频网站免费不卡| 成人在线精品视频| 亚洲精品自拍视频| 亚洲成人亚洲激情| 亚洲free性xxxx护士hd| 欧美激情视频播放| 欧美国产日产韩国视频| 中文字幕在线观看日韩| 美女福利视频一区| 久久精品国产亚洲7777| 一个人看的www欧美| 2019精品视频| 在线视频精品一| 韩日欧美一区二区| 国产精品福利在线观看网址| 日韩电影网在线| 亚洲黄色有码视频| 91av网站在线播放| 91夜夜揉人人捏人人添红杏| 久久久综合免费视频| 亚洲a级在线观看| 亚洲国产成人久久| 自拍偷拍亚洲一区| 亚洲精品电影在线观看| 57pao成人永久免费视频| 日本中文字幕成人| 日韩有码在线视频| 国产亚洲欧美日韩美女| 国产日产久久高清欧美一区| 一本色道久久综合狠狠躁篇的优点| 日韩在线免费观看视频| 日本欧美一级片| 亚洲国产精品99| 国内精品久久久久久中文字幕| 一本色道久久综合亚洲精品小说| 亚洲天堂av在线免费观看| 久久综合伊人77777| 91热精品视频| 国产欧美日韩高清| 91网站在线免费观看| 欧美一区二粉嫩精品国产一线天| 97成人精品视频在线观看| 久久激情视频久久| 另类图片亚洲另类| 97精品伊人久久久大香线蕉| 国产日韩欧美在线观看| 欧美天堂在线观看| 91精品久久久久久久久久久久久久| 久久天天躁狠狠躁夜夜躁2014| 欧美视频在线免费看| 久久精品成人一区二区三区| 国产丝袜一区二区三区| 国精产品一区一区三区有限在线| 中文字幕日韩精品有码视频| 国产精品欧美日韩一区二区| 色综合久久中文字幕综合网小说| 亚洲欧美日韩天堂一区二区| 欧美夜福利tv在线| 欧美成年人视频网站| 久久精品2019中文字幕| 这里精品视频免费| 久久精品久久久久电影| 欧美视频在线观看 亚洲欧| 亚洲a在线观看| 日韩va亚洲va欧洲va国产| 国产精品爱啪在线线免费观看| 国产精品视频免费在线观看| 亚洲影影院av| 久久精品视频99| 中文字幕亚洲国产| 社区色欧美激情 | 国内精久久久久久久久久人| 欧美成人亚洲成人日韩成人| 亚洲一区二区三区毛片| 九九久久久久久久久激情| 一本一道久久a久久精品逆3p| 亚洲成人精品视频在线观看| 538国产精品视频一区二区| 九九久久久久99精品| 欧美极品少妇xxxxⅹ免费视频| 狠狠色狠狠色综合日日五| 日韩激情视频在线播放| 91免费欧美精品| 国产成人亚洲综合青青| www.日韩免费| 成人免费看吃奶视频网站| 久久久精品视频成人|