smarty - smarty3模板引擎中如何使用include
问题描述
这是我的 Prestashop 1.7 的第一个模板。我使用 Starter 主题。但是现在我遇到了问题,因为我想创建新块。
地址.tpl
{extends file='page.tpl'}
{block name='page_content_container'}
<div class="container">
<div class="account">
<h2 class="heading">
{block name='page_title'}
{l s='Your addresses' d='Shop.Theme.Customeraccount'}
{/block}
</h2>
<div class="box">
<section id="content" class="page-content page-addresses">
{foreach $customer.addresses as $address}
{block name='customer_address'}
{include file='customer/_partials/block-address.tpl' address=$address}
{/block}
{/foreach}
<footer>
<a href="{$urls.pages.address}" data-link-action="add-address">
{l s='Create new address' d='Shop.Theme.Actions'}
</a>
</footer>
</section>
</div>
</div>
</div>
{/block}
和 page.tpl
{extends file='page.tpl'}
{block name='my_account_links'}
{include file='customer/_partials/my-account-links.tpl'}
{/block}
该文件扩展了另一个 page.tpl,但没有 my_account_links 块。问题是。为什么我在addresses.tpl 中看不到my_account_links 块。当我显示页面时。
亲切的问候
解决方案
You don't see your my_account_links block in addresses.tpl because you don't have any {block name='my_account_links'}
in addresses.tpl.
If you want to display your page.tpl in your addresses.tpl, you have to "call" the block in your parent file and extends it in your child file ( page.tpl ). Like this :
Addresses.tpl
{block name='my_account_links'} <!-- YOUR my_account_links OF YOUR PAGE.TPL WILL BE HERE {/block}
{block name='page_content_container'}
<div class="container">
<div class="account">
<h2 class="heading">
{block name='page_title'}
{l s='Your addresses' d='Shop.Theme.Customeraccount'}
{/block}
</h2>
<div class="box">
<section id="content" class="page-content page-addresses">
{foreach $customer.addresses as $address}
{block name='customer_address'}
{include file='customer/_partials/block-address.tpl' address=$address}
{/block}
{/foreach}
<footer>
<a href="{$urls.pages.address}" data-link-action="add-address">
{l s='Create new address' d='Shop.Theme.Actions'}
</a>
</footer>
</section>
</div>
</div>
</div>
{/block}
And in your page.tpl :
{extends file='addresses.tpl'}
{block name='my_account_links'}
{include file='customer/_partials/my-account-links.tpl'}
{/block}
Now, with this, your page.tpl ( the block 'my_account_links' ) will be display in your addresses.tpl
推荐阅读
- gradle - android_intent 报错先安装 Flutter 插件
- node.js - 使用 express-sslify 进行 https 重定向
- python - 带有 python 循环程序的项目
- callback - 为了方便,我们可以编辑回调函数 HAL_UART_TxCpltCallback 吗?
- mongodb - 如果 mongodb 聚合不使用 $lookup 的索引,为什么使用索引时我的性能会提高?
- android - 计算框架布局中的文本视图数
- java - 添加 KeyListener 后无法在文本字段中键入任何内容
- python - 如何使用列矩阵制作矩阵?
- javascript - es6 遍历具有嵌套数组的对象数组并返回单个数组?
- c# - 监听系统代理设置更改