原贴
超级新回复短信息通知 For 4.10 By Oytktk(靖飒)
https://discuz.dismall.com/viewthread.php?tid=260271
我只是修改为for D5 。非常感谢原作者提供了此创意与思路。
演示:http://www.yk518.com/bbs/index.php
[发布编号]:靖字 第:0005
[插件名称]:超级新回复短信息通知
[适用版本]:DISCUZ! 5.0
[插件作者]:Oytktk(靖飒) 修改:。。。
[插件发布]:Powered by 上海华飒科技 © 2006
[发布日期]:2006-4-7
[插件用途]:
我的方法绝对节省PMS(短信)表的空间...
原理是这样的,
发个主题可以选择是不是使用这个功能,如果使用的话:
有人回复马上发个短信通知作者,
但是,如果还有人再回复的话,同样还是用这一条短信进行修改后再次通知作者.
就是说,一个主题不管有多少人回复,都是用一条短信进行通知的.这样就不会造成因为回复过多而收到N多短信而且影响PMS空间..
══════════════════════════════════════
1. 可控制默认情况下是否使用本功能...
2. 为什么说是超级新回复短信通知呢?
1). 每个主题只存在一条信息通知...
2). 如果没有某条主题的信息通知,当需要通知作者时便加入一条信息用来通知作者...
3). 如果已存在某条主题的信息通知,又有新的关于这条主题的通知时,还是以原短信(加以修改)作为通知...
4). 自己回复自己的主题时,不进行通知...
══════════════════════════════════════
目前我只能想到这么多功能了...
关于安装与使用的说明
一、需要修改的文件列表:
1、后台升级SQL
2、模板文件夹\post_newthread.htm
3、模板文件夹\post_editpost.htm
4、模板文件夹\forumdisplay.htm
5、模板文件夹\templates.lang.php
6、forumdisplay.php
7、include/newthread.inc.php
8、include/editpost.inc.php
9、include/newreply.inc.php
二、修改文件完毕并上传至您的服务器以后,您将需要在您的后台“更新缓存”方可使用!
1. 后台升级SQL语句(如果在4.0中已经安装过此插件, 这步升级语句跳过):
- ALTER TABLE `cdb_threads` ADD `msgnotify` INT( 1 ) NOT NULL ;
复制代码
原贴中是这样的。
这句语句有个不足之处,那就是在安装此插件前的贴子,没有“新回复短信通知”功能。
所以,我是改用:(默认值为“1”)(上面那句升级语句不用)
- ALTER TABLE `cdb_threads` ADD `msgnotify` INT( 1 ) DEFAULT '1' NOT NULL ;
复制代码
再把msgnotify默认值改“0”:
- ALTER TABLE `cdb_threads` CHANGE `msgnotify` `msgnotify` INT( 1 ) DEFAULT '0' NOT NULL ;
复制代码
2.模板文件夹\post_newthread.htm
查找:
- <input class="checkbox" type="checkbox" name="usesig" value="1" $usesigcheck> {lang post_show_sig}<br>
复制代码
下面加
- <input class="checkbox" type="checkbox" name="msgnotify" value="1" $msgcheck> {lang post_msg_notify}<br>
复制代码
3.模板文件夹\post_editpost.htm
查找:
- <input class="checkbox" type="checkbox" name="usesig" value="1" $usesigcheck> {lang post_show_sig}<br>
复制代码
下面加:
- <!--{if $thread[dateline]==$postinfo[dateline]}--><input class="checkbox" type="checkbox" name="msgnotify" value="1" $msgcheck> {lang post_msg_notify}<br><!--{/if}-->
复制代码
4.模板文件夹\forumdisplay.htm
查找:
- <input class="checkbox" type="checkbox" name="usesig" value="1" $usesigcheck> {lang post_show_sig}<br>
复制代码
下面加:
- <input class="checkbox" type="checkbox" name="msgnotify" value="1" $msgcheck> {lang post_msg_notify}<br>
复制代码
5.模板文件夹\templates.lang.php
查找:
- 'post_email_notify' => '接收新回复邮件通知',
复制代码
下面加:
- 'post_msg_notify' => '接收新回复短信通知',
复制代码
6.forumdisplay.php
查找:
下面加:
- $msgcheck = 1; //默认情况下, 是否打开短信通知的功能(0=关闭)...
- $msgcheck = $msgcheck ? 'checked' : NULL;
复制代码
7.include/newthread.inc.php
查找:
下面加:
- $msgcheck = 1; //默认情况下, 是否打开短信通知的功能(0=关闭)...
- $msgcheck = $msgcheck ? 'checked' : NULL;
复制代码
查找:
- displayorder, digest, blog
复制代码
后面加:
继续找:
'- $displayorder', '$digest', '$blog'
复制代码
后面加:
8.include/editpost.inc.php
查找:
- $htmloncheck = $postinfo['htmlon'] ? 'checked' : '';
复制代码
下面加:
- $msgcheck = $thread['msgnotify'] ? 'checked' : '';
复制代码
查找:
- subject='$subject', readperm='$readperm'
复制代码
后面加:
9.include/newreply.inc.php
查找:
上面加:
- //新回复,论坛短信通知 By Oytktk(靖飒)
- if(!empty($thread['msgnotify']) && $discuz_uid && $thread['author'] != $discuz_user){
- //1.定义短信内容...
- $msgnate = "
- 这是由论坛系统自动发送的通知短消息。
- [b]以下您所发表的主题被 ".$discuz_user." 回复。[/b]
- [b]主题地址:[/b] [url=".$boardurl."viewthread.php?tid=".$thread['tid']."]".$thread['subject']."[/url]
- [b]回复会员:[/b] [url=".$boardurl."viewpro.php?uid=".$discuz_uid."]".$discuz_user."[/url]
- [b]回复时间:[/b] ".gmdate("$dateformat $timeformat", $timestamp + $timeoffset * 3600)."
- [b]回复位置:[/b] [url]".$boardurl."viewthread.php?tid=$tid&pid=$pid&page=".(@ceil(($thread['replies'] + 2) / $ppp))."&extra=$extra#pid".$pid."[/url]
- 为了本社区的更好发展, 请积极回贴. 谢谢您的支持!
- ";
- $checktid = "[NewRe:".$tid."]您发表的主题已有新的回复...";
- //检查是否已有信息报告...
- $likes = "[NewRe:".$tid;
- $query = $db->query("SELECT pmid FROM {$tablepre}pms WHERE subject LIKE '$likes%'");
- //2. 执行短信通知...
- if($seles = $db->fetch_array($query)){
- $db->query("UPDATE {$tablepre}members SET newpm='1' WHERE username='$thread[author]'");
- $db->query("UPDATE {$tablepre}pms SET msgfrom='$discuz_user', msgfromid='$discuz_uid', new='1', dateline='$timestamp', message='$msgnate' WHERE pmid='$seles[pmid]'");
- }else{
- $db->query("UPDATE {$tablepre}members SET newpm='1' WHERE username='$thread[author]'");
- $db->query("INSERT INTO {$tablepre}pms (msgfrom, msgfromid, msgtoid, folder, new, subject, dateline, message)
- VALUES ('$discuz_user', '$discuz_uid', '$thread[authorid]', 'inbox', '1', '$checktid', '$timestamp', '$msgnate')");
- }
- }
- //oytktk end
复制代码
10.后台,更新缓存...OK..
[ 本帖最后由 小朱-001 于 2006-10-10 11:04 编辑 ] |