在产品页面中使用 Prestashop 模块 tpl 变量

Posted

技术标签:

【中文标题】在产品页面中使用 Prestashop 模块 tpl 变量【英文标题】:Use Prestashop module tpl variable inside product page 【发布时间】:2018-12-02 14:23:18 【问题描述】:

我有一个 Prestashop 模块,可以让我为每个产品上传额外的图片。通过使用钩子,图像使用钩子 hook h='displayProductAdditionalInfo' product=$product 显示在产品页面上。请参阅下面的模块 tpl 代码:

if $images
    foreach from=$images item=image
        if $image.type ==1
            <img src="$this_pathuploads/$image.image" >
        else
            <img src="$this_pathuploads/$image.image" >
        /if
    /foreach
/if

我面临的挑战是,我想将此图像中的一个用作我的 poduct.tpl 文件部分的背景图像。例如,使用下面的代码:

<div class="uk-background-cover uk-panel" style="background-image: url(...);">
block name='page_header'
   <h1 class="h1" itemprop="name">block name='page_title'$product.name 
    /block</h1>
/block
</div>

我曾想过使用assign var=bgpath value="hook='displayProductAdditionalInfo'",然后在style="background-image: url($bgpath); 中使用$bgpath,但它带来了错误。 我也在下面尝试过,这样我就可以使用style="background-image: url($bgpath);

if $images
        foreach from=$images item=image
            if $image.type ==1
                assign var=bgpath value="$this_pathuploads/$image.image"
            /if
        /foreach
/if

它不起作用,因为此变量在 product.tpl 中不可用,但在 module.tpl 中不可用

我读到我们可以使用控制器覆盖,但我不确定它是否会起作用或如何实现它。

【问题讨论】:

【参考方案1】:

您可以在 tpl 文件中使用 style 标签而不是 style 属性。

if $images
    foreach from=$images item=image
        if $image.type ==1
            assign var=bgpath value="$this_pathuploads/$image.image"
        /if
    /foreach
<style>
    div.uk-background-cover 
        background-image: url($bgpath);
    
</style>
/if

【讨论】:

以上是关于在产品页面中使用 Prestashop 模块 tpl 变量的主要内容,如果未能解决你的问题,请参考以下文章

Prestashop 产品自定义 - 保存到购物车

如何使用 prestashop 1.7 上的模块在前台创建自定义页面

Prestashop 1.7 调试栏

如何在Prestashop中展示畅销产品?

Prestashop 1.7在管理产品页面上添加自定义字段

错误:“错误太多重定向” Prestashop 1.7