This article mainly introduces the usage of smarty loop nesting, and analyzes the implementation skills and related precautions of Smarty template nested loops in the form of examples. Friends in need can refer to it
The examples in this article describe smarty Nested loop usage. Share it with everyone for your reference, the details are as follows:
test3.php:
1, "category_name" => "公告区", "topic" => array( array("topic_id" => 1, "topic_name" => "站务公告") ) ), array("category_id" => 2, "category_name" => "文学专区", "topic" => array( array("topic_id" => 2, "topic_name" => "好书介绍"), array("topic_id" => 3, "topic_name" => "奇文共赏") ) ), array("category_id" => 3, "category_name" => "电脑专区", "topic" => array( array("topic_id" => 4, "topic_name" => "硬件周边"), array("topic_id" => 5, "topic_name" => "软件讨论") ) ) ); $tpl->assign("forum", $forum); $tpl->display("test3.htm"); ?>
The sample writing is as follows:
templates/test3.htm:
循环嵌套测试
<{$forum[sec1].category_name}> | |
<{$forum[sec1].topic[sec2].topic_name}> |
test2.php:
template_dir = "./templates/dedecms";//设置模板目录 $smarty->compile_dir = "templates/templates_c"; //设置编译目录 $smarty->assign("template_url", "./"); $smarty->assign("$site_url", "//www.jb51.net/"); $smarty->assign("$site_name", "文章管理系统"); $smarty->left_delimiter = "<{"; //设置左边界符 $smarty->right_delimiter = "}>"; //设置右边界符 $db_conn = db_connect(); $query = "SELECT cat_ID,cat_name FROM categories ORDER BY cat_ID DESC"; $result = mysql_query($query); $i = 5; while(($row = mysql_fetch_array($result)) && $i > 0) { $query2="SELECT ID, post_title, post_date FROM post WHERE post.post_category =$row[cat_ID] AND post_status <> 'unpbulish' ORDER BY post_date DESC"; $result2=mysql_query($query2); $i = 5; while(($row2 = mysql_fetch_array($result2)) && $i > 0) { $row2[post_date]=date('m-d',strtotime($row2[post_date])); $category = array("cat_ID"=>"$row[cat_ID]","cat_name"=>"$row[cat_name]", "post"=>array("ID"=>"$row2[ID]", "post_title"=>"$row2[post_title]" , "post_category"=>"$row2[post_category]" , "post_date"=>"$row2[post_date]")); $i--; } } $smarty->assign("forum", $category); $smarty->display("test2.htm"); ?>
test2 .htm:
嵌套循环测试
<{$forum[sec1].cat_id}> | |
<{$forum[sec1].post[sec2].post_title}> |
test4.php:
"0"), array("value" => "1"), array("value" => "2"), array("value" => "3"), array("value" => "4"), array("value" => "5"), array("value" => "6"), array("value" => "7"), array("value" => "8"), array("value" => "9")); $tpl->assign("my_array", $my_array); $tpl->display('test4.htm'); ?>
The template is written as follows:
templates/test4.htm:
横向重复表格测试
<{$my_array[sec1].value}> | <{if $smarty.section.sec1.rownum is p by 2}>
The key point is the Smarty variable $smarty.section.sec1.rownum, which is in the section loop The variable will get the index value starting from 1, so when rownum can be divided by 2, outputto change the table (note! It isin front ofbehind) . So the number 2 is the number of records we want to present in a column. You can use this to change other different presentation methods.
Operators include the following:
eq, ne, neq, gt, lt, lte, le, gte, ge, is even, is odd, is not even, is not odd, not, mod, p by, even by, odd by
Example:
Smarty was not commonly used before, A friend's website needs to be modified in the past two days; I used it for a while and it was quite interesting.
About capture:
The function of the capture function is to collect the data output by the template into a variable, rather than output them to the page.
Any data between {capture name="foo"} and {/capture} is received in the variable specified by the name attribute of the function ($foo).
The information collected can be used In the special variable $smarty.
For example, capture.foo collects the above data. If the function does not have a name attribute, "default" will be used.
Each {capture} must correspond to { /capture}, and the capture function cannot be nested.
The above is the entire content of this article. I hope it will be helpful to everyone's learning. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
About the usage of PHP template engine Smarty’s built-in functions section and sectionelse
The above is the detailed content of About the usage of smarty loop nesting. For more information, please follow other related articles on the PHP Chinese website!