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模块 Memcached功能多于Memcache
Jun 14 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 PHP
php四种基础算法代码实例
Oct 29 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
Oct 26 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
比较完整的微信开发php代码
Aug 02 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 PHP
基于swoole实现多人聊天室
Jun 14 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中函数内引用全局变量的方法
2008/10/20 PHP
php 字符转义 注意事项
2009/05/27 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
php使用递归与迭代实现快速排序示例
2014/01/23 Python
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Django在Model保存前记录日志实例
2020/05/14 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
木工主管岗位职责
2013/12/08 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
中学团支部工作总结
2015/08/13 职场文书
社会实践心得体会范文
2016/01/14 职场文书
sass 常用备忘案例详解
2021/09/15 HTML / CSS
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js