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 相关文章推荐
建立文件交换功能的脚本(三)
Oct 09 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
PHP的引用详解
Feb 22 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP 对象继承原理与简单用法示例
Apr 21 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
JavaScipt基本教程之前言
2008/01/16 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
javascript正则表达式总结
2016/02/29 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python冒泡排序简单实现方法
2015/07/09 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Python实现Linux监控的方法
2019/05/16 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
招聘单位介绍信
2014/01/14 职场文书
运动会广播稿60字
2014/01/15 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
教师工作表现自我评价
2015/03/05 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
Python超详细分步解析随机漫步
2022/03/17 Python
nginx配置之并发频次限制
2022/04/18 Servers
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android