ThinkPHP widget extension usage instance analysis _ php instance

Source: Internet
Author: User
This article mainly introduces the usage of widget extension in thinkPHP, and analyzes the usage tips and precautions of widget extension in the form of examples, for more information about how to use widgets in thinkPHP, see the following example. We will share this with you 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 Lib \ Widget directory of the project, for example, the following defines a Widget for displaying recent comments:

Located in Lib \ Widget \ ShowCommentWidget. class. php

The Widget class library must inherit the Widget class and define the render method implementation. For example:

The render method must use return to return the string to be output, rather than directly output the string.

Widgets can also call the renderFile method of the Widget class to output the template after rendering.

Create a widget directory under the lib directory of the project, which is the same 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 the corresponding Test folder under this directory, and put the html page called by $ this-> rendFile below.

Index.html displays data information cyclically.

This is the template page called by the widget. // Note: The id corresponds to the $ data key {$ vo}
// Info corresponds to the key value of $ data {$ V}

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 tplused for actioncall is index.html.

The Code is as follows:

This is the action called by test.
{: W ('test', array ("id" => array ("ID", "name", "title"), "info" => $ info ))} // pass it to TestWidget. class. php parameters must be passed in array format

Run IndexAction. class. php

The page is displayed as follows:

In this case, the content in show.html is included.

When does name use widgte?

Widgets are usually encapsulated JS effect components. You can directly call 'add parameters to obtain some effects, such as interactive effects such as TAB menus, carousel Trojans, and image carousel.

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

It is convenient to call multiple times. For example, a news list is displayed on the left side of the page. If every page calls this list, do you have to write the same code in each controller, the widget may only need to be written once, and then used multiple times in the template

I hope this article will help you design PHP programs based on the thinkPHP framework.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.