2012-01-27 3 views
1

現在表示されているノードに存在するCCKフィールドの値に応じて、表示方法を異なるようにしたいとします。私はユーザーIDとノード参照フィールドに関連する多くの解決策を見つけましたが、このユースケースではうまくいかないようです。Drupal - ビューの引数の検証コードでif文としてCCK値を使用する

私は3つの添付ディスプレイを含むビューを持っています。 ; 2番目は結果のスライドショーを返します。 3番目はすべての結果のリストです。

これらの添付ファイルのいずれを表示するかを選択するには、field_content_ad_slideshowとfield_content_ad_showallの2つのフィールドがあります。どちらもyes | yesとno | Noに設定されています。つまり、チェックボックスです。選択されている場合は「はい」、選択されていない場合は「いいえ」です。

両方の値が「いいえ」の場合、添付ファイル1を表示します。 field_content_ad_slideshow = YES とアタッチメント3場合により、私は習慣に行く理由にならfield_content_ad_slideshow = NOおよびfield_content_ad_showall = YES (両方の値がYESであれば従って、アタッチメント2が表示される)

を表示するように表示する アタッチメント2、Iはビューフィルタを使用して各ディスプレイを制限することはできないので、引数でそれをしようとしています。私はデフォルトの引数型を 'Node ID from URL'に設定しようとしましたが、コードの検証に -

if (arg(0) == 'node' && is_numeric(arg(1))) {$node = node_load(arg(1));} 
if ($node->field_content_ad_slideshow[0]['value'] == 'no' && $node->field_content_ad_showall[0]['value'] == 'no') {return TRUE;} 
else {return FALSE;} 

これは動作しません。

私も

if (arg(0) == 'node' && is_numeric(arg(1))) { 
$node=node_load(arg(1)); 
$slideshow = $node->field_content_ad_slideshow[0]['value']; 
$showall = $node->field_content_ad_showall[0]['value']; 
$display = null; 

if($slideshow=='no' && $showall=='no') { 
$display == 'true'; 
} 

if($display) { 
$args[0] = (arg(1)); 
} else { 
$args[0] == ''; 
} 
return $args; 

どちらもこれらの作業に基本的な検証とデフォルトの引数の型にバリデータのコードを変更しようとしています。どのような助けも非常に感謝!

おかげ ロブ

答えて

0

$表示varはいつものように偽の検証だから==「真の」$ディスプレイとしてそれを持っています。

また、私はargsが文字列として返され、複数の引数がビューオプションの '+'記号を使って管理されていると考えました。しかし、これはドリューアップ6だった。

幸運!

関連する問題