web-dev-qa-db-ja.com

ビューは分類ページのパスオートパターンを処理しません

私のサイトには2つの分類があり、異なるビューを使用して個別に参照できる必要があります。そのため、用語パスに語彙名を付加することにしました。 PathAutoパターンセクションで私が定義しました:

[term:vocabulary:name]/[term:url:path]

パスは私が望むように見えます:

vocabname/taxonomy/term/tid

ただし、ビューは機能しません。パス用に生成されたページ

vocabname/taxonomy/term/%

どういうわけかジャンプしません。この用語でタグ付けされたコンテンツがないというエラーが表示されますが、ビューには子の用語のティーザーが表示されるはずです。

それで、あなたは私の側に間違った仮定があると思いますか?それでうまくいくでしょうか?

3
Artur

OK、それで誰かが同じ問題に遭遇した場合のために。私の責任です。分類表示はうまく機能します。それは語彙を区別し、私のPathAutoパターンは触れる必要がありませんでした。私が注意しなければならない唯一のことは、最終的なコンテンツノードのリストを担当するビューでコンテキストフィルターのデフォルト値を提供することでした。デフォルト値は、分類IDとしてURLから取得する必要があります。それでおしまい。

1
Artur

はい-あなたはこれに非常に近いですが、pathautoパスがここのビューによって認識されていないことは正しいです。これを克服するには、ビューの引数処理コードに「デフォルト引数」を追加し、PHPコードを使用して、文字列の末尾から用語IDを渡す必要があります。

使用しているトークンのバージョンから、Drupal 7/Views 3、正しいですか?そうである場合、これを以下に追加することになります

コンテキストフィルター->コンテンツ:分類用語IDがあります->デフォルトの引数を提供-> PHPコード

次に、phpコードセクションに次のコードを追加します。

$path = isset($_GET['q']) ? $_GET['q'] : '';
$path = explode('/', $path);
return $path[3];

これにより、現在のパスが配列として取得され、3番目の要素またはTIDが返され、ビューに渡されます。

1
schnippy