简单插件制作方法

插件开发及发布

版主: woniou

回复
bin
帖子: 9
注册时间: 2009年 1月 30日 03:58

简单插件制作方法

帖子 bin »

因为关于插件的文章目前比较少,所以写一篇关于插件开发的文章,我也对typecho了解的不是很多,所以肯定会有理解错误或者不足的地方,请指出或者与我邮件交流,我的email:[email protected]
1:我写插件遇到的第一个问题是找不到函数所在的文件在什么地方,这里先把几个重要的函数文件找出来,第一个就是数据库类的文件,在varTypechoDb.php。操作方法:这里有比较详细的解释http://typecho.org/develop/db,还有一个对数据库插入操作,在后面会提到。第二就是对表单的操作,typecho用了一个表单助手的东西,在TypechoWidgetHelper目录下,大多都是以继承(extends),接口(implements)的方式存在,所以是在几个不同的文件中。
2:现在开始写插件,一激活:

代码: 全选

Typecho_Plugin::factory('admin/menu.php')->navBar = array('friendlink_Plugin', 'render');

这句话的大概意思是在配置提交以后执行friendlink_Plugin类中的render函数,对

代码: 全选

Typecho_Plugin::factory('admin/menu.php')
不是很明白,猜想应该是在menu.php显示或者操作之类,效果是显示在页面右上角的地方。
二禁用:也就是卸载插件的操作,没什么好说的,可以参考默认的helloword。三配置面板:new Typecho_Widget_Helper_Form_Element_Text这句话的意思是创建一个表单,他会自动生成一个提交按钮,提交后就会转到步骤一中提到的friendlink_Plugin类中的render函数中处理。四实现:也就是对post或者get提交后的数据的处理,这里说下post取数据的方法,假如表单input中name的是name,那么

代码: 全选

Typecho_Widget::widget('Widget_Options')->plugin('friendlink')->name
就可以获取post的name值,可以使用echo输出看看。
3:对数据库的操作,typecho和wordpress或phpwind的数据库配置文件不太一样,typecho是以一个数组的方式存在,官方叫做连接池,写插件的时候并不需要像http://typecho.org/develop/db中提到的使用连接池,只需要引入一个全局变量global $db;这个和wordpress的一样,还有一个就是插入数据格式

代码: 全选

$db->query($db->insert('table.bin_friendlink')->rows(array('name' => 'hello phper', 'url' => 'http://hellophper.com', 'contact' => '[email protected]')));
执行数据格式:

代码: 全选

$db->query("delete from typecho_bin_friendlink where id ='$_GET[id]'");
按照这种方法写就可以了,简单插件和对数据库操作就说这么多。
4:建议:一:希望官方能对Typecho_Plugin::factory('admin/menu.php')函数工厂有一个详细的说明和举例,这些不是很好的理解。二:在插件中使用其他类的方法,这也不是很清楚,期待官方的教程
头像
joyqi
帖子: 422
注册时间: 2007年 7月 24日 19:43
联系:

Re: 简单插件制作方法

帖子 joyqi »

写的很详细,赞一个
我们加强文档的建设
kesor
帖子: 109
注册时间: 2008年 2月 3日 19:53
联系:

Re: 简单插件制作方法

帖子 kesor »

学习了
半个书生
帖子: 29
注册时间: 2009年 1月 5日 07:42
联系:

Re: 简单插件制作方法

帖子 半个书生 »

嗯。不错。写个插件试试!
betaer
帖子: 24
注册时间: 2010年 3月 9日 03:17
联系:

Re: 简单插件制作方法

帖子 betaer »

留名 以后懂了再回来看
回复