ExtJS 4 的MVC
ExtJS是我听说了很久的一个js框架了,但是从来就没有用过,读研期间寝室里有个小哥在用,不过那时候醉心于WordPress开发,也懒得理会了。现在公司里,有个上线系统用到了这个框架中的一个TreePanel组件,整个界面上,就正中间扔了一个tree panel,而且不知道什么原因,CSS还有bug,把按钮都搞破了,弄得丑陋不堪,我于是自告奋勇,仔细调试,终于修复了那个显示上的bug,从此算是初次结识了ExtJS。它真正吸引我的原因是,它能够把富客户端应用的开发,从美工和基础交互中解放出来,只需要专注于业务逻辑开发即可,从而让后台工程师也能够有能力快速开发外观专业的网站应用系统。我觉得这真是功德无量的一个事情。(如果我直觉没错,Flex框架也是这一类东西,这也是我对其有兴趣的原因,当然还没有时间尝试)
Web开发专用IDE:Aptana Studio 3.0
Aptana Studio是一款专业的、开源的开发环境,主要用于Web应用开发。该开发环境支持最新的浏览器技术HTML5,CSS3,Javascript,除此之外,对服务器端语言Ruby(对RoR貌似有很好的支持),PHP,Python也有很好的支持。
目前能够在Web开发中对HTML,CSS,和JS同时提供编码帮助的IDE环境极其少见,Dreamweaver是我知道的做得比较好的,但是Dreamweaver对语言的支持只做到了静态语法检查和代码高亮,更进一步则无能为力了,只能算是准IDE,毕竟不是真正的IDE环境,NetBeans在这方面有不俗的表现,正是我选用此款IDE的原因。
Google用于提高网站质量的工具:Page Speed工具集
应该就是离现在不太远的时候,Google推出了用于提高网页质量的工具集,Page Speed。我最早听说是在若干月前的PHP Classes的news letter上。最近才有时间来仔细看看这个东西。
Page Speed现在的形态是一个工具集,目前提供了客户端和服务器端的两种组件。服务器端提供了Apache服务器的模块mod_pagespeed,该模块可以自动优化网页和资源文件。客户端的工具是一个插件,分别提供了firefox、Chrome的版本,其功能更加类似于Yahoo推出的YSlow,也是真对一个页面进行诊断,给出相应的优化建议,Yahoo提出的东西在业界被称为是14条军规,从Page Speed插件给出的建议来看,基本也没有逃出这14条军规的范畴。除此之外,Google还推出了一个网页版本的Page Speed,只要键入网址,就可以自动分析页面的问题给出建议。
MVC最佳实践
前一段日子,写了一篇《MVC就是一个选择题》,重点描述了我对MVC模式的迷惑。随着我对这个模式应用时间的深入,渐渐感到得心应手,这个模式早在30多年前就已经发明了,确实经受了时间的考验,可以说是千锤百炼。但是,实践过程中,我也发现,更多的时候照猫画虎还是有很多弊端的,想要真正做好MVC的选择题,必须在项目中不断犯错误,不断修正,才能逐渐走上正轨。我参加的项目主要运用了Yii框架,是目前比较流行的一个Web开发框架。随着前不久,1.1.6版本的发布,我发现Yii框架的文档中,多了一篇MVC最佳实践的文章。我想,这个文章对于初学者来说,应该具备相当的指导性,而且指导相当具体。如果也有跟我相同的迷茫,应该好好钻研一下这篇文章,并且身体力行去验证之,这里给出链接。我在这篇文章中,就是概括简述一下那篇文档的内容。
[插件开发]获知文章状态变化
文章(post)是 WordPress 博客的核心价值所在,围绕一篇文章的增、删、改,我们可以开发很多有用的插件。近来,由于维护一款插件的需要,我碰巧研究了一下围绕文章发布流程而设立的一些钩子(hook)。微有所得,记录备查。
事情的起因是插件中的一个函数hook到了一个action上,名字是publish_post,顾名思义,在文章发布时候被激发的。为了要更清楚地掌控这个action,我想在源代码中,把触发点给找出来,这一找,问题来了。理论上,我们hook任何action,WP内部都会有对应的do_action来激发这个钩子,这一次,一搜,根本没有publish_post,那就有点小麻烦,说明具体激发哪个钩子,是运行时决定的,再明白点说吧,这个action的名字,应该使用变量拼出来的,所以我们直接搜publish_post很难找到调用点。
使用FirePHP辅助AJAX应用开发
FirePHP 一款非常方便强大的PHP、AJAX调试工具,基于Firebug的框架开发,可以算是Firebug的插件。该插件帮助用户将PHP的调试信息展示在Firebug的控制台标签内,而不是直接打印到页面上,这样就避免了在调试页面时破坏了页面的DOM结构。
FirePHP的调试信息主要通过HTTP的Response Headers来发送,所以不会和HTTP的包体混在一起,极大程度地方便了AJAX应用的开发调试,是AJAX开发调试的利器。
全文下载链接
在插件管理页面给你的插件添加“设置”链接
在插件管理页面,每个插件下面有2-3个Action link,包含了用户可以对该插件进行的几种操作。在插件为禁用状态时,可用的操作有:Activate(启用),Edit(编辑),Delete(删除);在插件为已经启用的状态下,默认有两个可用的操作:Deactivate(禁用)和Edit(编辑)。如果我们在这个列表里仔细观察,就会发现,有些插件会多出一个Settings(设置)操作。本文记录了,为插件添加Settings link的方法。没有什么过多的描述,直接放代码了。在插件主要文件中(包含了插件信息注释语句的那个文件),使用下面的代码,就可以为这个插件添加一个Settings link了。
解决Flash内容总是漂浮于页面顶层的问题
已经有两个网友向我反应了Flash MP3 Player无法和lightbox之类插件兼容的问题,其症状为,当打开lightbox效果的图片时,flash movie会漂浮在整个页面的最顶层,破坏了lightbox的效果。
今天做了一点小小的调查,原来浏览器渲染嵌入页面的内容如flash movie或Java applet时,默认将它们放置于页面的最上层,忽略其z-index属性。所以,像lightbox这类插件,靠设置覆盖层的z-index属性来营造高亮效果的js脚本,基本无法做到覆盖掉页面上的flash movie。
如何才能按需加载脚本?
本文提出问题,并不解决问题。
我在研究Extended Live Archive(ELA)插件的代码,发现一个问题,这个问题具有一定的共性,而且,我现在也没有什么好的解决办法,所以我把它描述一下,看看有没有高人高见。
WordPress插件:选项查看器
选项查看器是一款能够查看WordPress选项的工具,使用它,你可以浏览每个存储到数据库的选项的值,串行化的数据会恢复其原貌,此外,您可以使用PHP语句来微调选项的值。这是一款开发调试辅助工具。Options Inspector is a tool with which you can list out all the options in your database, view a certain one in detail, and alter exactly a certain part of option value. It is mainly designed for plugin developers and theme designers.
[WP开发环境]在NetBeans中配置FTP
本文介绍了如何在NetBeans IDE 6.5.1 for PHP中配置FTP,以搭建一个便捷的WordPress 主题、插件开发环境。
建立WordPress测试环境
本文记录了建立WordPress测试环境的一种实践。
WordPress 开发资源
今天刚看到几个WordPress开发资源,觉得很不错~在这里记录一下。
WordPress phpDoc
WordPress内部使用phpDoc的语法进行注释,这是WordPress.org为其生成的文档。
使用NetBeans IDE 6.5作为WordPress的开发环境
从一个大牛那里看到了介绍NetBeans IDE for PHP的文章,立刻下载下来尝试。立刻被它那强大、便捷、体贴的开发功能所吸引。本文主要介绍我在安装、试用、开发过程中的一些使用体验及感受。
如何获得一个分类的ID
摘要:本文主要讲述了,在Archive页面里,在侧边栏进行函数调用时候(也即在the loop外部),如何取得category的ID的方法,以及发现这个方法的过程,希望对大家有帮助。
今天,我在改进我模板的Archive页面,我希望能在Archive的侧边栏能够根据情景做出一些细微的变动。我希望当一个用户浏览我某个分类的Archive的时候,侧栏能够显示这个分类下展示最多的文章。
正好,我的博客上安装了WP Post Views Plus插件,这个插件就具有这个功能,只需要调用该插件提供的一个模板标签,get_most_viewed_category()即可。但是这个标签需要一个比较特别的参数,就是目标category的id,即一篇文章的cat_id字段。搜索了一下Codex,没有发现有哪个function或者template tag可以提供我需要的这个功能。只好自己找了。
WP的结构和最佳实践
想必很多朋友都已经发现了我的主题更换了,貌似我一直也没有写什么文章来介绍我现在的主题。
我现在的主题叫做yui-theme,我想,这是我对主题内部构造的设计的一种追求,我希望能把我学到的所有的最先进的技术都用在这个主题上。
当然,现实和理想总是南辕北辙。
WordPress 插件:CSS Cache Buster
众所周知,浏览器一般会缓存CSS文件,以节省下载量和提高页面显示速度,这种机制就叫做缓存。
但是,缓存也有一定的弊端。如果您的CSS文件已经更改,但是浏览器不知道,而缓存下来的CSS文件也没有过期,浏览器仍旧会使用缓存中的CSS文件,也就是旧的样式。
当然,很多有经验的用户都知道,只要使用Ctrl+F5,强制刷新浏览器,就可以让浏览器下载新的样式表文件了,但是作为一个博客网站,你不可能让你的每个用户都去自己Ctrl+F5一下,很傻是不?
讨论:模板文件里哪些是必须的?
这两天在给自己制作新的模板,又研究了下官方的文档,发现了下面这张模板层次结构图。
这张图解释了WP从用户给出query到最后调用正确的模板文件来产生页面的一个过程。从图中我们可以看到,WP一种支持13种模板文件。那么这十三种模板文件中,到底哪些才是必须的呢?

Most Commented Posts