コンテキスト分類用語


6

コンテキストを設定しました:

Condition > taxonomy term > vocabulary.

Reaction > some blocks displayed somewhere

これは次のようなパスtaxonomy/term/term_idでは問題なく機能しますが、次のようなものでは機能しませんtaxonomy/term/term_id_1+term_id_2

何か案は?ありがとう


2
コンテキストフィルター付きのビューを使用できると思います。
ジャンティモン

これはビューとは関係ありません。のようなものを含むいくつかの静的ブロックをいくつかのページに表示したいのですがtaxonomy/term/term_id_1+term_id_2。これは、コンテキストモジュールのバグのようなものです
Marius Ilie

テストサイトでは、tero.local / dr72 / taxonomy / term / 20、およびtero.local / dr72 / taxonomy /であっても、tero.local / dr72 / taxonomy / term / 20 + 21のようなURLで404エラーが返されます。term / 21はエラーを返しません。それがあなたにとってうまくいかない理由かもしれませんか?
kiamlaluno

回答:


1

これはちょっとしたコードです。

 <?php
   check_vocabulary = FALSE;
     $path = drupal_get_path_alias($_GET['q']); 
     $pathnew = explode('/', $path);
     if ($pathnew[2]) {
        $vocabulary = explode('+', $pathnew[2]);
     }
    if ($vocabulary[0] == "your taxonomy") {
       check_vocabulary = TRUE;
    }
  return check_vocabulary;
?>

あなたはそれをタブの下のブロックに入れるべきですPage specificy visibility setting、クリックしてくださいShow if the following PHP code returns TRUE (PHP-mode, experts only).

今、それがあなたの設定と名前で機能するかどうかはわかりませんが、それが解決策の方法になるかもしれません。

 check_vocabulary = FALSE;

ご存知のように、システムはブロックを印刷するためにTRUEを返すことを求めているため、最初はfalseに設定しているため、印刷してから削除することはありません。

$path = drupal_get_path_alias($_GET['q']); 
$pathnew = explode('/', $path);

この部分では、パスをたどって分解し、次のような配列を取得します。

$pathnew[0]; Taxonomy
$pathnew[1]; Term
$pathnew[2]; Term_id_1+term_id_2

if ($pathnew[2]) {
    $vocabulary = explode('+', $pathnew[2]);
  }

まず$pathnew[2]存在を確認し、次にそれを分解してすべての語彙を取得します(必要な場合)。+で割るので、

$vocabulary[0]; Term_id_1
$vocabulary[1]; term_id_2

次に条件を作成します。

if ($vocabulary[0] == "your taxonomy") {
   check_vocabulary = TRUE;
}

あなたが欲しいものを比較することができます、それはほんの一例です。

check_vocabulary = TRUE;

これは、システムがブロックを印刷したいものです。

return check_vocabulary;

これは変数FALSEまたはTRUEを返します

動作するかどうか教えてください。


私はカスタムコードで自分でそれを行う方法を知っていますが、Contextモジュールでそれを行う必要があります。
Marius Ilie

0

条件を語彙ではなく用語に変更できませんか?そのようにそれはその語彙の任意の用語で機能しますか?

また、パスを条件として使用することもできます。

taxonomy/term/*
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.