ecshop v2.7.3的模板中为什么if,foreach这些语句都要加<!-- -->? rt发现模板中的所有条件,循环之类的语句都要加<!-- {if ()} -->这样子的,为什么不可以直接{if ()}呢?还有,#BeginLibraryItem表示什么意思?要包含文件不是应该用include或require之类的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你指的是模板?<!-- -->是为了模板当html文件打开时if这样的php语句注释掉,这样不会影响模板的样子。这个是为了调试模板用的。#BeginLibraryItem是模块开始,ecshop是把网页模块分成了一个个小块,这样使用时就更灵活,不同的网页需要什么模块就把相应的模块加进来。#BeginLibraryItem而不是include是因为ecshop有自己一套模板解释程序,他会根据这样的标识进行解释。 应该是这个 includes\cls_template.php smarty_prefilter_preCompile 这个方法就是解析#BeginLibraryItem 但是有些模板删除了<!-- if() -->这些注释语句会显示不正确:例如ecshop中的invoice_query.lbi(用于发货查询):原代码:<meta http-equiv="Content-Type" content="text/html; charset=gbk"><!--{if $invoice_list}--><style type="text/css">.boxCenterList form{display:inline;}.boxCenterList form a{color:#404040; text-decoration:underline;}</style><div class="box"> <div class="box_1"> <h3><span>{$lang.shipping_query}</span></h3> <div class="boxCenterList"> <!-- 发货单查询{foreach from=$invoice_list item=invoice} --> {$lang.order_number} {$invoice.order_sn}<br /> {$lang.consignment} {$invoice.invoice_no} <div class="blank"></div> <!-- 结束发货单查询{/foreach}--> </div> </div></div><div class="blank5"></div><!-- {/if} -->正确显示:发货查询订单号 2009061909851发货单 232421订单号 2009052224892发货单 1123344 但删除所有<!-- -->语句后却不显示订单号和发货单的数据:发货查询订单号发货单 哇。。连smarty中的assign, display函数都自己写,太厉害了 <!-- if() -->你可以删除<!-- -->但不能删除if()模板最终都是以php解析的,没了if当然就会出错。 你的意思是说<!-- -->是用来调试时候用的,if()是必须存在的是吧?! <!-- -->是html语言的注释。 这个是当你直接用浏览器打开的时候,给web前端调试用的 那你把<!-- 和 -->去掉然后在浏览器打开html文件看看会不会一片混乱 如果你只删掉注释的符号,里面的if啊else啊还留在那呢 <!-- if() --><div>.....</div>像如上语句include到一个html中,用网页打开,网页不会显示if()。而include到一个php中if条件就会起作用. zencart 1.39如何做伪静态处理 dotproject相关问题。 discuz!x 1.5 更换模板的问题,拜托大家 Discuz! X2 中“出售商品”表单的信息可以自定义不? 关于ThinkPHP的问题,大家帮帮忙 寻找PHP开源考试系统 php5+php-frm+libevent+memcached为何这种环境能解析.php 求一伪静态写法。 ???????自动运行php程序 网页地图导航如何开发 firefox如何设置可以使得print_printer不自动写入默认打印机 关于magic_quotes_gpc设为ON
但是有些模板删除了<!-- if() -->这些注释语句会显示不正确:例如ecshop中的invoice_query.lbi(用于发货查询):
原代码:<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<!--{if $invoice_list}-->
<style type="text/css">
.boxCenterList form{display:inline;}
.boxCenterList form a{color:#404040; text-decoration:underline;}
</style>
<div class="box">
<div class="box_1">
<h3><span>{$lang.shipping_query}</span></h3>
<div class="boxCenterList">
<!-- 发货单查询{foreach from=$invoice_list item=invoice} -->
{$lang.order_number} {$invoice.order_sn}<br />
{$lang.consignment} {$invoice.invoice_no}
<div class="blank"></div>
<!-- 结束发货单查询{/foreach}-->
</div>
</div>
</div>
<div class="blank5"></div>
<!-- {/if} -->
正确显示:
发货查询
订单号 2009061909851
发货单 232421
订单号 2009052224892
发货单 1123344
但删除所有<!-- -->语句后却不显示订单号和发货单的数据:
发货查询
订单号
发货单
哇。。连smarty中的assign, display函数都自己写,太厉害了
模板最终都是以php解析的,没了if当然就会出错。
你的意思是说<!-- -->是用来调试时候用的,if()是必须存在的是吧?!
<div>.....</div>
像如上语句include到一个html中,用网页打开,网页不会显示if()。
而include到一个php中if条件就会起作用.