logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

D7でタクソノミー用語のシノニムを引数にしたカタログ

22/02/2025, by 匿名 (未認証ユーザー)
フォーラム

こんな質問があります:Drupal Commerceで、例えばこちらのショップhttp://czech-cristal.ruのような商品カタログを作っています。つまり、必要な商品名を持つ「商品カテゴリー」というタクソノミーのボキャブラリーを作成し、「Pattern for all 商品カテゴリー paths」がcatalog/[term:name]という形になるように設定しました。もちろん、そのボキャブラリーを元に、引数を渡す形でViews(パスcatalog/%)にリンクするメニューも作成しました。

リンクはhttp://czech-cristal.ruのように、まさにcatalog/[term:name]という形にする必要があります。

それで、次に私がぶつかった問題ですが、タクソノミーの用語を入力すると、catalog/obuv-timberlandやcatalog/novyy-terminというリンクを持つメニューが表示されました。
url catalog/%を持つViewsを作成し、コンテキストフィルターに「コンテンツ:タクソノミー用語IDを持つ(深さ指定あり)」を設定し、検証条件でPHPコードを選び、コードには以下を記述しています:

 

$url = drupal_lookup_path('source', "catalog/".$argument);


if ($url != false)
{
  // パスが見つかった場合、それがタクソノミー用語へのパスか確認する
  //
  $term_base_path = 'taxonomy/term/';

  if (strncmp($term_base_path, $url, strlen($term_base_path)) == 0)
  {
    // 'taxonomy/term/'というプレフィックスを取り除き、残った値を数値に変換して
    // Viewsの引数を取得したタクソノミー用語のIDに置き換える
    //
    $handler->argument = intval(str_replace($term_base_path, '', $url));
  }
}

return TRUE;

 

それで、Views自体では、正しく動作するはずの表示がすべて正しく行われています。用語に応じて必要な商品が表示されます(スクリーンショット1)。私の問題は、実際のサイト上でcatalog/obuv-timberlandやcatalog/novyy-terminというアドレスにアクセスすると、Viewsのプレビューで見えていたものではなく、これらのタクソノミー用語に関連付けられたコンテンツが順番に表示されてしまうことです(スクリーンショット2)。教えてください、実際のサイト上でもViewsのプレビューと同じようにカタログの商品が表示されるようにするにはどうすればよいですか。