0

今日、Drupal で問題が発生しました。

ページにノード (製品) を表示したいと思います。そのノードの下に、3 つの類似したノード (製品) を表示したいと思います。同様の存在: 同じ分類 ID を持っているか、「昇格」タグが付けられています。

製品のページにいるときだけ、関連するノードをブロックとして表示されるビューに作成しようとしました。私はこれでうまくいきませんでした。

次に考えたのは、製品用と関連製品用の 2 つのビューを持つパネル ページを作成することでした。私もこれでうまくいきませんでした。

これを達成する最も簡単な方法を知っている人はいますか?

アップデート:

両方の回答を試しましたが、関連する製品が届きません。実行される SQL クエリ (term id = 1) は次のとおりです。

SELECT node.type AS node_type, node.title AS node_title, node.nid AS nid, node.created AS node_created FROM  {node} node INNER JOIN {taxonomy_index} taxonomy_index_value_0 ON node.nid = taxonomy_index_value_0.nid AND taxonomy_index_value_0.tid = :views_join_condition_0 WHERE (( (node.type IN ('product')) AND (taxonomy_index_value_0.tid AND '') AND( (taxonomy_index_value_0.tid IN ('1')) ))) ORDER BY node_created DESC LIMIT 10 OFFSET 0

クエリを手動で実行してクエリから削除するとAND (taxonomy_index_value_0.tid AND '')、関連する製品が表示されます。

コードがクエリに追加される原因とその修正方法を知っている人はいますか?

更新 2: 「引数ごとに複数の用語を許可する」を削除し、関連製品を取得しています。これが私のサイトにとって何を意味するのかはわかりません。

更新 3: ちなみに Drupal 7 を使用しています。

4

3 に答える 3

1

ノード ビューをパネルでオーバーライドします。「タクソノミー ID 引数」を使用してビュー ブロックを作成します。デフォルトの引数オプションを PHP コードとして選択し、このコードを配置する必要があります。

$node = node_load(arg(1));
if($node) {
    foreach($node->taxonomy as $term) {
        $term = $term->tid;
        return $term;
    }   
}

パネル + ビュー マジックを使用してサイトを立ち上げました。 http://sgigulf.org/culture/synopsis-of-performers-showcased-by-sgi-gulf

于 2011-01-20T17:40:30.777 に答える
0

に変更すると、複数の用語を持つことができます

$node = node_load(arg(1));
if ($node) {
    $ret = array();
    foreach ($node->taxonomy as $term) {
        $ret[] =  $term->tid;
    }   
    return implode('+', $ret);
}
return '';

implode の「+」は OR です。AND が必要な場合は、代わりに「,」を使用します

于 2011-05-13T10:30:05.157 に答える
0

RelatedContent モジュールを見てください。以下のモジュールといくつかのチュートリアルへのリンク:

表示に問題があるとのことです。その場合、上記の手順のビューをブロックにして、ノード コンテンツの下の領域に表示します。ただし、コンテンツのすぐ下にテーマの領域があることを前提としています。

于 2011-01-20T18:16:27.520 に答える