更新
This commit is contained in:
parent
a155178fa0
commit
2ae9560cfc
120
core/factory.php
120
core/factory.php
@ -1,5 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require_once("phpmailer.php");
|
||||||
|
require_once("smtp.php");
|
||||||
|
|
||||||
/* 加强评论拦截功能 */
|
/* 加强评论拦截功能 */
|
||||||
Typecho_Plugin::factory('Widget_Feedback')->comment = array('Intercept', 'message');
|
Typecho_Plugin::factory('Widget_Feedback')->comment = array('Intercept', 'message');
|
||||||
class Intercept
|
class Intercept
|
||||||
@ -43,6 +46,123 @@ class Intercept
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 邮件通知 */
|
||||||
|
if (
|
||||||
|
Helper::options()->JCommentMail === 'on' &&
|
||||||
|
Helper::options()->JCommentMailHost &&
|
||||||
|
Helper::options()->JCommentMailPort &&
|
||||||
|
Helper::options()->JCommentMailFromName &&
|
||||||
|
Helper::options()->JCommentMailAccount &&
|
||||||
|
Helper::options()->JCommentMailPassword
|
||||||
|
) {
|
||||||
|
Typecho_Plugin::factory('Widget_Feedback')->finishComment = array('Email', 'send');
|
||||||
|
}
|
||||||
|
|
||||||
|
class Email
|
||||||
|
{
|
||||||
|
public static function send($comment)
|
||||||
|
{
|
||||||
|
$mail = new PHPMailer();
|
||||||
|
$mail->isSMTP();
|
||||||
|
$mail->SMTPAuth = true;
|
||||||
|
$mail->SMTPSecure = 'ssl';
|
||||||
|
$mail->CharSet = 'UTF-8';
|
||||||
|
$mail->Host = Helper::options()->JCommentMailHost;
|
||||||
|
$mail->Port = Helper::options()->JCommentMailPort;
|
||||||
|
$mail->FromName = Helper::options()->JCommentMailFromName;
|
||||||
|
$mail->Username = Helper::options()->JCommentMailAccount;
|
||||||
|
$mail->From = Helper::options()->JCommentMailAccount;
|
||||||
|
$mail->Password = Helper::options()->JCommentMailPassword;
|
||||||
|
$mail->isHTML(true);
|
||||||
|
$text = $comment->text;
|
||||||
|
$text = preg_replace_callback(
|
||||||
|
'/\:\:\(\s*(呵呵|哈哈|吐舌|太开心|笑眼|花心|小乖|乖|捂嘴笑|滑稽|你懂的|不高兴|怒|汗|黑线|泪|真棒|喷|惊哭|阴险|鄙视|酷|啊|狂汗|what|疑问|酸爽|呀咩爹|委屈|惊讶|睡觉|笑尿|挖鼻|吐|犀利|小红脸|懒得理|勉强|爱心|心碎|玫瑰|礼物|彩虹|太阳|星星月亮|钱币|茶杯|蛋糕|大拇指|胜利|haha|OK|沙发|手纸|香蕉|便便|药丸|红领巾|蜡烛|音乐|灯泡|开心|钱|咦|呼|冷|生气|弱|吐血|狗头)\s*\)/is',
|
||||||
|
function ($match) {
|
||||||
|
return '<img style="max-height: 22px;" src="' . Helper::options()->themeUrl . '/assets/owo/paopao/' . str_replace('%', '', urlencode($match[1])) . '_2x.png"/>';
|
||||||
|
},
|
||||||
|
$text
|
||||||
|
);
|
||||||
|
$text = preg_replace_callback(
|
||||||
|
'/\:\@\(\s*(高兴|小怒|脸红|内伤|装大款|赞一个|害羞|汗|吐血倒地|深思|不高兴|无语|亲亲|口水|尴尬|中指|想一想|哭泣|便便|献花|皱眉|傻笑|狂汗|吐|喷水|看不见|鼓掌|阴暗|长草|献黄瓜|邪恶|期待|得意|吐舌|喷血|无所谓|观察|暗地观察|肿包|中枪|大囧|呲牙|抠鼻|不说话|咽气|欢呼|锁眉|蜡烛|坐等|击掌|惊喜|喜极而泣|抽烟|不出所料|愤怒|无奈|黑线|投降|看热闹|扇耳光|小眼睛|中刀)\s*\)/is',
|
||||||
|
function ($match) {
|
||||||
|
return '<img style="max-height: 22px;" src="' . Helper::options()->themeUrl . '/assets/owo/aru/' . str_replace('%', '', urlencode($match[1])) . '_2x.png"/>';
|
||||||
|
},
|
||||||
|
$text
|
||||||
|
);
|
||||||
|
$text = preg_replace('/\{!\{([^\"]*)\}!\}/', '<img style="max-width: 100%;vertical-align: middle;" src="$1"/>', $text);
|
||||||
|
$html = '
|
||||||
|
<style>.Joe{width:550px;margin:0 auto;border-radius:8px;overflow:hidden;font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;box-shadow:0 2px 12px 0 rgba(0,0,0,0.1);word-break:break-all}.Joe_title{color:#fff;background:linear-gradient(-45deg,rgba(9,69,138,0.2),rgba(68,155,255,0.7),rgba(117,113,251,0.7),rgba(68,155,255,0.7),rgba(9,69,138,0.2));background-size:400% 400%;background-position:50% 100%;padding:15px;font-size:15px;line-height:1.5}</style>
|
||||||
|
<div class="Joe"><div class="Joe_title">{title}</div><div style="background: #fff;padding: 20px;font-size: 13px;color: #666;"><div style="margin-bottom: 20px;line-height: 1.5;">{subtitle}</div><div style="padding: 15px;margin-bottom: 20px;line-height: 1.5;background: repeating-linear-gradient(145deg, #f2f6fc, #f2f6fc 15px, #fff 0, #fff 25px);">{content}</div><div style="line-height: 2">请注意:此邮件由系统自动发送,请勿直接回复。<br>若此邮件不是您请求的,请忽略并删除!</div></div></div>
|
||||||
|
';
|
||||||
|
/* 如果是博主发的评论 */
|
||||||
|
if ($comment->authorId == $comment->ownerId) {
|
||||||
|
/* 发表的评论是回复别人 */
|
||||||
|
if ($comment->parent != 0) {
|
||||||
|
$db = Typecho_Db::get();
|
||||||
|
$parentInfo = $db->fetchRow($db->select('mail')->from('table.comments')->where('coid = ?', $comment->parent));
|
||||||
|
$parentMail = $parentInfo['mail'];
|
||||||
|
/* 被回复的人不是自己时,发送邮件 */
|
||||||
|
if ($parentMail != $comment->mail) {
|
||||||
|
$mail->Body = strtr(
|
||||||
|
$html,
|
||||||
|
array(
|
||||||
|
"{title}" => '您在 [' . $comment->title . '] 的评论有了新的回复!',
|
||||||
|
"{subtitle}" => '博主:[ ' . $comment->author . ' ] 在《 <a style="color: #12addb;text-decoration: none;" href="' . substr($comment->permalink, 0, strrpos($comment->permalink, "#")) . '" target="_blank">' . $comment->title . '</a> 》上回复了您:',
|
||||||
|
"{content}" => $text,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$mail->addAddress($parentMail);
|
||||||
|
$mail->Subject = '您在 [' . $comment->title . '] 的评论有了新的回复!';
|
||||||
|
$mail->send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* 如果是游客发的评论 */
|
||||||
|
} else {
|
||||||
|
/* 如果是直接发表的评论,不是回复别人,那么发送邮件给博主 */
|
||||||
|
if ($comment->parent == 0) {
|
||||||
|
$db = Typecho_Db::get();
|
||||||
|
$authoInfo = $db->fetchRow($db->select()->from('table.users')->where('uid = ?', $comment->ownerId));
|
||||||
|
$authorMail = $authoInfo['mail'];
|
||||||
|
if ($authorMail) {
|
||||||
|
$mail->Body = strtr(
|
||||||
|
$html,
|
||||||
|
array(
|
||||||
|
"{title}" => '您的文章 [' . $comment->title . '] 收到一条新的评论!',
|
||||||
|
"{subtitle}" => $comment->author . ' [' . $comment->ip . '] 在您的《 <a style="color: #12addb;text-decoration: none;" href="' . substr($comment->permalink, 0, strrpos($comment->permalink, "#")) . '" target="_blank">' . $comment->title . '</a> 》上发表评论:',
|
||||||
|
"{content}" => $text,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$mail->addAddress($authorMail);
|
||||||
|
$mail->Subject = '您的文章 [' . $comment->title . '] 收到一条新的评论!';
|
||||||
|
$mail->send();
|
||||||
|
}
|
||||||
|
/* 如果发表的评论是回复别人 */
|
||||||
|
} else {
|
||||||
|
$db = Typecho_Db::get();
|
||||||
|
$parentInfo = $db->fetchRow($db->select('mail')->from('table.comments')->where('coid = ?', $comment->parent));
|
||||||
|
$parentMail = $parentInfo['mail'];
|
||||||
|
/* 被回复的人不是自己时,发送邮件 */
|
||||||
|
if ($parentMail != $comment->mail) {
|
||||||
|
$mail->Body = strtr(
|
||||||
|
$html,
|
||||||
|
array(
|
||||||
|
"{title}" => '您在 [' . $comment->title . '] 的评论有了新的回复!',
|
||||||
|
"{subtitle}" => $comment->author . ' 在《 <a style="color: #12addb;text-decoration: none;" href="' . substr($comment->permalink, 0, strrpos($comment->permalink, "#")) . '" target="_blank">' . $comment->title . '</a> 》上回复了您:',
|
||||||
|
"{content}" => $text,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$mail->addAddress($parentMail);
|
||||||
|
$mail->Subject = '您在 [' . $comment->title . '] 的评论有了新的回复!';
|
||||||
|
$mail->send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* 加强后台编辑器功能 */
|
/* 加强后台编辑器功能 */
|
||||||
if (Helper::options()->JEditor !== 'off') {
|
if (Helper::options()->JEditor !== 'off') {
|
||||||
Typecho_Plugin::factory('admin/write-post.php')->richEditor = array('Editor', 'Edit');
|
Typecho_Plugin::factory('admin/write-post.php')->richEditor = array('Editor', 'Edit');
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/* 获取主题当前版本号 */
|
/* 获取主题当前版本号 */
|
||||||
function _getVersion()
|
function _getVersion()
|
||||||
{
|
{
|
||||||
return "6.9.2";
|
return "6.9.3";
|
||||||
};
|
};
|
||||||
|
|
||||||
/* 判断是否是手机 */
|
/* 判断是否是手机 */
|
||||||
|
4039
core/phpmailer.php
Normal file
4039
core/phpmailer.php
Normal file
File diff suppressed because it is too large
Load Diff
1249
core/smtp.php
Normal file
1249
core/smtp.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -823,6 +823,74 @@ function themeConfig($form)
|
|||||||
$JSiteMap->setAttribute('class', 'joe_content joe_other');
|
$JSiteMap->setAttribute('class', 'joe_content joe_other');
|
||||||
$form->addInput($JSiteMap->multiMode());
|
$form->addInput($JSiteMap->multiMode());
|
||||||
|
|
||||||
|
|
||||||
|
/* 评论发信 */
|
||||||
|
$JCommentMail = new Typecho_Widget_Helper_Form_Element_Select(
|
||||||
|
'JCommentMail',
|
||||||
|
array('off' => '关闭(默认)', 'on' => '开启'),
|
||||||
|
'off',
|
||||||
|
'是否开启评论邮件通知',
|
||||||
|
'介绍:开启后评论内容将会进行邮箱通知 <br />
|
||||||
|
注意:此项需要您完整无错的填写下方的邮箱设置!! <br />
|
||||||
|
其他:下方例子以QQ邮箱为例,推荐使用QQ邮箱'
|
||||||
|
);
|
||||||
|
$JCommentMail->setAttribute('class', 'joe_content joe_other');
|
||||||
|
$form->addInput($JCommentMail->multiMode());
|
||||||
|
|
||||||
|
$JCommentMailHost = new Typecho_Widget_Helper_Form_Element_Text(
|
||||||
|
'JCommentMailHost',
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
'邮箱服务器地址',
|
||||||
|
'例如:smtp.qq.com'
|
||||||
|
);
|
||||||
|
$JCommentMailHost->setAttribute('class', 'joe_content joe_other');
|
||||||
|
$form->addInput($JCommentMailHost->multiMode());
|
||||||
|
|
||||||
|
$JCommentMailPort = new Typecho_Widget_Helper_Form_Element_Text(
|
||||||
|
'JCommentMailPort',
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
'邮箱服务器端口号',
|
||||||
|
'例如:465'
|
||||||
|
);
|
||||||
|
$JCommentMailPort->setAttribute('class', 'joe_content joe_other');
|
||||||
|
$form->addInput($JCommentMailPort->multiMode());
|
||||||
|
|
||||||
|
$JCommentMailFromName = new Typecho_Widget_Helper_Form_Element_Text(
|
||||||
|
'JCommentMailFromName',
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
'发件人昵称',
|
||||||
|
'例如:帅气的象拔蚌'
|
||||||
|
);
|
||||||
|
$JCommentMailFromName->setAttribute('class', 'joe_content joe_other');
|
||||||
|
$form->addInput($JCommentMailFromName->multiMode());
|
||||||
|
|
||||||
|
$JCommentMailAccount = new Typecho_Widget_Helper_Form_Element_Text(
|
||||||
|
'JCommentMailAccount',
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
'发件人邮箱',
|
||||||
|
'例如:2323333339@qq.com'
|
||||||
|
);
|
||||||
|
$JCommentMailAccount->setAttribute('class', 'joe_content joe_other');
|
||||||
|
$form->addInput($JCommentMailAccount->multiMode());
|
||||||
|
|
||||||
|
$JCommentMailPassword = new Typecho_Widget_Helper_Form_Element_Text(
|
||||||
|
'JCommentMailPassword',
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
'邮箱授权码',
|
||||||
|
'介绍:这里填写的是邮箱生成的授权码 <br>
|
||||||
|
获取方式(以QQ邮箱为例):<br>
|
||||||
|
QQ邮箱 > 设置 > 账户 > IMAP/SMTP服务 > 开启 <br>
|
||||||
|
其他:这个可以百度一下开启教程,有图文教程'
|
||||||
|
);
|
||||||
|
$JCommentMailPassword->setAttribute('class', 'joe_content joe_other');
|
||||||
|
$form->addInput($JCommentMailPassword->multiMode());
|
||||||
|
|
||||||
|
|
||||||
$JBaiduToken = new Typecho_Widget_Helper_Form_Element_Text(
|
$JBaiduToken = new Typecho_Widget_Helper_Form_Element_Text(
|
||||||
'JBaiduToken',
|
'JBaiduToken',
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "typecho-joe-next",
|
"name": "typecho-joe-next",
|
||||||
"version": "6.9.2",
|
"version": "6.9.3",
|
||||||
"description": "A Theme Of Typecho",
|
"description": "A Theme Of Typecho",
|
||||||
"main": "index.php",
|
"main": "index.php",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
$todayDate = date('m/d', $time);
|
$todayDate = date('m/d', $time);
|
||||||
$db = Typecho_Db::get();
|
$db = Typecho_Db::get();
|
||||||
$prefix = $db->getPrefix();
|
$prefix = $db->getPrefix();
|
||||||
$sql = "SELECT * FROM `{$prefix}contents` WHERE DATE_FORMAT(FROM_UNIXTIME(created), '%m/%d') = '{$todayDate}' and created < {$time} and type = 'post' and status = 'publish' and (password is NULL or password = '') LIMIT 10";
|
$sql = "SELECT * FROM `{$prefix}contents` WHERE created < {$time} and FROM_UNIXTIME(created, '%m/%d') = '{$todayDate}' and type = 'post' and status = 'publish' and (password is NULL or password = '') LIMIT 10";
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$historyTodaylist = [];
|
$historyTodaylist = [];
|
||||||
if ($result instanceof Traversable) {
|
if ($result instanceof Traversable) {
|
||||||
|
Loading…
Reference in New Issue
Block a user