typecho插件编写教程(三):保存配置


Posted in PHP onMay 28, 2015

上一节我们制作了一个裸插件,下面我们开始让我们的插件开始工作!

I. 完善方法

两个方法

我们实现activate和deactivate方法

    public static function activate(){

        return 'activate';

    }
    public static function deactivate(){

        return 'deactivated';

    }

如上代码所示,我们在激活和卸载插件方法中有返回值,所以在相应操作时会有相应的提示。

typecho插件编写教程(三):保存配置

完善信息,使其更接地气

    public static function activate(){

        // do something

        return '插件安装成功,请进入设置填写准入密钥';

    }
    public static function deactivate(){

        // do something

        return '插件卸载成功';

    }

II. 如何保存配置

准入密钥在哪里保存?当然是数据库了。

typecho已经为我们实现了Typecho_Widget_Helper_Form类,我们只需要一点代码就可以摆脱需要自己写表单的烦恼了。

下图是表单类的继承关系,我们可以使用很多类型的表单来保存我们的选项。

下面我们在config方法中保存 接口调用地址,类似如下链接(你可以在百度站长平台的链接提交里找到)

接口调用地址:http://data.zz.baidu.com/urls?site=www.phpgao.com&token=5wK0QtGCzdRzufvW

    public static function config(Typecho_Widget_Helper_Form $form){

        //保存接口调用地址

        $element = new Typecho_Widget_Helper_Form_Element_Text('api', null, null, _t('接口调用地址'), '请登录百度站长平台获取');

        $form->addInput($element);

    }

初始化参数有5个,他们都是做什么的?

以下是表单基类的构造方法,他们的功能分别是表单输入项名称、选择项、表单默认值、表单标题、表单描述。

# var/Typecho/Widget/Helper/Form/Element.php:111
    /**

     * 构造函数

     *

     * @access public

     * @param string $name 表单输入项名称

     * @param array $options 选择项

     * @param mixed $value 表单默认值

     * @param string $label 表单标题

     * @param string $description 表单描述

     * @return void

     */

    public function __construct($name = NULL, array $options = NULL, $value = NULL, $label = NULL, $description = NULL)

# 以下省略

III. 使用需要注意的问题

修改表单名称($name)后需要重启插件才能工作,因为插件启用后,表单内容就持久化到数据库中了,禁用插件才能清空该插件的表单设置
Typecho_Widget_Helper_Form_Element_Fake 不用理会
由var/Widget/Plugins/Edit.php我们学到很多表单的高级用法,以后老高会在合适的时候提到。

PHP 相关文章推荐
PHP $_SERVER详解
Jan 16 PHP
PHP 变量的定义方法
Jan 26 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
深入apache host的配置详解
Jun 09 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
PHP多进程编程实例
Oct 15 PHP
php上传文件问题汇总
Jan 30 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
PHP __call()方法实现委托示例
May 20 PHP
PHP通过API获取手机号码归属地
May 28 #PHP
typecho插件编写教程(二):写一个新插件
May 28 #PHP
typecho插件编写教程(一):Hello World
May 28 #PHP
php实现的mongodb操作类
May 28 #PHP
PHP编译安装时常见错误解决办法
May 28 #PHP
PHP安装memcached扩展笔记
May 28 #PHP
PHP实现的增强性mhash函数
May 27 #PHP
You might like
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
Python的randrange()方法使用教程
2015/05/15 Python
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
tornado+celery的简单使用详解
2019/12/21 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
在keras里实现自定义上采样层
2020/06/28 Python
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
简历中自我评价范文3则
2013/12/14 职场文书
打架检讨书100字
2014/01/08 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
企业出纳岗位职责
2014/03/12 职场文书
公司股权转让协议书
2014/04/12 职场文书
意向协议书范本
2014/04/23 职场文书
人事经理岗位职责
2014/04/28 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
mysql死锁和分库分表问题详解
2021/04/16 MySQL
python开发人人对战的五子棋小游戏
2022/05/02 Python