Posts Tagged with plugin

Textpattern Plugin: wyn_email_publish (Sync TXP to Live Space)

UPDATE 2008-03-28: 已上传至 Google Codes: wyn-txp-plugins

It has been uploaded to Google Codes: wyn-txp-plugins

————————————————-

如果msn messenger那个联系人边上的小星星能够反映除了live space以外其他blog的更新,那么这个插件绝对不会出现。。。

Wordpress有个一样功能的插件 dj-email-publish , 不过自从换到Textpattern之后就一直没找到同样的插件,最近搭错了神经自己动手写

好吧,我承认我很懒,以至于没有写任何的配置页面,连Post的style甚至email地址都全部hard coding了。。。挨骂了再改吧

用法:
1. 安装插件
2. 编辑插件,找到 txpHtmlMail (“yourmail@mail.com”, $Title, $body); 一行,修改 yourmail@mail.com 为你的邮件地址
3. 激活插件

下载
wyn_email_publish.txt

————————- 传说中的分割线 ————————-

I will never write this if the star beside contact list of msn messenger will be showed after I update my TXP blog.

Usage:
1. Install plugin
2. Edit plugin, find txpHtmlMail (“yourmail@mail.com”, $Title, $body); line and change yourmail@mail.com to your target email address.
3. Active plugin

Download
wyn_email_publish.txt

修正plugin和Textpattern 4.10的兼容性问题

换到4.10后发现之前的一部分插件在后台的管理功能无法正常使用,其实没什么大问题,因为插件功能还是正常,只是插件自身的后台管理部分有些问题

今天升级tru_tags到3.0,顺手也把这个毛病解决了.问题出在text_input函数上,函数的作用是生成一个输入框的html代码,不过4.10的textpattern已经完全废弃了这个函数,看了4.0.5的代码,发现这个函数不过也只是fInput的一个包装,那么解决就很easy了

编辑有问题的插件,愿意按fInput的参数列表逐个替换text_input也行,不过最方便的是在插件代码的最前面加上原来4.0.5的代码

function text_input ($name, $val, $size = '') {
return fInput ('text', $name, $val, 'edit', '', '', $size, '', $name);
}

其实把这段代码直接加到textpattern的源码也行,不过不推荐,毕竟是要废弃的函数嘛...

Textpattern Plugin Creator

熟悉了Wordpress的插件体制的用户,一下子转到Textpattern,对其插件系统可能会很不适应,就像我一样…

Wordpress设置了专有的插件目录,按照特定的格式编写php文件,放到插件目录并在后台激活就可以了,而Textpattern则不同

在Textpattern中,一个插件不仅要遵循某种格式,而且在发布前要经过所谓的“编译”,而安装后的插件也不是以文件形式来存放,而是放在数据库的txp_plugin表里

大致看了一下表的字段,除了版本作者等基本信息外,有三个比较有意思的字段: code, code_restore, code_md5

第一个code字段保存的是插件源代码,也是当前正在工作的版本

第二个code_restore字段保存的是插件的初始源代码,也就是安装时候的源代码,因为textpattern允许用户在后台随时修改插件代码,而修改后的代码会单独保存在code字段,不会涉及到初始的代码,这样在必要时可以做恢复

第三个code_md5字段保存的是插件md5校验码,大概是用来比较当前版本和初始安装的版本比较有没有变化吧

跑题了,回头看看plugin所谓的编译吧

翻了一下官方的插件模板,发现所谓的编译其实很简单,就是新建一个数组,在数组里填入插件的作者版本帮助和源码,然后算出md5一并保存,接着对这个数组序列化并转换成base64编码,不难猜到textpattern后台安装插件的动作了,无非是所有操作的逆操作

不过每次都修改模板并运行获得源码似乎也挺麻烦的,于是借鉴zem plugin template写了一个简单的“编译器”,顺便学习了一下Sajax,和我一样懒得可以用这个吧,呵呵

Textpattern Plugin Creator

简单到简陋的东西,使用说明也免了吧,谁叫我懒呢…

TagConverter Mod

终于顺利升级到wordpress2.3,最大的变化是新版的wordpress内建了tag系统,这样一来原本的utw就没有什么存在的必要了。但是如何平滑过度到新版的tag系统倒是个头疼的问题,尽管wordpress自身提供了导入utw tag的功能,再配合TagConverter插件,也实现了related post和embedded tag的功能,但是仍旧有一个小小的不足,就是原本使用embedded嵌入的tag已经没有了。

怎么看都不爽,于是决定解决这个问题。不过对于我这种实在是懒得可以的人。。。hack一下TagConverters似乎比重写一个插件要方便很多,于是就有了这个mod版本:后台TagConverter的配置页面中增加了import embedded tag的功能,用来将所有帖子里的embedded tag全部恢复出来。遇到和我一样问题的同学试试这个版本吧 :)

TagConverterMod

Quoter插件的Bug

换了Sandbox并调整了一下主题,发现ajax comments无效了,一直以为是模板的关系,仔细跟了一下才发现居然是Quoter搞的鬼。

因该算是Quoter的一个Bug吧,所有带js参数的url全部返回Quoter的JS,于是。。。ajax comments的js便失效了,comment的提交代码自然也就不存在了。

解决:其实可以仿照ajax comments的做法(这点ajax comments的作者要比quoter的作者考虑的周到),就是在返回js之前,判断url是不是quoter的,如果是的话再返回,diff文件如下:

--- quoter.php.ori 2007-08-30 01:38:24.000000000 -0700
+++ quoter.php 2007-08-30 01:42:41.000000000 -0700
-26,8 +26,12
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

+define('PLUGIN_QUOTER_FILE', 'quoter.php');
+define('PLUGIN_QUOTER_PATH', '/wp-content/plugins/quoter/');
+
// Javascript code
-if (isset($_GET['js'])) {
+if(strstr($_SERVER['PHP_SELF'], PLUGIN_QUOTER_PATH.PLUGIN_QUOTER_FILE)
+ && isset($_GET['js'])) {
quoter_JScode();
}

-148,7 +152,8

// If it's a server side quote page don't let robots index it
- if (isset($_GET['quote']) && $_GET['quote'] != ""){
+ if(strstr($_SERVER['PHP_SELF'], PLUGIN_QUOTER_PATH.PLUGIN_QUOTER_FILE)
+ && isset($_GET['quote']) && $_GET['quote'] != ""){

echo ("n");