thinkpHP 의 widget 확장 용법 인 스 턴 스 분석

3129 단어 thinkPHPwidget
이 글 의 실례 는 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 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 방법:
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 style="color:#cc0000">//   TestWidget.class.php    ,  array    </span>
</div>

IndexAction.class.php 실행
페이지 는 다음 과 같 습 니 다:

이렇게 해서 쇼.html 의 내용 을 포함 시 켰 습 니 다.
name widgte 는 언제 사용 합 니까?
widget 은 보통 봉 인 된 JS 효과 구성 요소 로'파 라 메 터 를 직접 호출 하면 효 과 를 얻 을 수 있 습 니 다.예 를 들 어 TAB 메뉴,회전 목마,그림 윤 방 등 상호작용 효 과 를 얻 을 수 있 습 니 다. 
예 를 들 어 사이트 의 메뉴 표시 줄.오른쪽 에 자주 업데이트 되 지 않 는 코너 같은 거...
여러 번 호출 할 수 있 습 니 다.예 를 들 어 페이지 왼쪽 에 뉴스 목록 을 표시 합 니 다.모든 페이지 가 이 목록 을 호출 하면 모든 컨트롤 러 에 같은 코드 를 한 번 써 야 합 니 다.피곤 하지 않 습 니까?widget 으로 한 번 만 쓰 고 템 플 릿 에서 여러 번 사용 할 수 있 습 니 다.
본 고 는 thinkpHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기