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 相关文章推荐
如何将数据从文本导入到mysql
Oct 09 PHP
PHP中cookies使用指南
Mar 16 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
PHP环形链表实现方法示例
Sep 15 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 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里得到前天和昨天的日期的代码
2007/08/16 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
jquery foreach使用示例
2013/09/12 Javascript
php跨域调用json的例子
2013/11/13 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
react build 后打包发布总结
2018/08/24 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python实现控制台进度条功能
2016/01/04 Python
详解python里的命名规范
2018/07/16 Python
我就是这样学习Python中的列表
2019/06/02 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
安全标兵事迹材料
2014/08/17 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
综治工作汇报材料
2014/10/27 职场文书
红旗渠导游词
2015/02/09 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
小学主题班会教案
2015/08/17 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript