Thinkphp扩展组件 – Widget扩展

上一篇文章介绍过模板继承。我们在使用模板继承时会遇到一个问题:公共模板没有对应的控制器,如果公共模板局部的数据需要是动态的,比如顶部的菜单、底部的友情链接等等,这将无法实现。

为了解决这个问题,Thinkphp提供一个非常有用的功能:Widget扩展。它可以很好的解决上面的问题,下面介绍下具体操作步骤:

1.创建扩展类文件

在当前应用目录中创建 Widget 目录,然后在Widget目录中创建扩展文件,比如 CategoryWidget.class.php (注意文件名的格式 后面必须是Widget.class.php);编辑该文件,这里我们测试制作一个显示导航的扩展:

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

class CategoryWidget extends Controller{
	public function showCate(){
		$category = M("category");
		$categorys = $category->select();
		$this->assign("categorys",$categorys);
		$this->display("Public:nav");
	}
}

注意:$this->display("Public:nav"); 这里是将内容传给扩展的模板文件,示例指的是View/Public/nav.html模板

2.创建扩展模板文件

在应用下 View目录下创建扩展目录 Public(名字个自定义),然后在扩展目录中创建扩展模板 nav.html。注意如果View目录中有多种主题,扩展目录应该放在相应的主题目录中。

创建好以后,编辑模板。这个模板只是为了显示扩展文件中传入的数据,因此只是一个片段,并不是完整的模板页面。如下面:

<foreach name="categorys" item="category">
	<div class="nav">{$category.title}</div>
</foreach>

以上就完成扩展的创建。

3.调用扩展

制作好的扩展,我们在模板文件的任何地方调用。

调用格式是 {:W("Category/showCate")}

其中的参数Category是扩展类名,showCate是方法名。

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇