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.ini中的php-5.2.0配置指令详解
Mar 27 PHP
ThinkPHP模板IF标签用法详解
Jul 01 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
PHP实现微信退款功能
Oct 02 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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中的CMS的涵义
2007/03/11 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Python批量发送post请求的实现代码
2018/05/05 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python进行文件对比的方法
2018/12/24 Python
Python 互换字典的键值对实例
2019/02/12 Python
python 通过文件夹导入包的操作
2020/06/01 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
精通CAD能手自荐书
2014/01/31 职场文书
师德师风剖析材料
2014/09/30 职场文书
辞职信的写法
2015/02/27 职场文书
事业单位聘任报告
2015/03/02 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
发票退票证明
2015/06/24 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers