Home >Backend Development >PHP Tutorial >Example analysis of widget extension usage under thinkPHP, _PHP tutorial

Example analysis of widget extension usage under thinkPHP, _PHP tutorial

WBOY
WBOYOriginal
2016-07-12 09:02:55856browse

Example analysis of widget extension usage under thinkPHP,

This article describes the use of widget extension under thinkPHP with examples. Share it with everyone for your reference, the details are as follows:

Widget extension is used to output different content on the page as needed. The definition of Widget extension is to define the Widget class library under the LibWidget directory of the project. For example, the following defines a Widget for displaying recent comments:

Located at LibWidgetShowCommentWidget.class.php

The Widget class library needs to inherit the Widget class and must define the render method implementation, for example:

The render method must use return to return the string information to be output, instead of outputting it directly.

Widget can also call the renderFile method of the Widget class to render the template and then output it.

Create a widget directory in the project's lib directory, which is at the same level as the action directory.

Create 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;
  }
}

Create a corresponding Test folder in this directory, and put the html page called by $this->rendFile below.

index.html displays data information by using a loop

<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 method:

IndexAction.class.php

The code is as follows:

class TestAction extends Action{
  public function index(){
    $info=array(array("1","AA","title"),array("2","BB","title2"));
    $this->assign("info",$info);
    $this->display();
  }
}

The html page in the tpl called by the action is index.html

The code is as follows:

<div>
这个是test调用的action<br>
{:W('Test',array("id"=>array("ID","name","title"),"info"=>$info))} <span style="color:#cc0000">//传递给TestWidget.class.php 的参数,要以array格式传递</span>
</div>

Run IndexAction.class.php

The page is displayed as follows:

This will include the content in show.html

When does name use widgte?

Widgets are usually some encapsulated JS effect components. You can get some effects by directly calling 'Add parameters', such as TAB menu, carousel, picture carousel and other interactive effects

For example, the menu bar of a website. The columns on the right that are often not updated...

Convenient to call multiple times, such as displaying a news list on the left side of the page. If each page calls this list, do you have to write the same code in each controller? Isn’t it tiring? It’s possible to use widgets You only need to write it once and use it multiple times in the template

I hope this article will be helpful to everyone’s PHP programming based on the thinkPHP framework.

Articles you may be interested in:

  • ThinkPHP Widget extension examples
  • New Widget usage of ThinkPHP3.1
  • Detailed explanation of ThinkPHP framework design and extension
  • Detailed explanation of ThinkPHP behavior extension Behavior application example
  • Detailed explanation of ThinkPHP application mode extension

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1084516.htmlTechArticleExample analysis of widget extension usage under thinkPHP. This article describes the usage of widget extension under thinkPHP. Share it with everyone for your reference, the details are as follows: Widget extension is used at the page root...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn