Typecho二次开发之插件命名规范及注意事项

通过定制插件来满足博客花样百出的功能,比如:博客浏览数,往数据库插入文章,过滤分类,过滤字段,根据文章的类型来生成seo策略。以上的这些功能typecho都没有提供,然而却可以通过typecho插件来得到满足。这里简单介绍下插件开发的步骤以及过程中需要注意哪些问题呢?

开发HelloWorld为例子

一.开发步骤

  • 在usr/plugin文件夹中建立文件夹:HelloWorld(首字母大写,驼峰命名规范)
  • 在文件夹HelloWorld中新建一个Plugin.php的文件,里面的类名HelloWorld_Plugin(格式即:文件夹名_Plugin),然后实现一下Typecho_Plugin_Interface这个接口。
  • 实现方法activate() 和 deactivate() 等。activate在激活的时候会执行,可以初始化一些插件的工作。deactivate在卸载插件后执行。
  • 然后在别处新建文件名为:A.php,具体处理一些逻辑代码。此时要保持命名规范,要将类名命名为:HelloWorld_A(文件夹名_文件名)。该类A要集成类Widget_Abstract_Contents 和实现Widget_Interface_Do等,实现方法:action类写绑定动作的代码。

二.注意的问题

上面的步骤本站也给出了一个例子,可以参考文章:Typecho插件HelloWorld

这里有一些问题需要格外注意,错一点点都不能运行,如果你出现插件无法运行的情况,或者搞不懂哪些东西该怎么给值,这里列出一些注意的地方:

  • 1.命名是否规范,Plugin里面的类型格式为:路径名_Plugin (这个未排查种重点,特别是后台没有显示插件的时候)
  • 2.是否重写了方法。
  • 3.在方法中是否执行正确,所有的初始化工作都应该在activate中完成:初始化数据表或者字段、挂钩子函数。
    > 比如 :
Typecho_Plugin::factory('Widget_Archive')->error404Handle = array('HelloWorld_Plugin', 'say_hello');
  • 在public static function config(Typecho_Widget_Helper_Form $form) {}函数中写后台的配置参数样式:

比如:

public static function config(Typecho_Widget_Helper_Form $form){

        $import_user_info = new Typecho_Widget_Helper_Form_Element_Text(
            'import_user_info',NULL ,'username/password',
            _t('导入theme内容所使用的账号信息'),
            _t('设定导入theme/plugin所使用的账号名称和密码,如user/pass,注意用斜杠分割')
        );
        $form->addInput($import_user_info);
    }

后入在激活后会出现编辑窗口,然后就可以配置一些特定的参数。
在需要用的地方获取值的办法(有些业务需要配置动态参数):

@$settings = Helper::options()->plugin('HelloWorld');
$user_info = $settings->import_user_info;
list($user,$password) = explode('/',$user_info);
  • 如果需要接入一个新的访问方法,那么可以在activate中为系统加入一个action,语法如下:
Helper::addAction('import_news', 'HelloWorld_NewsImport');

此action的访问路径:http://www.域名.com/action/import_news(用于数据导入或者数据拉取特别有用)

更多的文章可以通过本站搜索进行定位

-----天使漫步


版权声明:未经书面授权禁止转载、摘编、复制或建立镜像。对既成事实本站将保留所有的权利。

无相关文章