介绍一款 jQuery 的 LoadMask(请稍候)的插件

jQuery 框架来说肯定没有哪个有 jQuery 用得那么广泛的,尤其是 jQuery 的插件思想吸引了众多贡献者。常常见到这样的应用,点击按钮时显示一个遮罩层,“请稍候,正在处理中......”。应该有不少类似功能的插件,我现在所用的是 BlockUI 插件,还有一个叫做 LoadMask 的插件也能实现。

据我相比较而言,觉得 BlockUI 插件要比 LoadMask 强大些,它们都可以选择性的遮住整个 Body 或是某个指定的元素。BlockUI 无论是功能还是界面定制性都比 LoadMask 要丰富些,例如 BlockUI 提供了 Overlay 遮罩层的渐入渐出式动画显示,JS 中的样式定制,消息提示的支持,提示层可显示在右上角,还可做出模态窗口,以及结束后进行函数回调。 阅读全文 >>

让你的 WordPress 显示日志的点击/阅读数-WP-PostViews

以前弄 Joomla,现在是纠结在 WordPress 上了。写的日志,想清楚的知道每篇日志受关注的程序,即点击/阅读数,不知道有些主题里是否能支持该功能,反正我所用的主题是没有的,所以又需要安装一个插件在每篇日志下方显示该日志被阅读的次数。

我找到了 WP-PostViews,相关的还有 WP-PostViews Plus, WP-PostViews Plus widget。许多东西,总是别人会搞些 Plus, Enhanced, Extended 或是 Yet Another 系列。一般来说都会比原始版本要好些,但这里我还是不细究 WP-PostViews Plus 了,而 WP-PostViews Plus widget 是基于 WP-PostViews Plus 的 Widget。这里介绍下 WP-PostView 的安装与使用。
下载、安装、选项设置都还简单,关键是它被启用之后,不能马上见到效果,还需要改改你所用主题目录中的几个文件。看看我的站点上应用了它之后的效果:

阅读全文 >>

WordPress 分页插件,WP-PageNavi 或 WP-PageNavi-LightWord

在 WordPress 中可以设置每天显示的日志数,并以上一篇、下一篇的链接进行导航。但是日志多了,一个是不能快速跳到哪几篇来浏览,还有就是别人对你有多少篇也没底。所以需要一个分页导航的插件,网上一找就看到了 WP-PageNavi 比较受推崇,而 WP-PageNavi-LightWord 只是 WP-PageNavi 针对 LightWord 主题的一个改造版,仅仅是自定义了下样式,其他如选项、代码几乎一样,由于它们使用了同样的函数,所以不能同时被激活。可以先看看它们界面上的一些区别:

WP-PageNavi 的界面截图:WP-PageNavi-LightWord 的界面截图: 阅读全文 >>

PHP GD 库在 Linux 下使用字体

现在一般的 PHP 主机都支持 GD 库和 FreeType/TrueType,普通的画字符串的函数 imagestring 只能指定字体大小,不能指定字体名称。像 imagettftext 这样的函数可以指定字体名称和字符串显示的角度,它的原型是:

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

注意这里的 $fontfile 是个字体文件,不是字体名,我刚开始就搞错了,给它传递的是 "Arial" 或是 "Arial.ttf" 而不能显示出任何东西来。在 Windows 下字体文件一般都在 c:/windows/fonts/ 目录中,所以在 Windows 下用 imagettftext 使用 TrueType 字体时的代码例子如下: 阅读全文 >>

PHP 中回调函数是全局的或是类实例时不同写法

PHP 像 JavaScript 一样,很方便使用回调函数,函数名就像一个普通的变量名一样可作为其他函数的参数,即成为一个让宿主函数调用的回调函数。但回调函数的用法依据回调函数是否是全局函数还是一个类中的函数是有区别的。比如 PHP 的preg_replace_callback — 用回调函数执行正则表达式的搜索和替换函数可以接受一个回调函数,我们来看这种区别。

如果是全局的回调函数,那容易,只要写上函数名作为字符串的形式传入就行的,看:

而如果 preg_replace_callback 函数是在类成员函数中被调用,同时 inverse 回调函数也是该类的成员函数,写法就不一样了。要是仍然写成下面这种方式的话: 阅读全文 >>

XSLT 生成 XML 中带 CDATA 的节点

原来曾经都是用代码或是像 Velocity 样的模板来转换生成 XML的,自从接触了 XSLT 后,已把它当成了 XML 到其他许多数据格式的不二之选了。有时候因为特殊字符等因素,需要转换后的数据在新节点中用 <![CDATA[...]]> 包裹起来更好看且不易出错,或者还需对生成的 XML 进一步处理时,用 <![[CDATA[...]]> 会更保险些 。

通常我们在 xslt 文件中会这么写:

<description><xsl:value-of select="Description"/></description>

如果原来的 Description 中有特殊字符,如 < 等,转换后,< 会自动变为 &lt; 的,即得到

<description>Hello&lt;Unmi</description> 阅读全文 >>

真是瞎折腾了一回,设置 RSS 中输出的记录数原本如此简单

之前写有一篇 让 WordPress 的 Rss 显示更多或所有的日志, 为了让 WordPress 的默认 Post 和 Comment 的 RSS 输出记录数多于10 条,竟然把这一系列的代码都穿越了一番。确实解决了问题,定位到了 RSS 在查询时 limit 值在哪行代码得到的,当时通过修改 query.php 手工指定输出的记录数。因为 WordPress 代码无法单步调试,所以为了找到这段代码着实费了好一番功夫的。

其实何必来得如此周折呢,在后台里可以直接修改该参数的,wp-admin 中点击 Settings->Reading,打开 Reading Settings 页面,选项 Syndication feeds show the most recent 就是用来设置输出各种 RSS 记录里显示最近多少条记录,反应到 SQL 就是 limit 0, X  中的 X 值,比如 20 条记录,或者你的博客有 2000 条记录,你设置的此值为 2000 大就输出所有的记录了。 阅读全文 >>

用 SyntaxHighlighter Evolved 作为自已的代码加亮插件

敝人的博客常常要贴程序代码,因而装个合适的语法加亮的插件是必不可少的。可以预见得到的是基本上各种语法加亮的插件都是源自于 Google 上的一个项目 SyntaxHighlighter. 但具体选用哪一个却要好自体验斟酌的。有几篇很好的文章可参考下:

1. WordPress代码高亮插件指南[译文]
2. WordPress 高亮代码显示插件 – SyntaxHighlighter Evolved
3. 让 WordPress 下 CKEditor 支持 CodeColorer,
4. wordpress代码高亮插件wp-codebox使用方法(语法详解)

怎么着那都是他人之言了,自己试了才知究意,我就说说 SyntaxHighlighter Evolved 吧,我正用着的。之前在 http://unmi.blogjava.net 的博客我往日志中嵌入代码的方式是 <textarea name=code class=php></textarea> 来写的,这样在 textarea 中代码能保持原有的格式,该有的空格都在,那是因为那边的编辑器支持的好, 阅读全文 >>

WordPress 站点架设手记,你也可能会用到的插件

说来还得益于工作中的内容就有要维护着一个 WordPress 的网站,必要时开发些插件。之前用 Joomla 架过一个站点(http://www.scalawork.com),懂得了 WordPress 的精练之后才晓得 Joomla 是何等的复杂。当然功能上 WordPress 与 Joomla 恐怕还是有些差距,但适合自己就是最好的。其间对 Dropal 也略有了解,仍不妨碍我最终选择了用 WordPress,当然对它的熟悉程度也是最重要的一点。

辛苦忙活了一阵总有不少收获,顺便记下了架设这个 WordPress 站点的过程。首先,要买个空间和域名自是不必多说,要想省事或是对某些行规反感的话就买国外的吧,代价就是有点慢。恰如此处,浏览时多加点耐心哦,看来应该是主机的缘故,得换到西部某个机房去试试。 阅读全文 >>

让 WordPress 的 Rss 显示更多或所有的日志

默认 WordPress 提供的 RSS 链接只能获得最近的十篇日志,如果想得到更多,或是用于某种目的而想通过 RSS 获得所有的日志,那恐怕就得做些手脚了,或许还有更简单的办法,只是我这里改了下源代码中的 limit 查询参数。

关于 WordPress 的 Feed 请参考:http://codex.wordpress.org/WordPress_Feeds,用以下代码可以输出你实际的 RSS 的 URL:

URL for RDF/RSS 1.0 feed      <?php bloginfo('rdf_url'); ?>
URL for RSS 0.92 feed         <?php bloginfo('rss_url'); ?>
URL for RSS 2.0 feed          <?php bloginfo('rss2_url'); ?>
URL for Atom feed             <?php bloginfo('atom_url'); ?>
URL for comments RSS 2.0 feed <?php bloginfo('comments_rss2_url'); ?>

在我的机器上永久链接后是用 http://unmi/feed/ 来访问 rss2,模板将会用 wp-includes/feed-rss2.php 文件。要说定位到这段代码还真不简单。 阅读全文 >>