首页 > 解决方案 > 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 块。当我显示页面时。

亲切的问候

标签: smartyprestashop-1.7smarty3

解决方案


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


推荐阅读