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')
二禁用:也就是卸载插件的操作,没什么好说的,可以参考默认的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
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')函数工厂有一个详细的说明和举例,这些不是很好的理解。二:在插件中使用其他类的方法,这也不是很清楚,期待官方的教程