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 常用函数库和一些实用小技巧
Jan 01 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
php判断linux下程序问题实例
Jul 09 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 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产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
浅析php学习的路线图
2013/07/10 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
js 作用域和变量详解
2017/02/16 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
物流合作计划书
2014/01/10 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
大学生就业策划书范文
2014/04/04 职场文书
医学求职信
2014/05/28 职场文书
学校运动会霸气口号
2014/06/07 职场文书
大学生个人学年总结
2015/02/15 职场文书
驳回起诉裁定书
2015/05/19 职场文书