《PHP學習:thinkPHP下的widget擴展用法實例分析》要點:
本文介紹了PHP學習:thinkPHP下的widget擴展用法實例分析,希望對您有用。如果有疑問,可以聯系我們。
相關主題:thinkphp教程
本文實例講述了thinkPHP下的widget擴展用法.分享給大家供大家參考,具體如下:PHP編程
Widget擴展用于在頁面根據需要輸出不同的內容,Widget擴展的定義是在項目的Lib\Widget目錄下面定義Widget類庫,例如下面定義了一個用于顯示最近的評論的Widget:PHP編程
位于Lib\Widget\ShowCommentWidget.class.phpPHP編程
Widget類庫需要繼承Widget類,并且必須定義render辦法實現,例如:PHP編程
render辦法必須使用return返回要輸出的字符串信息,而不是直接輸出.PHP編程
Widget也可以調用Widget類的renderFile辦法,渲染模板后進行輸出.PHP編程
在項目的lib目錄下建立widget目錄,與action目錄同級.PHP編程
建立TestWidget.class.php:PHP編程
class TestWidget extends Widget{ public function render($data){ //print_r($data); $data['id']=$data['id']; $data['info']=$data['info']; $content = $this->renderFile('index',$data); //print_r($content); return $content; } }
在此目錄下建立對應的Test文件夾,下面放$this->rendFile調用的html頁面.PHP編程
index.html? 通過使用循環顯示數據的信息PHP編程
<div> 這是widget調用的模板頁面 <foreach name="id" item="vo"> <span style="color:#ff0000">//注意:id對應與$data的鍵值</span> {$vo} </foreach> <br> <foreach name="info" item="vo"> <span style="color:#ff0000">//info對應于$data的鍵值</span> <foreach name="vo" item="v"> {$v} </foreach> </foreach> </div>
action辦法:PHP編程
IndexAction.class.phpPHP編程
代碼如下:PHP編程
class TestAction extends Action{ public function index(){ $info=array(array("1","AA","title"),array("2","BB","title2")); $this->assign("info",$info); $this->display(); } }
action調用的tpl中的html頁面的為index.htmlPHP編程
代碼如下:PHP編程
<div> 這個是test調用的action<br> {:W('Test',array("id"=>array("ID","name","title"),"info"=>$info))} <span style="color:#cc0000">//傳遞給TestWidget.class.php 的參數,要以array格式傳遞</span> </div>
運行IndexAction.class.phpPHP編程
頁面顯示如下:PHP編程
PHP編程
這樣就把show.html中的內容包含進來了PHP編程
name什么時候用widgte呢?PHP編程
widget通常是一些封裝好了的JS效果組件,直接調用‘加入參數就可以得到一些效果,例如,TAB菜單、旋轉木馬、圖片輪播等交互效果?PHP編程
比如網站的菜單欄.右邊常不更新的欄目之類的…PHP編程
方便多次調用,比如在頁面上左側顯示一個新聞列表,每個頁面如果都調用這個列表,是不是得在每個控制器里寫一遍相同的代碼,不累么,用widget可能只需要寫一次,然后模板中多次使用PHP編程
希望本文所述對大家基于thinkPHP框架的PHP程序設計有所贊助.PHP編程
《PHP學習:thinkPHP下的widget擴展用法實例分析》是否對您有啟發,歡迎查看更多與《PHP學習:thinkPHP下的widget擴展用法實例分析》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7989.html