搬来SAE这么久了,也懒得折腾。这才想起sitemap插件没法工作了,一直在使用caixw 编写的那个sitemap插件。为了自己使用移植到SAE上来。做了一点变动,在sitemap文件中剔除了附件条目。xml文件存放于SaeStorage,在插件上传安装后,为了保证插件在sae平台正常工作,还需要做以下工作:
1、在typecho的代码根目录下添加sitemap.php文件
<?php
$domain = "typecho"; //存放sitemap文件的domain
$sitemap = "";
if(isset($_GET['index']) && '' != $_GET['index']){
$file = 'sitemap'.$_GET['index'].'.xml';
}else{
$file = 'sitemap.xml';
}
$s = new SaeStorage();
if($s->fileExists($domain, $file)){
$sitemap = $s->read($domain, $file);
header("Content-type: application/xml; charset=utf-8");
echo $sitemap;
}else{
header('Location: http://'.$_SERVER['HTTP_HOST']);
}
?>
2、在config.yaml文件中添加
- rewrite: if ( !is_dir() && !is_file() && path ~ "/sitemap(.*).xml" ) goto "sitemap.php?index=$1"
3、在插件设置中设置domain
下载:点这里
这几天折腾到SAE上来了,有些插件和代码需要修改,零零散散的搞了好几天了,经过几天的使用没有问题了,正式发出来。原来CommentToMail的SAE版,使用了sae的mail类的quickSend(),用网易的邮箱能发,但是腾讯企业邮箱没发,日志说是用户无法验证。quickSend没有发送from项,通不过smtp服务器的用户验证,改用sae的标准发信方式就没问题了。
本来也直接把CommentToMail的1.2.5的标准版搬过来的,在测试的时候完全没问题了,phpmailer可以在sae上发邮件,可是安装到我的博客上完全没法,没错误日志,但是就没发出邮件。同样是SAE的一个测试博客就没问题,真的搞不清原因。
由于是修改版,版本号没变
CommentToMail-sae.zip
或者这里下载
还有几个插件也移植到SAE上了,整理了再发布出来。
本来在考虑Typecho的插件仓库的问题,70已经说了新版有插件模板中心,这个就不再考虑了。由于新版在即,把原来插件仓库的部分功能剥离出来诞生了这个插件。
本插件实现的功能是上传zip压缩的插件,自动解压到插件目录。再一个就是插件管理功能,主要是在线删除插件。
有需要的下载:UploadPlugin.1.0.0.zip
1.0.1版加入了模板上传和在线删除功能,需要的到这里下载
阅读剩余部分...
前一版1.2.4问题较多,所以做了修正,没有增加功能。
细节上的变化:
1、取消设置中的邮件主体格式设置,由插件目录下的owner.html和guest.html两个模板实现。以前是放在CommentToMail/log目录下的,现在直接发在插件目录CommentToMail/下。
2、异步请求需要socket支持,自动依次调用fsockopen,pfsockopen,stream_socket_client,当这几个函数均被禁用,本插件就完全无法工作。
3、改变了发信的模式,原来是调用外部文件实现异步发送,现在改用action,权限上好控制一些。
如果要升级插件,需要禁用以前的版本,再上传覆盖后激活使用。
当出现插件无法工作,日志文件也无法生成的情况,请尝试把插件目录下的log和cache目录权限设为777,正常的应该为755
如果错误日志提示为无法连接smtp服务器,而设置又没任何问题的,请把插件目录下的class.phpmailer.php文件中小写的‘smtp’改为大写‘SMTP’ 。这是个很怪异的问题。
如果连错误日志都没有的话,目录权限又没问题,那么就是socket部分没有执行,有可能是fsockopen不能获取http的内容,可以使用phpinfo()查看“Registered PHP Streams”一项里面是否有http。
CommentToMail.1.2.5.zip 使用说明
如果要让评论者选择是否接收邮件需要在模板的comments.php文件中添加
<label><input type="checkbox" name="banmail" id="banmail" value="stop" />拒收邮件</label>