2

ビューには、UID (ユーザー ID / 作成者) を参照する公開フィルターがありますが、このコンテンツ タイプに投稿したユーザーのみに制限する方法はありますか?

「コンテンツ: 作成者」関係を追加して、[適用] をクリックしてみました。正確な理由はわかりませんが、この時点まで関係に戻って、「ユーザー: 作成されたコンテンツ」(最初の関係に依存している必要がありますか?) などのその他のオプションを確認できませんでした。私もそれを選択し、次のように設定しました: 関係ステップ 1 これで、公開されたフィルターに移動して関係を選択することができました:

関係ステップ 2 しかし、これは機能しませんでした。公開されたフィルターは、すべての登録ユーザーを表示し続けます。

また、ユーザー参照フィールドを (このコンテンツ タイプに) 入れて、それをリレーションシップに添付しようとしましたが、何も表示できず、次の SQL 警告が表示されました。

SQLSTATE [42S22]: 列が見つかりません: 1054 不明な列 'field_data_field_hidden_​​name.uid' in 'on clause'

この作成者公開フィルターを、このコンテンツ タイプに投稿したユーザーのみに制限するにはどうすればよいですか?

4

2 に答える 2

0

あなたを助けるかもしれないいくつかのdrupalモジュールがあります。対応するノード参照など

ただし、phpコードに精通している場合は、データベースにクエリを実行して目的の結果(テーブルの列)を返すロジックを作成できます。コンテキストフィルターを作成してから、フィールドを選択します(どのフィールドでも機能するはずですが、いずれかのコンテンツタイプで何かを選択するのが最適です)。次に、それを編集します。フィルター値が使用できない場合->デフォルト値を指定します->PHPコード

$nid = arg(1);// current node id
$query = "SELECT <desired_field_column_name> FROM {<field_data_table_name>} c 
WHERE c.<column_that_is_same_as_nid> = :nid";                                             
$result = db_query($query, array(':nid' =>$nid));
$id = array();
while ($row = $result->fetch())
{
                array_push($id, $row->field_curator_target_id);//put each node id that's referenced in array
}

$separated = implode("+", $id); // separate them by + for AND , for OR
return $separated; //eg.32 + 30 would represent nodes that you want.
于 2012-06-22T16:03:09.923 に答える
0

リンクされたテーマには、Views Selective Filters (別名 "Views Selective Exposed Filters"、別名 views_filters_selective、別名 views_selective_filters) に関する回答があります。

このモジュールは、名前にサフィックス "(selective)" を持つフィルターを追加します。サフィックスなしのフィルターの代わりに必要なものを追加します。

于 2016-09-14T07:30:02.963 に答える