1

現在の設定

ストアの各商品には複数の画像があります。訪問者が製品ページにアクセスすると、メイン画像と一連のサムネイル(表示)が表示されます。サムネイルをクリックすると、その画像がメイン画像領域に即座に表示されます。

各製品には、「色」などの属性選択ドロップダウンもあります。

Drupal/Ubercart構成

Drupal6を使用しています。ファイルタイプのカスタム画像フィールドを持つ製品コンテンツタイプがあります。この 画像フィールドは、複数の値(つまり、複数の画像)を受け入れます。

次に、ビュー(ビューモジュール)を使用して一連のサムネイルを表示し、サムネイルがクリックされたときにメイン画像を変更するJavaScriptを使用します。

私が達成しようとしていること

サムネイルに加えて、訪問者が色属性ドロップダウンから色オプションを選択すると、使用可能な画像の1つ(基本的には色の選択に一致するもの)が表示されます。

私が見たもの

Ubercart Option Imageを知っていますが、これにより、属性ごとに新しい画像をアップロードする必要があり、製品ごとではありません。たとえば、属性colorは、すべて同じ色を共有する複数の異なる製品に使用されます。

オプション画像モジュールを使用すると、同じ属性を共有するすべての製品が同じ画像を表示します。だから、これはダメです。

また、製品ノードの既存の画像の1つを使用できるようにしたいので、新しい画像をアップロードしたくありません。

4

2 に答える 2

2

これは可能なはずですが、やや回りくどい方法です。おそらく、次の方法は苦労する価値がありますか?

  1. 新しいコンテンツ タイプを作成します。それを ImagefieldAttribute と呼びます。そのコンテンツ タイプに無制限の数のイメージ フィールドを格納できるようにします。また、ImagefieldAttribute コンテンツ タイプを属性と呼ばれる分類語彙に関連付けます。基本的に、ImagefieldAttribute コンテンツ タイプは、同じ属性を持つすべての製品画像を格納します。

  2. ここで、Product コンテンツ タイプにノード参照フィールドを作成します。nodereference フィールドは、ImagefieldAttribute コンテンツ タイプにのみリンクします。(編集: nodereference フィールドが無制限の数の nodereferences を持つことができることを確認してください。これは、任意の数の ImageFieldAttribute コンテンツ タイプを参照できるようにするためです。それぞれに、特定の属性を持つすべての画像が含まれています)

  3. ビューとサムネイルを変更して、Product コンテンツ タイプの追加レベルの間接性を反映する必要があります。ビューの経験がある場合は、これがビューの関係を作成するケースであることに気付くでしょう。

  4. 公開フィルターを作成することもできます。フィルターは ImagefieldAttribute コンテンツ タイプにあるため、関係を使用する必要があることに注意してください (これは nodereference 関係を使用して取得します)。表示される属性を制限できます (たとえば、どのアイテムにも黄色がない場合)、ドロップダウンで黄色にならないようにする必要があります。これは、 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 のイメージではなくメインの製品イメージを更新することでした。

私が行ったことの主な欠点の 1 つは、重複した画像がサーバー上の 2 つの場所に保存されているため、別々にダウンロードされることです。これは予算内で行われた小さなプロジェクトだったので、「正しく」行うために時間を費やす自由がありませんでした。しかし、それが必要な場合は...うまくいきます!

このサイトでは、複数の画像を商品に直接添付するのではなく、オプションの画像モジュールを使用して属性に添付しています。また、サムネイルがクリックされたときに色の選択が更新されるように、いくつかの js を作成するのにそれほど多くの作業は必要ありません。

更新 1:
このプロジェクトにどれだけ投資する気があるかはわかりませんが、これについてもう少し考えてみると、どの属性オプションがどの画像に適用されるかを指定する必要があるように思えます。私が視覚化するのは、製品の画像をアップロードするときに、これらの選択を行うことができるということです.

次に、訪問者が画像に添付されているオプションを選択するか、サムネイルをクリックすると、オプションが更新されます。

インターフェイスを視覚化するのに十分な時間はまだ考えていません。おそらく、他の要件のいくつかがそれを指示するでしょう。

更新 2:
以下のコメントの後、さらにいくつかの提案があります。

製品の編集/オプション画面で、どの画像を特定のオプションに適用するかを選択できるドロップダウンを使用できます。これにより、画像がサーバーに何度もアップロードされるという問題を解決できます。

uc_product_optionsこれを実現するには、かなりの量の作業が必要であり、製品と画像の関係を格納するために、おそらく別のテーブルまたは少なくともフィールドをテーブルに追加する必要があります。uc_option_imageモジュールを出発点として使用します。必要なことを達成するための多くの方向性を与えてくれます。

複数の製品に属性を関連付けるという問題を解決するために私が行ったことは、顧客に可能なすべての色を属性に付けてもらい、特定の製品に適用される色のみを選択することです。私たちが検討したが拒否したもう 1 つのオプションは、それぞれの異なる製品に大まかに対応する多くの異なる属性を設定することでした。このルートに行かなかった理由はすべて忘れてしまいましたが、そのうちのいくつかはかなり明白です。:-)

于 2010-08-03T23:51:45.557 に答える