回答:
コンテンツアクセスモジュールを試して、コンテンツへのアクセスをvideo
個別に禁止します(または、必要に応じてアクセスを設定することもできますroles
)
このモジュールを使用すると、ロールおよび作成者ごとにコンテンツタイプの権限を管理できます。これにより、各コンテンツタイプのカスタム表示、編集、および削除権限を指定できます。オプションで、コンテンツごとのアクセス設定を有効にして、各コンテンツノードのアクセスをカスタマイズできます。
また、ノードビュー権限モジュールを使用することもできますが、を使用することをお勧めしますContent access module
。
(将来のためにdrupalで作業したい場合は、この便利なモジュールに参加することをお勧めします)
1)コンテンツタイプにブール値フィールドを作成します。
2)値がtrueとして選択されている場合、一意のクラスがそのビデオフィールドに追加されます。値がfalseとして選択されている場合、クラスはそのビデオフィールドに追加されません。
3)クラスが存在しないビデオを非表示にするCSSを記述します。
ルールモジュールを使用すると、次のようなルールを実装できます。
{ "rules_disallow_accesss_to_selected_urls" : {
"LABEL" : "Disallow access to selected URLs",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "init" : [] },
"IF" : [
{ "text_matches" : {
"text" : [ "site:current-page:url" ],
"match" : "content\/video-1",
"operation" : "regex"
}
}
],
"DO" : [
{ "drupal_message" : {
"message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
"type" : "error"
}
},
{ "redirect" : { "url" : "no_access" } }
]
}
}
相対パスにアクセスしようとすると、path content/video-1
を使用してページにリダイレクトされ、no_access
関連するエラーメッセージが表示されます(このパスを独自の規則に合わせて変更し、表示されるメッセージを確認してください)。
上記のルールcontent/video-1
は、(質問のように)相対パスへのアクセスのみを制限します。ルールを同様のURLに拡張する場合は、などのパス、またはパスの命名規則に適合するバリエーションに変更 content\/video-1
しcontent\/video-\\d+$
ます。
上記のルールは、(まだ)選択されたロールを持つユーザーにのみルールアクションを適用することを考慮していません。ただし、Rulesモジュールに少し慣れている人にとっては、これは簡単に追加できる「条件」です。例:編集者、管理者などの役割を持つユーザーのルールアクションをスキップします。これは、ルールを追加することで実行できます。 「ユーザーに管理者(または編集者)の役割がない」などの条件。そうすれば、そうした種類の特別なユーザーは、とにかくそのようなノードを表示できます(そのような特別な条件がないと、そのようなノードはもう表示できません...)。
独自のサイトでこのルールを試すには、上記のルールコード全体をコピーして、「インポート」機能で作成した独自のサイトの新しいルールに貼り付けます(ルールUIが有効になっている場合に使用可能)。次に、さらに編集/調整して、自分の環境に合わせます(たとえば、「Sorry、...」メッセージが表示されます)。
他の回答の1つに、これを含むコメントを追加しました。
...場合によってはホームページに、他の場合は404にリダイレクトしたかったので、より適切に制御した...
それもあなたがやりたいことなら、条件付きルールモジュールも追加することで、上記のルールアクションをさらに絞り込むことができます。これで、「ケース」ごとに、リダイレクト先の適切なURLを指定できます。ルールアクション内でこのモジュールを使用する方法の図については、「リストボックスの値に応じて一部のフィールドの値を設定する方法」に対する私の回答を参照してください。