SAE环境下开启WordPress评论自动邮件回复功能

2011-11-28

鉴于SAE环境的特殊性,WordPress在常规PHP环境下的评论邮件自动回复功能不能正常使用,需要做一些改动才可以。

首先我要说明的是,我要实现的是让访客决定是否需要在有人回复他的时候接收邮件。

使用SAE Editor,进入所用主题的编辑界面,在functions.php文件中的<?php和?>之间添加以下函数:

/* 所有回复都发邮件 马文建的博客 https://mawenjian.net/ */
function comment_mail_notify($comment_id) {
  $admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
  $admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail.
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment->comment_author_email);
  $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  global $wpdb;
  if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == '')
    $wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
  if (($comment_author_email != $admin_email && isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email && $admin_notify == '1'))
    $wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
  $notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : '0';
  $spam_confirmed = $comment->comment_approved;
  if ($parent_id != '' && $spam_confirmed != 'spam' && $notify == '1') {
    $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $message = '
    <div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px;">
      <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
      <p>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br />'
       . trim(get_comment($parent_id)->comment_content) . '</p>
      <p>' . trim($comment->comment_author) . ' 给您的回复:<br />'
       . trim($comment->comment_content) . '<br /></p>
      <p>您可以点击<a href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看回复的完整內容</a></p>
      <p>还要再度光临 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
      <p>(此邮件由系统自动发送,请勿回复.)</p>
    </div>';
    $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
    $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
    wp_mail( $to, $subject, $message, $headers );
    //echo 'mail to ', $to, '<br/> ' , $subject, $message; // for testing
  }
}
add_action('comment_post', 'comment_mail_notify');

/* 自动加勾选栏 */
function add_checkbox() {
  echo '<input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked" style="margin-left:20px;" /><label for="comment_mail_notify">有人回复时邮件通知我</label>';
}
add_action('comment_form', 'add_checkbox');
// -- END ----------------------------------------

如果是普通PHP环境的话,完成此步就可以实现回复的功能了。 阅读全文 »

各公司纷纷发力CDN,CDN大战在所难免

2011-11-26

近一年来,伴随着云计算的日益成熟,各大国内互联网公司纷纷发力CDN——从蓝汛旗下Webluker的免费CDN加速服务,到盛大云旗下按需付费的数字分发系统,再到创新工场刚刚推出不久的”安全宝“,一个个的国内互联网大鳄,如过江之鲫一般,纷纷发力CDN这一新兴市场,一场CDN市场上大战在所难免。CDN这一普通网站可望而不可即的贵族技术,也必将伴随着四起的狼烟,跌下神坛,成为各家网站的必备之选。

阅读全文 »

安全宝——创新工场旗下的免费CDN加速服务

2011-11-26

anquanbao-logo

安全宝”网站保护系统是李开复先生创新工场旗下的一个项目。"安全宝"为社区内的网站提供一站式的安全解决方案,网站在“零部署”、“零维护”的情况下,防止诸如XSS、SQL注入、木马、零日攻击、僵尸网络等各种网站安全问题。同时,安全宝综合采用跨运营商智能调度、页面优化、页面缓存等技术,进一步提升访问速度,降低故障率,从而整体提升网站的用户体验。

近日,安全宝在其媒体发布会上对外宣布,将把“免费策略”作为公司长期发展的基础战略。安全宝CEO马杰在发布会上表示,安全宝推出这次免费战略,是希望可以让基础的网站安全服务更快地在行业中普及,同时也希望更多的安全友商加入到这一行列。所以啊,咱们这些小站长们有福啦,咱们可以在相当长的一段时间里免费使用“安全宝”提供的服务了! 阅读全文 »

传电信联通宽带反垄断案不会和解 或从重处罚

2011-11-26

telecom-vs-unicom

“关于宽带反垄断的事情,最快下周会有一个初步结果出来。”11月24日,有知情人士告诉记者。而业界另有传言称,电信联通的一些做法可能惹怒了发改委,导致反垄断的调查不会和解,而是“从重处罚”。

根据目前披露的消息,发改委从今年4月就启动了针对电信、联通的反垄断调查,调查的直接原因是因为有人举报。种种迹象表明,所谓的举报材料或者关键材料之一就有来自社科院信息化研究中心针对互联网接入领域的调研报告。

据参与调研报告的高红冰告诉记者,在宽带反垄断的调研报告整理出来之后,其实往各个层面的政府机构都有递交,当然包括发改委、工信部等等,“因为研究成果上报相关部门是很正常的事情”。

最终,发改委启动了调查。但发改委反垄断调查的推进似乎并不顺利。让事情得到真正发酵的是央视以直接采访发改委的形式曝光了整个事件。随后,公众对反垄断的呼声群情激昂,各利益方也透过媒体展开了舆论战。 阅读全文 »

今天为博客增加了海外CDN节点

2011-11-23

首先是蛋疼,其次是为了提高博客的访问速度,今天为博客增加了海外CDN节点。

本来打算使用GooglePage Speed Service来着,一来是相信Google的服务品质,二来是Google那遍布全球的加速节点,让人不得不嫉妒啊!其实这些都不是最重要的,最重要的是Google拥有遍布全球的专有网络,自己家的高速公路和公用的公路能一样啊?

但令人悲催的是,ghs.google.com的IP在大陆被干掉了,本来这对海外用户也没影响啊。这时候就得说说那个“智能”DNS的DNSPOD了,活生生把国内用户解析到了海外,也就是说,用户要访问被墙的IP了。

啊!啊!啊!肿么办啊!好吧,我还是用incapsula的服务吧,木有被墙。行了,先这么凑活着吧。有问题以后再改。 阅读全文 »

SAE环境下WordPress插件移植注意事项

2011-11-22

要想把wp插件成功移植到sae上,首先应该搞清sae支持的受限PHP语言和完整版本的PHP语言有何区别。我认为SAE和完整版PHP有如下区别:

最显著的不同莫过于文件操作和文件存储了。首先说文件操作,SAE出于安全性考虑,禁用了很多本地文件操作函数,并且没有提供替换的函数,我认为将来开放的可能性也不是很大,因为这关系到整个云平台的安全性。然后是文件存储,SAE采用和Amazon S3类似的存储技术,将静态文件存放到单独的服务器上,尽管这样有利于文件的集中管理,也有利于使用CDN技术将静态文件分发到网络边缘,但同时带来了一个问题——即不能使用PHP原生函数进行静态文件的存取操作,所以这部分函数需要替换掉。

其次,不同于Apache的.htaccess文件,SAE使用AppConfig文件来对web服务进行配置。如果wp需要使用urlrewrite等功能的,注意对此进行相应更改。

原先SAE不支持的cUrl函数、GD库等函数,现在已经通过函数重载实现,所以这部分可以不必考虑。

别的嘛,暂时没想出来,以后接着补充。

搞IT的伤不起啊——IT领域成“猝死”重灾区

2011-11-19

11月18日,百度公司一名技术人员因心脏病突发猝死引发业内高度关注。近年来IT领域有多名从业者因过度劳累猝死,且他们大多都就职于知名互联网公司。对此,有业内人士分析表示这同IT从业者工作时间长、工作强度大等不无关系。

资料显示,近年来IT领域从业者猝死的消息一直不断。

2005年9月,网易公司代理CEO孙德棣因病辞世,年仅38岁。

2005年12月,前IBM大中华区政府及公众事业部总经理李清平因心脏病突发猝死,年仅46岁。

2006年2月,东软集团嵌入式软件事业部大连开发中心副主任张东因心脏病突发猝死,年仅36岁。

2006年5月28日,深圳华为公司研发人员胡新宇因病毒性脑炎被诊断死亡,年仅25岁。

2009年11月,酷6网研发部一名罗姓员工因连续加班、疲劳过度,在公司内吐血猝死。

2010年4月,搜狐公司证实其无线事业部一位彭姓技术人员以外死亡,年纪在30岁左右。

2010年5月,腾讯网女性频道主编于石泓因脑溢血死亡,年仅37岁。

2011年7月,原凤凰网总编辑、百事通首席运营官、总编辑吴征于突发疾病,经紧急抢救无效逝世,年仅39岁。

可以看出,IT领域已成为了“猝死”的重灾区。有主题为“互联网从业者健康调查”结果显示,互联网行业的工作压力大以及长期与对着电脑工作导致大部分从业者健康状况堪忧。 阅读全文 »

“盛大云”简单测试

2011-11-16

(本文转载自 留点后路 http://www.citydog.me/)

在写本篇日志之前,我是有点小窃喜的,因为国内几家大公司都开始搞“云主机”,同时无数个中小互联网企业也在搞这个项目,虽然现在的价格还有些居高不下,但相信随着时间的推移,国内云主机的“平民时代”最终会到来!那么闲话少说,直奔主题。先来张“盛大云主机”的靓照:

grandcloud-sysinfo

盛大云的CPU很另类:AMD Opteron(tm) Processor 6172,这颗CPU是12核心,主频2.2GHz,每核心的二级缓存为512KB,三级缓存12MB,从来源于网上的“CPU性能排名”看,它和4核心的Intel Xeon X5687 @ 3.0GHz性能相当。另外,盛大云给了1GB的Swap,虽然这东西不怎么重要。以下接着是我个人对盛大云的实测数据,不具有普遍性,稍微带点特殊性。 阅读全文 »

今天把Baidu Sitemap Generator搞到SAE上来了

2011-11-16

偶今天花了几分钟,把Wordpress插件Baidu Sitemap Generator搞到了Sina App Engine上边。嘻嘻!

偶的百度站点地图:https://mawenjian.net/sitemap_baidu.xml,。

说下运行过程吧,先让Baidu Sitemap Generator将文件写入到Storage中,然后写个CURL的PHP文件抓取Storage中的sitemap,最后rewrite一下,搞定!

阅读全文 »

Google Cloud SQL 云端数据库开测

2011-10-07

很多Google App Engine用户都想要一个简单而传统的数据驱动应用,于是今天Google宣布开放测试Google Cloud SQL。这是一个接近传统数据库的云端服务,并可与App Engine整合:

不需要管理员和维护,Google会帮你搞定一切

高可靠性和可用性,你的数据会在多个数据中心之间同步,即便一个出问题也不会影响使用

带有JDBC支持(适合基于Java的App Engine应用使用)和DB-API支持(适合基于Python的App Engine应用使用)的传统MySQL数据库环境

全面的用户界面,适合数据库管理

简单而强大的与Google App Engine整合

该服务也提供数据导入和导出功能,所以你可以将现有的MySQL数据库迁移到App Engine云端。

Google Cloud SQL目前处于测试阶段,暂时免费,Google将在收费前30天通知大家将来的使用费用。

(原文链接:http://www.guao.hk/posts/google-cloud-sql.html