誰かが未公開の製品の製品表示ページを開こうとすると、アクセス拒否403ページが表示されます。
メッセージを表示したい( "この製品は現在使用できません。他の製品を確認してください。")ではなく403ページを表示しています。
エラーページとしてビューを追加できます。
エラーページとして、ページ(適切なパスを含む)と添付ファイル付きのビューを追加します。それを製品の表示でフィルタリングし、コンテキストフィルターとしてnidを渡し、必要に応じてクリエイティブにします。添付ファイルには、利用できなくなった製品の詳細を表示できます。実際のページビューには、類似品を代替品として表示できます。コンテキストフィルターに見つからないのは、製品以外の一般的な403です。
次に、ビューのパスをadmin/config/system/site-information
の403エラーページ設定に追加します。
「 モジュールのアクセス許可をより詳細にする方法 」に関する質問への私の回答を見てください。これは(のみ) Rules モジュールを使用します。これには、含まれているルールの要約が含まれます。
これらのルール条件とアクションで使用されるURLを適応させることから始め、最初のルール条件(匿名ユーザーについて)を削除します。次に、表示されるメッセージを「」に変更します。この製品は現在利用できません。他の製品を確認してください。」。それで、あなたはあなたが探しているものに近いかもしれません。
注:「製品が公開されていない」ことを示すより適切なルール条件を使用して、このルール条件をさらに拡張できる場合があります(私にはわかりません) (まだ)どれか).
私があなただったら、カスタム403ページとして使用したサイトのカスタムモジュールにメニュー項目を作成します。 (これはサイト情報設定フォームで構成できます。)このメニュー項目は、要求パスを調べて、非公開の製品表示が原因でユーザーに403エラーが表示されているかどうかを判断し、製品固有を返します。それに基づいたメッセージ。それ以外の場合は、標準テキスト(またはログインへのリダイレクト)にフォールバックします。
これは、遅いモジュール、不要なクエリ/レンダリング時間などを必要とせずにリクエストを管理するための最も煩わしくない方法です。