Posts Tagged with plugin

Feedsky Ping Plugin for wordpress - Mod

今天终于决定将我的RSS托管从Feedburner迁移到Feedsky,然后开始想办法搞定feed转向的问题

开始是用FeedSmith修改来用的,只要在FeedSmith的选项里填入feedsky的地址,然后对FeedSmith稍加修改:

找到这一段:

if (!preg_match("/feedburner|feedvalidator/i", $_SERVER['HTTP_USER_AGENT'])) {
add_action('template_redirect', 'ol_feed_redirect');
add_action('init','ol_check_url');
}
改成
if (!preg_match("/feedsky|feedburner|feedvalidator/i", $_SERVER['HTTP_USER_AGENT'])) {
add_action('template_redirect', 'ol_feed_redirect');
add_action('init','ol_check_url');
}
后来偶然发现Feedsky有一个已经做好的wordpress插件,而且提供ping的功能,但是这个plugin有一个限制,只能输入feedsky的feed名称,也就是说,所有feed会被转向到feed.feedsky.com/feedname的地址,其实对于不做域名绑定的用户已经完美了,不过对于绑定了域名的用户这种转向就没什么意义了,于是动手稍稍改动了一下。

稍微说明一下:在后台设置feed名的后面会比原来的版本多出加了一个文本输入框,用来填feed地址,如果这个feed地址置空的话则会默认使用feed.feedsky.com/feedname,因为我实在是比较懒,所以也没有加什么说明文字,同时也没有做feed地址的校验,所以。。。各位将就一下吧,能用就成,哈哈

下载 Feedsky Ping Reload

 

修正 Wordpress 2.2 Widget 的 bug

尽管Wordpress 2.2的Widget和Automattic的Sidebar Widget插件兼容,但是却存在一个不大不小的bug:

在调用register_sidebar注册超过一个Sidebar的时候,如果同时指定了Sidebar的名称,那么最终只能注册成功一个

Sidebar,例如按照Automattic的API应该可以使用register_sidebar (2, array (‘name’ => ‘aaa %d’))注册依次为aaa 1,aaa 2的sidebar,而在wordpress中的结果则是只有一个名为aaa的sidebar,看看代码(WORDPRESS DIR/wp-include/widgets.php)

function register_sidebars($number
= 1, $args = array()) {
$number = (int) $number;
if ( is_string($args) )
parse_str($args, $args);

$i = 1;

while ( $i < = $number ) {
$_args = $args;
if ( $number > 1 ) {
$_args['name'] = isset($args['name']) ? $args['name'] : sprintf(__
(
'Sidebar %d'), $i);
} else {
$_args['name'] = isset($args['name']) ? $args['name'] : __('Sidebar');
}

$_args['id'] = isset($args['id']) ? $args['id'] : "sidebar-$i";
register_sidebar($_args);
++$i;
}
}

嗯。。。相信已经有同学看出来了,在注册多于一个sidebar时,sidebar的名字是

 

isset($args[’name’]) ? $args[’name’] : sprintf(__(’Sidebar %d’), $i);

就是说如果指定了名字则已指定的名字为准,没有指定名称时才会按数字递增,那么修改就很容易了(其实照抄Automattic Sidebar Widget的就可以了,嘿嘿)

 

function register_sidebars($number = 1, $args = array()) {
$number = (int) $number;
if ( is_string($args) )
parse_str($args, $args);

$name = $args['name'] ? $args['name'] : __('Sidebar');

$i = 1;
while ( $i < = $number ) {
if ( isset($args['name']) && $number > 1 ) {
if ( !strstr($name, '%d') )
$name = "$name %d";
$args['name'] = sprintf($name, $i);
}
register_sidebar($args);
++$i;
}
}

ok,收工

 

firefox 扩展 hack

edgy的firefox已经升到 2.0b1 了,不过这样以来原来的好多扩展都不能用了,等了几天也不见作者更近,郁闷......自己动手吧

扩展的.xpi文件其实都是zip压缩文件,这个简单,unzip xxx.xpi,ok,解压缩的文件中有一个install.rdf,这个文件定义了扩展名称,版本,支持的firefox版本以及其他的一些附加信息:

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">

<Description about="urn:mozilla:install-manifest">
<em:id>{2722cbe5-82a8-4037-a8f5-e1cb2100e3b2}</em:id>
<em:name>Adsense Notifier</em:name>
<em:version>0.9.1</em:version>
<em:description>Displays your adsense earnings on the statusbar.</em:description>
<em:creator>Allen Holman</em:creator>
<em:homepageURL>http://code.mincus.com</em:homepageURL>
<em:iconURL>chrome://adsense/skin/adsense.png</em:iconURL>
<em:optionsURL>chrome://adsense/content/options.xul</em:optionsURL>
<em:aboutURL>chrome://adsense/content/about.xul</em:aboutURL>
<em:file>
<Description about="urn:mozilla:extension:file:adsense.jar">
<em:locale>locale/de-DE/adsense/</em:locale>
<em:locale>locale/en-US/adsense/</em:locale>
<em:locale>locale/it-IT/adsense/</em:locale>
<em:locale>locale/pl-PL/adsense/</em:locale>
<em:locale>locale/zh-CN/adsense/</em:locale>
<em:package>content/adsense/</em:package>
<em :s kin>skin/classic/adsense/</em :s kin>
</Description>
</em:file>

<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.0</em:minVersion>
<em:maxVersion>1.5.0.*</em:maxVersion>

</Description>
</em:targetApplication>

<!-- Flock -->
<em:targetApplication>
<Description>
<em:id>{a463f10c-3994-11da-9945-000d60ca027b}</em:id>
<em:maxVersion>1.0+</em:maxVersion>
<em:minVersion>1.0+</em:minVersion>
</Description>
</em:targetApplication>

</Description>
</RDF>

看到了么? 粗体表示出来的那两句,em:minVersion定义了所支持的firefox的最小版本,em:maxVersion所定义的是最大版本,不用多说了,把那

<em:maxVersion>1.5.0.*</em:maxVersion>

改成大于你的firefox版本就行了:

<em:maxVersion>3.5.0.*</em:maxVersion>

然后打包,注意还是要xpi结尾

zip -r xxx.xpi *

ok,现在用firefox打开新的xpi文件,安装成功

对于已经安装的扩展就更简单了:

cd ~/.mozilla/firefox/

然后是你的profile的文件夹名称,类似于xpciff4l.default这样的

cd xpciff4l.default/extensions

这里存放了所有已经安装的扩展,扩展的文件夹是一些类似于{2722cbe5-82a8-4037-a8f5-e1cb2100e3b2}的文件夹,都是已经解压缩好的插件,还是看这些文件夹下面的install.rdf文件,做做版本号的修改就行了

注意:这样修改只是让扩展可以运行,但并不能保证可以正常运行,目前我所常用的插件可以正常使用的有:

del.icio.us
external ip
compact menu
stop or reload button
web developer

不能用的只有  tab mix plus,不过这个插件可以去作者的网站上下到支持ff2的版本,mozilla主站上是没有的

还有,其实很多主题也可以用类似的方法修改,如果遇到显示不正常的话就要改主题的css了,比较麻烦的说

跟风-本站所使用的插件

Update 2007.9.12:  折腾来折腾去的,也懒得更新这个了,索性找个插件建了个Page,绝对时时更新,所以......看这里

BloggingPro China 号召大家列出blog所使用的插件,这几天终于把blog调的差不多了,也总结一篇,呵呵

aLinks 用于将文章中的关键词替换为url链接以及在链接后加小图标美化,新版功能增强了很多,很多都不太会用,呵呵,demo见本帖的链接

Audio player 音频播放器插件,flash界面很简洁漂亮,不过中文音乐名显示会有问题,demo一下 [audio:http://www.waynezhang.com/audio/献世.mp3]

Brian's Latest Comments 显示最新留言,demo见本站sidebar

Edit n Place 不用进入后台直接修改文章内容,使用ajax技术,并且对UltimateTagWarrior插件有良好的支持,强烈推荐

首字下沉插件 文章首字放大,demo见本站文章

flickrRSS 用于读取flickr的rss以显示最新照片,有后台控制,demo见本站最下方

FancyTooltips 美化链接的description,在link中加入title属性,后台激活即可,demo见本站链接

中文 Wordpress 工具箱 提供最新留言,最新文章,留言最多文章等,同时可以解决中文文章摘要显示的问题,本站用以后者

Feedburner Feed Replacement Feedburner不少人都烧过的吧,这个插件用来将本站的rss feed自动替换为feedburner的rss feed

Spam Karma 2 用于阻止垃圾留言,效果还是很不错滴,推荐

Google Sitemaps 用于给google生成站点地图

Ultimate Tag Warrior 为wordpress加入tag支持,demo见文章后的tag链接,荐

WP-Cron 定时执行一些任务,用来支持数据库定期备份,必备

WordPress Database Backup 用于备份wordpress数据库,必备

Admin Drop Down Menu 减少后台的pageview,必备

Tiger Style Administration 将后台界面改成Tiger系统的风格,纯粹为了好看 审美疲劳,停用

UPDATE 06 / 06 / 27: DJ-Email-Publish 用于和msn spaces同步