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动态生成JavaScript代码
Mar 09 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
一个PHP的String类代码
Apr 20 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
php的ajax简单实例
Feb 27 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 PHP
PHP执行系统命令函数实例讲解
Mar 03 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
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
网页打开自动最大化的js代码
2012/08/22 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python程序封装为win32服务的方法
2021/03/07 Python
Python list运算操作代码实例解析
2020/01/20 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
用python发送微信消息
2020/12/21 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
英文版银行求职信
2013/10/09 职场文书
Nginx配置根据url参数重定向
2022/04/11 Servers