这是一个非常简单的问题,但它让我感到恼火。我想评论以下例子:
<!--
{if $scenes}
<!-- Scenes -->
{include file="$tpl_dir./scenes.tpl" scenes=$scenes}
{else}
<!-- Category image -->
{if $category->id_image}
<div class="align_center">
<img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" />
</div>
{/if}
{/if}
-->
我想评论所有这些文字,所以浏览器赢了; t显示这段代码。问题是我已经发表评论,似乎浏览器混淆了结束标记。因此,在这种情况下,当我希望它影响整个文本时,第一个打开注释标记只会影响{if $ scenes}。你能让我知道怎么做到这一点?!?!
谢谢,
丹尼答案 0 :(得分:3)
如果我理解正确,您希望能够嵌套HTML注释。为此,您需要将双短划线--
替换为两个短划线和一个空格- -
。
基本上,
<!--
This is a comment.
<!- -
This is a nested comment.
- ->
-->
将此应用于您的代码,最终应该是这样的:
<!--
{if $scenes}
<!- - Scenes - ->
{include file="$tpl_dir./scenes.tpl" scenes=$scenes}
{else}
<!- - Category image - ->
{if $category->id_image}
<div class="align_center">
<img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" />
</div>
{/if}
{/if}
-->
答案 1 :(得分:1)
您所使用的语言不是 HTML,而是一种生成HTML的语言。该语言显然支持if / else条件嵌套,因为你展示了一个非常好的例子。因此,即使HTML生成语言本身缺少嵌套注释,您也可以使用条件来删除其中的部分内容,从而抑制该HTML的生成:
假设令牌false
表示布尔值false(在给定的模板语言中用正确的表达式替换为false):
{if false}
{if $scenes}
<!-- ... >
{else}
...
{/if}
{/if}
处理器不会输出if false
块中的所有内容。