1

当前设置

商店中的每个产品都有多个图像。当访问者访问产品页面时,他们会看到主图像和一系列缩略图(视图)。当他们单击缩略图时,该图像会立即显示在主图像区域中。

每个产品还有一个属性选择下拉菜单,例如“颜色”。

Drupal / Ubercart 配置

我正在使用 Drupal 6。有一个 Product 内容类型,它有一个文件类型的自定义图像字段。该 图像字段接受多个值(即多个图像)。

然后,我使用视图(视图模块)显示一系列缩略图,并在单击缩略图时使用 javascript 更改主图像。

我想要达到的目标

除了缩略图之外,我想要的是当访问者从颜色属性下拉列表中选择一个颜色选项时,可以显示其中一个可用的图像(基本上是与颜色选择匹配的图像)。

我看过的

我知道Ubercart 选项图片,但这会迫使您为每个属性上传一张新图片,而不是每个产品。例如,属性颜色用于共享相同颜色的多个不同产品。

使用选项图像模块,所有具有相同属性的产品都将显示相同的图像。所以这是不行的。

此外,我不想上传新图像,我希望能够使用产品节点中的现有图像之一。

4

2 回答 2

2

这应该是可能的,但以某种迂回的方式。也许以下方法值得痛苦?

  1. 创建一个新的内容类型。称它为 ImagefieldAttribute。让该内容类型存储无限数量的图像字段。还将 ImagefieldAttribute 内容类型与称为属性的分类词汇相关联。本质上 ImagefieldAttribute 内容类型将存储具有相同属性的所有产品图像

  2. 现在在 Product 内容类型中创建一个节点引用字段。nodereference 字段将仅链接到 ImagefieldAttribute 内容类型。(编辑:确保 nodereference 字段可以有无限数量的 nodereferences。这样您就可以引用任意数量的 ImageFieldAttribute 内容类型——它们中的每一个都包含具有特定属性的所有图像)

  3. 您将需要更改视图和缩略图以反映产品内容类型中的额外间接级别。如果您在视图方面经验丰富,您只会将此视为创建视图关系的一个案例。

  4. 您还应该能够创建公开的过滤器。请注意,您将需要再次使用关系,因为过滤器将在 ImagefieldAttribute 内容类型中(您将使用节点引用关系来完成)。您可以限制将要显示的属性(例如,如果任何项目中没有黄色),您不应该在下拉列表中显示黄色。这可以通过使用http://drupal.org/project/views_taxonomy_selective_filter模块来实现。

  5. 每次都必须创建一个 ImagefieldAttribute 然后将其节点引用到您的产品可能很乏味。这可以使用http://drupal.org/project/popups_reference轻松实现

显然我还没有尝试过,所以你可能会在此过程中遇到无法预料的问题。没有属性的分类词汇表而只是 CCK 选择列表也可能是一个好主意。但是,视图分类选择性过滤器随后将不起作用。

于 2010-08-03T21:01:46.487 回答
1

如果我了解您要完成的工作,我在http://homespun-at-heart.com/product/gracie做了类似的事情。我所做的只是自定义 option_images 模块的 javascript 和预加载功能来更新主产品图像,而不是像默认情况下那样更新 option_image 的图像。

我所做的一个主要缺点是重复的图像存储在服务器上的两个位置,因此分别下载。这是一个按预算完成的小项目,所以我没有自由投入时间“正确”地完成它。但是,如果这就是您所需要的……它可以工作!

在此站点上,我们不会将多个图像直接附加到产品上,而是通过选项图像模块将它们附加到属性上。编写一些js也不会花费很多工作,以便在单击缩略图时更新颜色选择。

更新 1:
我不确定您愿意为这个项目投入多少资金,但正如我考虑过的那样,在我看来,您需要指定哪些属性选项适用于哪些图片。我想象的是,当您在产品上上传图像时,您将能够进行这些选择。

然后,当访问者选择附加到图像的选项或单击缩略图时,选项会更新。

我还没有考虑足够长的时间来可视化界面。也许您的其他一些要求会决定这一点。

更新 2:
在您在下面发表评论后,这里有更多建议。

在您产品的编辑/选项屏幕上,您可以有一个下拉菜单,允许您选择哪些图像适用于哪些特定选项。这将使您能够克服将图像多次上传到服务器的问题。

要做到这一点,需要大量的工作,可能还需要另一个表,或者至少需要在uc_product_options表中添加一个字段来存储产品和图像之间的关系。我会使用该uc_option_image模块作为起点。它会给你很多方向来完成所需要的。

What I did to overcome the issue of having the attributes attached to multiple products is have my customer put all the possible colors on the attribute then they select only the ones apply to the specific product. The other option that we considered but vetoed was setting up a lot of different attributes that would roughly correspond to each different product. I forget all the reasons we didn't go this route but some of them are pretty obvious. :-)

于 2010-08-03T23:51:45.557 回答