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 adodb介绍
Mar 19 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
ThinkPHP之getField详解
Jun 20 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
php语法检查的方法总结
Jan 21 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
May 29 PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 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的文章管理系统(二)
2006/10/09 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
python中私有函数调用方法解密
2016/04/29 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
装潢设计专业推荐信模板
2013/11/26 职场文书
会议欢迎词
2015/01/23 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
学校隐患排查制度
2015/08/05 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript