程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> thinkPHP下的widget擴展用法實例分析,

thinkPHP下的widget擴展用法實例分析,

編輯:關於PHP編程

thinkPHP下的widget擴展用法實例分析,


本文實例講述了thinkPHP下的widget擴展用法。分享給大家供大家參考,具體如下:

Widget擴展用於在頁面根據需要輸出不同的內容,Widget擴展的定義是在項目的Lib\Widget目錄下面定義Widget類庫,例如下面定義了一個用於顯示最近的評論的Widget:

位於Lib\Widget\ShowCommentWidget.class.php

Widget類庫需要繼承Widget類,並且必須定義render方法實現,例如:

render方法必須使用return返回要輸出的字符串信息,而不是直接輸出。

Widget也可以調用Widget類的renderFile方法,渲染模板後進行輸出。

在項目的lib目錄下建立widget目錄,與action目錄同級。

建立TestWidget.class.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頁面。

index.html  通過使用循環顯示數據的信息

<div>
  這是widget調用的模板頁面
  <foreach name="id" item="vo"> <span >//注意:id對應與$data的鍵值</span>
    {$vo}
  </foreach>
  <br>
  <foreach name="info" item="vo"> <span >//info對應於$data的鍵值</span>
    <foreach name="vo" item="v">
      {$v}
    </foreach>
  </foreach>
</div>

action方法:

IndexAction.class.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.html

代碼如下:

<div>
這個是test調用的action<br>
{:W('Test',array("id"=>array("ID","name","title"),"info"=>$info))} <span >//傳遞給TestWidget.class.php 的參數,要以array格式傳遞</span>
</div>

運行IndexAction.class.php

頁面顯示如下:

這樣就把show.html中的內容包含進來了

name什麼時候用widgte呢?

widget通常是一些封裝好了的JS效果組件,直接調用‘加入參數就可以得到一些效果,例如,TAB菜單、旋轉木馬、圖片輪播等交互效果 

比如網站的菜單欄。右邊常不更新的欄目之類的…

方便多次調用,比如在頁面上左側顯示一個新聞列表,每個頁面如果都調用這個列表,是不是得在每個控制器裡寫一遍相同的代碼,不累麼,用widget可能只需要寫一次,然後模板中多次使用

希望本文所述對大家基於thinkPHP框架的PHP程序設計有所幫助。

您可能感興趣的文章:

  • ThinkPHP的Widget擴展實例
  • ThinkPHP3.1的Widget新用法
  • ThinkPHP框架設計及擴展詳解
  • ThinkPHP行為擴展Behavior應用實例詳解
  • ThinkPHP應用模式擴展詳解

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved