我使用主题Default-Bootstrap在Prestashop(1.6.1.1。)中设置网上商店。
我在您的主页上使用"图像滑块"模块,但它只显示在主页中。我尝试了不同的东西,但其中任何一个都有效:
{if $page_name =='index'}
我试图在header.tpl中使用以下条件强制它:
{if $page_name !='index' && $page_name !='pagenotfound'}
{include file="$tpl_dir./modules/homeslider/homeslider.tpl"}
{/if}
我尝试将/homeslider.tpl中的代码直接复制并粘贴到header / tpl模板中,但只显示<!-- Module HomeSlider -->
条评论之间的任何内容({{1 condition似乎返回false)。
当然,该模块已挂钩在DisplayTop中,但主页外部仍未发生任何事情......并且不能使用DisplayTopColumn。
这是homeslider.tpl的代码:
{if isset($homeslider_slides)}
还是header.tpl的一部分:
<!--{if $page_name =='index'} -->
<!-- Module HomeSlider -->
{if isset($homeslider_slides)}
<div id="homepage-slider">
{if isset($homeslider_slides.0) && isset($homeslider_slides.0.sizes.1)}{capture name='height'}{$homeslider_slides.0.sizes.1}{/capture}{/if}
<ul id="homeslider"{if isset($smarty.capture.height) && $smarty.capture.height} style="max-height:{$smarty.capture.height}px;"{/if}>
{foreach from=$homeslider_slides item=slide}
{if $slide.active}
<li class="homeslider-container">
<a href="{$slide.url|escape:'html':'UTF-8'}" title="{$slide.legend|escape:'html':'UTF-8'}">
<img src="{$link->getMediaLink("`$smarty.const._MODULE_DIR_`homeslider/images/`$slide.image|escape:'htmlall':'UTF-8'`")}"{if isset($slide.size) && $slide.size} {$slide.size}{else} width="100%" height="100%"{/if} alt="{$slide.legend|escape:'htmlall':'UTF-8'}" />
</a>
{if isset($slide.description) && trim($slide.description) != ''}
<div class="homeslider-description">{$slide.description}</div>
{/if}
</li>
{/if}
{/foreach}
</ul>
</div>
{/if}
<!-- /Module HomeSlider -->
<!--{/if}-->
我希望我能很好地解释这个问题,以便你能够帮助我:)。
提前致谢! iarcas
答案 0 :(得分:0)
我认为你已经走上了正确的轨道,你在条件模板中找到了条件,但你是否检查了模块中的实际钩子?
见:
<强> homslider.php 强>
public function hookdisplayTopColumn($params)
{
if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index')
return;
if (!$this->_prepareHook())
return false;
return $this->display(__FILE__, 'homeslider.tpl', $this->getCacheId());
}
基本上,你必须对这个函数进行覆盖:
<强> /override/modules/homeslider/homeslider.php 强>
<?php
class HomeSliderOverride extends HomeSlider
{
public function hookdisplayTopColumn($params)
{
if (!$this->_prepareHook())
return false;
return $this->display(__FILE__, 'homeslider.tpl', $this->getCacheId());
}
}