smarttemplate怎么用include 头文件或者尾文件? 用head.php和foot.php来解析这两个模板,然后再include“head.php”和“foot.php”,这样应该可以,没试过,可以试试!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你看smarty的demo文件,里面有这个 同意erldy(我还是我)的看法,就是这样 ---楼主---以下是我采用的一种方法:--code---<?php$page = new SmartTemplate("opensource.html");//....opensource.php自身里的东西省略....//下面PAGE_FOOT这块就对应要套嵌的模板foot.html$page_foot = new SmartTemplate('foot.html');$page_foot->assign('PROCESS_TIME',timer());$page->assign('PAGE_FOOT', $page_foot->result()); //PAGE_FOOT作为一块$page->output(); //整个页面输出?>opensource.html里套嵌foot.html的方法:{PAGE_FOOT}--code--这个方法能够实现,但是不能作为2个单独的能被include的文件。不知道有没有别的解决方法。另外遇到一个<!--if var-->aa<!--endif var-->无论var是否为空aa都显示出来了。是什么原因呢?---楼主--- 楼上不用开两个新类一个就可的,smartytempalte支持多个模板$page->set_templatefile('foot.html');这里处理$page->assign('PAGE_FOOT', $page_foot->result('foot.html')); 直接在模板里{load_file:"head.htm"}参见http://smartphp.net/Examples/Templating/Extensions/load_file.php?menu=47 ---楼主---直接load静态文件的话volca(v) 的方法可行。但是如果head.htm也需要assign的话好象就不行了。uuq(杜牧) 的意思是不是取消$page_foot = new SmartTemplate('foot.html');这一行?如果取消了那么$page->assign('PAGE_FOOT', $page_foot->result('foot.html')); 的$page_foot从那定义?---楼主--- $page_foot换成$page以后,只解析最后一个set_templatefile中的模板文件了。 试验多次,总算实现了。不过原理不是很清楚。是不是需要必须new最先显示的模板文件,然后往下set_templatefile?<?php$page = new SmartTemplate("header.html");////assign sth//$page->output(); <---这里为什么不output()$page->set_templatefile("ShowDetail.html");////assign sth$page->output(); <---这里output()一次$page->set_templatefile("footer.html");$page->assign("FOOTER",$page->result());$page->output(); <---这里也要output()一次?>ShowDetail.html<html><body>{HEADER}....{FOOTER}</body></html> 请问楼上的{HEADER}定义在哪里?如果要在ShowDetail.html内加入其它的内容的话,要用到display的话,会不会冲突呀,display与SmartTemplate的output有什么区别? 不定义{HEADER}了简单的说,最先显示的new然后output();接下来显示的就set_templatefile()再output(); 晕了晕了。每次set_template以后显示出来的位置都不对了...不是替换{}了到底应该怎么实现include 啊?达人现身啊~~~ $data = $header->result();$main->assign('header, $data); 楼上的$header在哪定义?是$header=new template()还是$header=set_templatefile()? 如果header模板里有N个assign的话,而有N个文件需要用到header,那每个文件里都要assign很多次了。这样就失去了包含文件的意义了。我现在的做法是显示页面的模板里使用{HEADER}php文件里$page->assign("HEADER",include(ROOT_PATH."header.php"));然后header.php如下<?$header = new SmartTemplate("header".EXT);$header->assign(...)$header->assign(...)$header->assign(...)....return $header->result();?>这样的话修改了header.php那么所有包含了{HEADER}的文件都会更新了,算是include 的目的达到了,但是不知道是否合理。 {include file = head.html}<body></body>{include file = foot.html} 楼上的回帖要看回帖...不过还是谢谢了有个问题我将$array用print_r()打印出来效果如下:Array( [0] => Array ( [SELLTOP_INDEX] => 0 [SELLTOP_LINK] => ShowDetail.php?product_id=100285 [SELLTOP_TITLE] => 实用皮肤病性病治疗学 ) [1] => Array ( [SELLTOP_INDEX] => 1 [SELLTOP_LINK] => ShowDetail.php?product_id=100270 [SELLTOP_TITLE] => 内分泌代谢病临床新技术 ) [2] => Array ( [SELLTOP_INDEX] => 2 [SELLTOP_LINK] => ShowDetail.php?product_id=100169 [SELLTOP_TITLE] => 神经科感染性疾病诊疗常规 ) [3] => Array ( [SELLTOP_INDEX] => 3 [SELLTOP_LINK] => ShowDetail.php?product_id=100161 [SELLTOP_TITLE] => 临床常用辅助检查手册 ))我想问一下怎么用begin...end...来实现循环?比较急,大伙帮忙。 <!-- BEGIN tag -->{SELLTOP_INDEX}<a href="{SELLTOP_LINK}">{SELLTOP_TITLE}</a><br><!-- END tag -->$page->assign('tag',$array); php+mysql社区论坛问题 关于服务器 php运行错误 这个有循环的JS怎么写呢? ini_set 会改变当前脚本的vphp.ini 环境变量, 比如.....,;那么,如果 .... 呢? ckeditor放在apache目录里,报错ckeditor未定义【求助】 怎么把一中文字符串 转换成acsii码输入mysql数据库中? setcookie的作用域问题 请帮我详细分析以下一段模式匹配。 PHP上传文件 图像标识符是什么?imagecreatefromjpeg() 高分求助,怎么在PHP中接受一个Flash端传过来的XML数据?
以下是我采用的一种方法:
--code---
<?php
$page = new SmartTemplate("opensource.html");//....opensource.php自身里的东西省略....//下面PAGE_FOOT这块就对应要套嵌的模板foot.html
$page_foot = new SmartTemplate('foot.html');
$page_foot->assign('PROCESS_TIME',timer());
$page->assign('PAGE_FOOT', $page_foot->result()); //PAGE_FOOT作为一块$page->output(); //整个页面输出
?>
opensource.html里套嵌foot.html的方法:
{PAGE_FOOT}
--code--这个方法能够实现,但是不能作为2个单独的能被include的文件。不知道有没有别的解决方法。
另外遇到一个<!--if var-->aa<!--endif var-->无论var是否为空aa都显示出来了。是什么原因呢?---楼主---
smartytempalte支持多个模板
$page->set_templatefile('foot.html');
这里处理
$page->assign('PAGE_FOOT', $page_foot->result('foot.html'));
但是如果head.htm也需要assign的话好象就不行了。uuq(杜牧) 的意思是不是取消$page_foot = new SmartTemplate('foot.html');这一行?
如果取消了那么$page->assign('PAGE_FOOT', $page_foot->result('foot.html')); 的$page_foot从那定义?
---楼主---
<?php
$page = new SmartTemplate("header.html");
////assign sth
//$page->output(); <---这里为什么不output()
$page->set_templatefile("ShowDetail.html");
////assign sth
$page->output(); <---这里output()一次$page->set_templatefile("footer.html");
$page->assign("FOOTER",$page->result());
$page->output(); <---这里也要output()一次
?>ShowDetail.html
<html>
<body>
{HEADER}
....
{FOOTER}
</body>
</html>
如果要在ShowDetail.html内加入其它的内容的话,要用到display的话,会不会冲突呀,
display与SmartTemplate的output有什么区别?
简单的说,最先显示的new然后output();
接下来显示的就set_templatefile()再output();
每次set_template以后显示出来的位置都不对了...
不是替换{}了到底应该怎么实现include 啊?
达人现身啊~~~
$main->assign('header, $data);
是$header=new template()还是$header=set_templatefile()?
这样就失去了包含文件的意义了。
我现在的做法是显示页面的模板里使用{HEADER}
php文件里$page->assign("HEADER",include(ROOT_PATH."header.php"));
然后header.php如下
<?
$header = new SmartTemplate("header".EXT);
$header->assign(...)
$header->assign(...)
$header->assign(...)
....
return $header->result();
?>这样的话修改了header.php那么所有包含了{HEADER}的文件都会更新了,
算是include 的目的达到了,但是不知道是否合理。
<body>
</body>
{include file = foot.html}
不过还是谢谢了有个问题我将$array用print_r()打印出来效果如下:
Array
(
[0] => Array
(
[SELLTOP_INDEX] => 0
[SELLTOP_LINK] => ShowDetail.php?product_id=100285
[SELLTOP_TITLE] => 实用皮肤病性病治疗学
) [1] => Array
(
[SELLTOP_INDEX] => 1
[SELLTOP_LINK] => ShowDetail.php?product_id=
100270
[SELLTOP_TITLE] => 内分泌代谢病临床新技术
) [2] => Array
(
[SELLTOP_INDEX] => 2
[SELLTOP_LINK] => ShowDetail.php?product_id=
100169
[SELLTOP_TITLE] => 神经科感染性疾病诊疗常规
) [3] => Array
(
[SELLTOP_INDEX] => 3
[SELLTOP_LINK] => ShowDetail.php?product_id=
100161
[SELLTOP_TITLE] => 临床常用辅助检查手册
)
)我想问一下怎么用begin...end...来实现循环?
比较急,大伙帮忙。
{SELLTOP_INDEX}<a href="{SELLTOP_LINK}">{SELLTOP_TITLE}</a><br>
<!-- END tag -->
$page->assign('tag',$array);