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执行zip与rar解压缩方法实现代码
Dec 05 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
Nov 19 PHP
PHP也能干大事 随机函数
Apr 14 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
php简单检测404页面的方法示例
Aug 23 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 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
php生成唯一的订单函数分享
2015/02/02 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
javascript中this指向详解
2016/04/23 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
python实现超简单的视频对象提取功能
2018/06/04 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
国贸专业的职业规划范文
2014/01/23 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
检讨书范文500字
2015/01/28 职场文书
以权谋私检举信范文
2015/03/02 职场文书
草房子读书笔记
2015/06/29 职场文书
办公室规章制度范本
2015/08/04 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
分析Netty直接内存原理及应用
2021/06/14 Java/Android