ThinkPHP framework view

Source: Internet
Author: User
I. Composition of View and View components: 1) View and View Smarty 2) template Tpl/project/module /***. the html view class reads the template content, replaces the string, and finally outputs the content to the user. 2. defines the default template file definition rule in the template directory/[group name... "/> <scripttype =" text/javascript "src =" ht

I. View

 

1. View component composition:

 

1) View class

 

View class

Smarty class

 

2) template

 

Tpl/project/module/***. html

 

The View class reads the template content, replaces the string, and finally outputs the content to the user.

 

2. Template definition

 

Default Template File definition rules:

 

Template directory/[group name/] module name/operation name + template suffix

 

TMPL_TEMPLATE_SUFFIX

 

Generally, the template suffix uses the following types:

 

. Html

. Htpl

. Tpl

 

3. delimiter

 

Because each template designer has different habits, some people are used to "{}" and some use <{}> {**}

 

In the configuration file, you can set the following two configuration options to indicate the delimiter of the configuration template.

 

'Tmpl _ L_DELIM '=>' <{',

'Tmpl _ R_DELIM '=>'}> ',

 


 

4. Template assignment and output

 

1) $ this-> assign ('Template variable name', variable );

$ Var = 'cell phone ';

$ This-> assign ('var', $ var );

$ This-> display ('test ');


2) $ this-> assign (array variable );

<{$ Array element subscript}>

 
<{$ Price}>

<{$ Address}>

$ Var = 'cell phone ';

$ This-> assign ('var', $ var );

$ Arr ['price'] = 33.3;
$ Arr ['address'] = 'Beijing ';
$ This-> assign ($ arr );
$ This-> display ('test ');
}

 

 

3) $ this-> display ('Operation name ')

Define the operation name .html template in the previous example

4) $ this-> display ('Module: Operation name'); // The template can be called across modules.


Reference refers to the specified operation name. HTML template

5) $ this-> display ('operation', 'output encoding', 'output type ');

 


// Cross-module output
$ This-> display ('User: login', 'utf-8', 'text/html ');

 

 

 

5. Template replacement (Template constant)

Css, js, and image resources are often referenced in projects.


_ PUBLIC __: PUBLIC directory of the current website

_ APP __: URL address of the current project

_ GROUP __: The URL address of the current GROUP

_ URL __: URL address of the current module

_ ACTION __: URL of the current operation

 

In the template of tp, you can use the preceding template constants, which represent different strings. Generally, you can use the preceding constants when you need to reference a url.

 

By default, if we access:

 

Localost/index. php/home/product/test. if The _ PUBLIC _ template constant is used in the template, the value of the template points to the directory of apache htdocs, but if we have multiple projects, there will be conflicts. how can this problem be solved?

 

Solution:

 

1) modify the configuration file

 

In the configuration file, you can configure an option called TMPL_PARSE_STRING, which can define the values that are common in the template.

 


 

Then, in the template, you can reference the resource files under the current project as follows:

 


 

2) configure the VM

 

Open the host file:


Open httpd. conf

 

 


 

Remove # from the preceding configuration options

 

Open the httpd-vhosts.conf file and add new VM settings

 


 

Restart apache

 

Localhost --- à apache/htdocs/

 

Tp.com ----- à apache/htdocs/tp/

 

6. get content

 

$ This-> fetch ();

 


 

Display: Read template, replace content, and output

Fetch: Read template, replace content, and return string (mainly used to generate static pages)

 

 

II. Template

 

1. template comment:

 

L {/* Comment */}

 

L {// comment content}

 

Template Annotations in Tp are mainly for template designers or program designers.

 

2. variable output:

 

The program assigns a value to the template.

 

Common variables

$ Name

Array variables

$ Row

Object variable

$ Obj

 

Sample code:

 

Php program:

 


 

Template program:

 


 

 

 

 

 

 

 

3. system variables (system variables in the template)

 

L $ Think. server $ _ SERVER

L $ Think. get $ _ GET

L $ Think. post $ _ POST

L $ Think. request $ _ REQUEST

L $ Think. cookie $ _ COOKIE

L $ Think. session $ _ SESSION

L $ Think. config read the configuration file

 

 


 

4. use functions

 

L format

 

{$ Name | fn1 | fn2 = arg1, arg2 ,###}

 


 

5. default value

 

{$ Variable | default = "default value "}

 


 

6. Operators

 

L + {$ a + $ B}

L-{$ AB}

L * {$ a * $ B}

L/{$ a/$ B}

L % {$ a % $ B}

L ++ {$ a ++} or {++ $}

L -- {$ a --} or {-- $}

 


 

7. built-in labels

 

<{$ Title}>

<标签>

L closed labels


L open tags

 

8. include files

 

 

Is the project-based entry file location.

 

./Tpl/Admin/Public/header.html

 

We put the public webpage on header.htmland footer.html, and use include on the home page for reference.

 


 

 

 

When the above file is referenced, the path is too long. how can this problem be solved?

 

 

L format:

 

File (required): Resource file

Type (optional): type of the resource file. the default value is js.

 

The starting path is the Public (_ PUBLIC _) Directory of the website.

Namespace

Directory. Directory. file name

 


 

10. volist tag

 

Used to traverse array elements

 

L format:

 

{$ Vo. id}

{$ Vo. name}

 

L name (required): array variable to be traversed

L id (required): Current array element

L offset: the offset of the data to be output

L length: the length of the output data. you must specify the offset.

L key: the default value of the cyclic index key is I.

 


 

 

11. foreach label

 

Used to traverse array variables

 

Syntax:

{$ Vo. id}

{$ Vo. name}

 

Name: array variable to be traversed

Item: The variable name used to save the current element.

 

If you have special requirements, use volist. Otherwise, use foreach.

 


12. for tag

 

{$ I}

 

Attribute:

L start (required): start value of the cyclic variable

L end (required): end value of the loop variable (not included)

L name (optional): name of the cyclic variable. the default value is I.

L step (optional): step value. The default value is 1.

 


 

13. switch label

 

L format:

Output Content 1

Output Content 2

Default

 


 

14. empty tag

 

L Name is null

 

15. assign label

 

L

16. if tag

 

L if

L elseif

L else

 


 

Use the following connector when determining

 

L eq or equal: equal

L neq or notequal: not equal

L gt: greater

L egt: greater than or equal

L lt: less

L elt: less than or equal

L heq: constant equals

L nheq: non-constant equals

 

17. use php code

 

1) Echo "hello ";

2)


 

In the configuration file, there is an option to control whether the second method is available


TMPL_DENY_PHP can disable the second method.

 

Suggestion: use php code as few as possible in the template


 

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.