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之第一天
Oct 09 PHP
wordpress之wp-settings.php
Aug 17 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
php实现生成验证码实例分享
Apr 10 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
php字符串操作常见问题小结
Oct 11 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
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仿QQ验证码的实例分析
2013/07/01 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JS中Location使用详解
2015/05/12 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
浅析Python函数式编程
2018/10/06 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
车祸赔偿收入证明
2014/01/09 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
合伙协议书
2014/04/23 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
小学教师读书笔记
2015/07/01 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle