Drupalで「著者について」ビューブロックを作成しました。これは、現在のノードの作成者のuser_idにリンクされており、うまく機能します。
ただし、ビューを特定のコンテンツタイプに制限する方法を知りたいと思います。ブログだけで、ストーリーに表示したくありません。私は引数でそれをやろうとしましたが、今のところ運がありません。
誰かが私を助けることができますか?
Drupalで「著者について」ビューブロックを作成しました。これは、現在のノードの作成者のuser_idにリンクされており、うまく機能します。
ただし、ビューを特定のコンテンツタイプに制限する方法を知りたいと思います。ブログだけで、ストーリーに表示したくありません。私は引数でそれをやろうとしましたが、今のところ運がありません。
誰かが私を助けることができますか?
pathautoを使用して、タイプの各ノードに共通のURLプレフィックスを付けることをお勧めします(とにかく良いアイデアです)。これにより、単純なブロック可視パス制限を使用できます。たとえば、コンテンツタイプのパスパターンを「article / [title]」に設定してから、ブロックパスを「article/*」に設定します。
いいえ、ビューの組み込み引数バリデーターを使用できます。
元。ビューをユーザーのuid値にどのように制限しますか?」つまり、特定のビューは、そのコンテンツを所有するログインユーザーだけがどのように表示できるのでしょうか。
これがViews引数のPHPバリデーターコードです。
global $user; return $argument[0] == $user->uid;
ビューを作成し、ブロック構成ページに移動して、ブロックの可視性ルールにphpを使用するだけです。特定のコンテンツタイプでのみブロックを表示するには、次を使用します。
<?php
$match = FALSE;
$types = array('story' => 1, 'page' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
}
return $match;
?>
このコードは、drupal.orgの概要-可視性をブロックするためのアプローチから取得されます
より良い:
<?php
$match = FALSE;
$types = array('story' => 1, 'page' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load($nid);
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
}
return $match;
?>