ThinkPHP 3.2.3 Widget 扩展的使用

ThinkPHP3.2.3 手册中 Widget 扩展的地址是: http://www.kancloud.cn/manual/thinkphp/1862

Widget 扩展一般用于页面组件的扩展,和自定义标签具有相同的功能。

例如:在项目首页(位于 Home 应用 ./Application/Home)的某个栏目如【最热新闻】,可以通过 Widget 扩展进行数据调用.

首先在 ./Application/Home 下创建 Widget 目录,在该目录中创建 HotWidget.class.php:

./Application/Home/Widget/HotWidget.class.php

<?php
namespace Home\Widget;
use Think\Controller;

class HotWidget extends Controller{

    public function hotlist($id,$name) { //参数传递(示例)
        //dump($id);
        //dump($name);
        //$this->assign(‘id‘, $id);
        //$this->assign(‘name‘, $name);

        //热门博文
        $field = array(‘id‘,‘title‘,‘click‘);
        $this->blog = M(‘blog‘)->field($field)->order(‘click DESC‘)->limit(5)->select();
        return $this->display("Widget:Hot");// 解析 ./Application/Home/View/Widget/hot.html
    }
}

HotWidget 类渲染的模板文件 ./Application/Home/View/Widget/hot.html:

<dl>
    <dt>最热新闻</dt>
    <foreach name="blog" item="v">
    <dd>
        <a href="{:U(‘/‘.$v[‘id‘])}">{$v.title}</a>
        <span>({$v.click})</span>
    </dd>
    </foreach>
</dl>

该模板嵌入首页模板中

./Application/Home/View/Index/index.html

....
<!--热门博文-->
{:W(‘Hot/hotlist‘,array(‘id‘=>100,‘name‘=>‘dee‘))}<!--此处仅示例参数的使用-->
<!--热门博文结束-->
....

参考:一张图说明3.2的Widget使用方法

时间: 2024-10-13 00:29:30

ThinkPHP 3.2.3 Widget 扩展的使用的相关文章

ThinkPHP3.2.2 Widget扩展以及widget demo实例

Widget扩展一般用于页面组件的扩展. 先说明Widget被调用的方法,你只需要在你的模板文件中使用这样的语法:{:W("Demo/demo_widget_method",array(5,'thinkphp'))} 系统就会自动去寻找对应的Widget类文件并执行对应的方法. 具体步骤如下: 1.因为是直接在模板中写的{:W("Demo/demo_widget_method",array(5,'thinkphp'))},所以要了解后面的步骤,我们得移步系统的Tem

浅析Thinkphp框架中运用phprpc扩展模式

浅析Thinkphp框架中应用phprpc扩展模式 这次的项目舍弃了原来使用Axis2做web服务端的 方案,改用phprpc实现,其一是服务端的thinkphp已集成有该模式接口,其二是phprpc传输的数据流相对于普通WebService中的 XML或JSON形式的数据量明显减少,而且因为数据量的关系解析速度明显比较快~~ 说实话,以前还真不知道有phprpc这个协议的,本打算使用 sina的api的restlet形式开发,但自己写库的话会花比较多的时间,而现在轻量级的php框架支持rest

thinkPHP下的widget挂件原理与使用方法

当我们在多个视图页面中用到同一段动态的代码块时,我们就有必要用到thinkphp的widget扩展. widget就相当于在页面中调用一个专属widget的控制器,并将它关联的视图植入当前的页面中,所以,widget的视图内容要按照当前页面的情况来考虑. 先来举个例子吧 需求:写一个供页面使用的主题widget,及多个页面要从数据库中提取所有主题并以列表的模式罗列在页面中,实现以主题筛选的功能. 应用页面: <!-- 主题 --> <dt class="filter_cat&q

ThinkPHP 学习笔记(二)

1.命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 2类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如DbMysql.class.php: 2确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写): 2类名和文件名一致(包括上面说的大小写一致),例如 UserAction类

thinkphp学习笔记1—目录结构和命名规则

最近开始学习thinkphp,在下不才,很多的问题看不明白所以想拿出来,恕我大胆发在首页上,希望看到的人能为我答疑解惑,这样大家有个互动,学起来快点,别无他意,所谓活到老,学到老,希望各位不要见笑啊. 我的做法很简单,先从手册开始,手册是开发thinkphp作者辛勤劳动的成果,但是有些地方是在是不懂,如果有幸各位也遇到类似的问题希望能回复.thinkphp手册地址:http://doc.thinkphp.cn/manual.html 1.框架目录 在章节1.6 目录结构,内容如下: 新版的目录结

扩展运行机制

1. 简介 在安装扩展之后,扩展并不会自动运行,用户必须执行特定的操作来启用扩展.如果是Today扩展,用户可以在通知中心的Today视图中编辑启用扩展.如果是自定义键盘扩展,用户需要在系统设置的通用选项下的键盘选项中启用自定义键盘扩展.如果是Share扩展,用户只需点击系统提供的分享按钮,即可在分享列表中找到分享扩展. 一个扩展并不是一个app,他的生命周期和运行环境不同于普通app.在生命周期方面,扩展的生命周期从用户在另一个app中选择扩展开始,一直到扩展完成了用户的请求生命周期结束.在运

iOS 8新特性之扩展(Extension)

本文由海水的味道收集整理,欢迎转载 当前版本 0.0.1  iOS 8新特性之扩展 一.扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性.扩展让app之间的数据交互成为可能.用户可以在app中使用其他应用提供的功能,而无需离开当前的应用. 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据. 而在引入扩展之后,其他app可以与扩展进行数据交换.基于安全和性能的考虑,每一个扩展运行在一个单独的进程中,它拥有自己的bundle, b

iOS 开发之Widget的开发及使用(上)

在iOS8发布以后,Apple官方发布了,有关第三方开发软件可以集成进手机的通知中心,对于我们这帮开发来说,无疑是一个很新鲜的玩意儿,都巴不得赶紧将自己的App加入Widget的功能扩展. 那么关于widget的功能扩展需要做的步骤,我简单的分享一下我个人的简单过程.不对望斧正.我将会分为两次分别概述widget的基本添加以及布局和数据共享部分. 首先,在自己的在xcode的菜单项,为当前项目添加一个新的target.然后选择Application Extension 类型选Today. 接下来

iOS 开发之Widget的开发及使用(下)

在iOS 开发之Widget的开发及使用(上)中都交代清楚了关于widget扩展的添加,以及布局部分的内容,下面说下关键部分:关于数据共享的操作. 在Apple发布iOS8.0以后,对App有提供一个新的扩展选择项,叫做App groups,选择宿主Target之后,在capabilities选项卡下面会找到这个选项: 那么这个选项主要是做何使用呢? iOS系统,每个开发应该都清楚,其内部程序都是遵循沙盒机制,App与App之间,是不能进行数据共享的,A 不能访问 B 的数据,同样 B 也不能访