Prestashop 预览选择属性组合照片

Prestashop 预览选择属性组合照片,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,简短版本:我想获取分配给产品属性组的产品照片。 Long version:我想通过创建一个自定义模块来完成此功能:在产品页面上,您可以从代表不同颜色的产品照片列表中选择产品颜色,如下所示:(很抱歉,这是波兰语,但我想您会明白的)。我已经使用下面的代码获得了具有不同颜色的产品的属性组(我获得了所有属性组,如果我还没有获得具有给定颜色名称的组,那么我将其添加到数组$colors): 现在我查看了产品类,我不明白如何获得与所选产品组关联的图像。我还打印了全部$colors内容,但没有看到任何相关字段。

简短版本:我想获取分配给产品属性组的产品照片。 Long version:我想通过创建一个自定义模块来完成此功能:在产品页面上,您可以从代表不同颜色的产品照片列表中选择产品颜色,如下所示:(很抱歉,这是波兰语,但我想您会明白的)。我已经使用下面的代码获得了具有不同颜色的产品的属性组(我获得了所有属性组,如果我还没有获得具有给定颜色名称的组,那么我将其添加到数组$colors):

现在我查看了产品类,我不明白如何获得与所选产品组关联的图像。我还打印了全部$colors内容,但没有看到任何相关字段。 图像被正确地分配给管理中的属性组合。你能给我指个方向吗?
编辑:为了让自己更清楚-我想把产品的照片指定给特定的属性值-假设我有黑色或白色的鞋子,我想得到白色的鞋子图像和黑色的鞋子图像。属性以颜色和大小的组合(我认为现在称为“组”)进行组织,每个组合都有一组照片-我想访问此照片列表。

您在Product类中找不到任何有用的内容,因为在Prestashop上为Attributes value进行的属性图像关联是以一种愚蠢而简单的方式进行的。 保存与属性关联的图像时,将在特定文件夹下创建图像文件

_主题库目录_

这只不过是prestashop image目录下的“co”子文件夹,id_属性为namefile,jpg为文件扩展名

例如,如果您想检查图像中的id_属性5,您可以在下面找到它:
\u THEME\u COL_DIR.$id_attribute.jpg'=>'/img/co/5.jpg'

通过这种方式,您将看到,无论是在管理中还是在前端,每次必须显示属性的图像时,代码都直接放置在模板中,而不需要对控制器/类进行任何预处理

例如,在product页面中,product.tpl包含以下内容:

<a id="color_{$id_attribute|intval}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}" style="background: {$colors.$id_attribute.value};" title="{$colors.$id_attribute.name}" onclick="colorPickerClick(this);getProductAttribute();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if}">
        {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
        <img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br>
        {/if} ... </a>

{如果文件_存在($col_img_dir | cat:$id_attribute | cat:'.jpg'))

{/if}。。。

图像存在和url都直接在模板中创建,只需使用img_col_dir和id_属性

,这是一个很好的观点,也是一个非常有趣的知识,但这不是我要问的。也许我表达得不够清楚-我想把产品的照片指定给特定的属性值-假设我有黑色或白色的鞋子,我想得到白色的鞋子图像和黑色的鞋子图像。属性以颜色和大小的组合(我想现在称为“组”)进行组织,每个组合都有一组照片-我想访问此照片列表:)无论如何,感谢您的努力!在这种情况下,我认为您不应该检查属性的图像,而是检查组合图像。生成组合时,您可以将特定照片(从指定给产品的列表中)指定给它,然后在选择特定组合时显示此照片。检查Product类中的getCombinationImages()。谢谢,您为我指明了正确的方向,我已经实现了我想要的:)谢谢您的努力!
<a id="color_{$id_attribute|intval}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}" style="background: {$colors.$id_attribute.value};" title="{$colors.$id_attribute.name}" onclick="colorPickerClick(this);getProductAttribute();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if}">
        {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
        <img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br>
        {/if} ... </a>