自从评论里有人推荐typecho后,自己也下载了看了一下。确实,代码很漂亮,最关键的是注释是中文的。这点很让人心情愉快。虽然wordpress的英文注释也很容易懂,但毕竟不是自己的语言,总有点心里障碍。
前天晚上下载了一份看看,昨天在参考官方的一些插件的同时,自己临摹了两个。一个是搜索引擎来源关键字高亮,一个就是微博上有朋友提出的内容分页。
东西嘛。都扔在http://neatstudio.com/typecho/上面。还没有正式完成,只能算是一个测试版吧。
下面就是一些心得,希望可以给其他开发人员带来一点帮助,当然我这个只是看了一天的心得,与其他人员的相比应该是差很多了。但分享总比藏着好吧?
1、文档中Typecho::widget('Options') 错误,应当为:Typecho_Widget::widget('Widget_Options');
2、全局地址为:Typecho_Common::url('index.php', Typecho_Widget::widget('Widget_Options')->siteUrl) ,再与Router组合
3、Router,当前名称为:Typecho_Router::$current
4、针对内容做插件,需要在activate中加入:
Typecho_Plugin::factory('Widget_Abstract_Contents')->content = array('HelloWorld_Plugin', 'parse');
或
或
Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('HelloWorld_Plugin', 'parse'); // contentEx好象是处理过的字符串。
5、针对摘要处理(摘要是用在列表中的),如同4一样,只是contentEx换 为excerptEx
由于4、5都没有官方说明,但是,在官方的插件示例中,采用的是contentEx,而且源码中,___content和___excerpt的最后return都是有Ex的版本。(这两个函数在入口时都是先对没有Ex的的变量作了处理,具体还是需要sluke的鉴定)
6、其实4、5的功能,都能算是代码植入吧,在后台页面中,更容易被植入,比如Typecho_Plugin::factory("admin/post.php")->content = array('classname','functionname'),你只需要把源文件打开,看看哪里有能够植入的类就行了。就象post.php和page.php中都有一个richEdit,就是专门等着别人为text这个textarea进行扩展的。
6、其实4、5的功能,都能算是代码植入吧,在后台页面中,更容易被植入,比如Typecho_Plugin::factory("admin/post.php")->content = array('classname','functionname'),你只需要把源文件打开,看看哪里有能够植入的类就行了。就象post.php和page.php中都有一个richEdit,就是专门等着别人为text这个textarea进行扩展的。