Antworten:
Eine Seite mit benutzerdefiniertem Zugriff verweigert kann unter / admin / config / system / site-information definiert werden. Beispielsweise wird eine häufige 404-Fehlerseite vom Search404- Modul bereitgestellt .
Sie müssen lediglich Ihre eigene Seite definieren, möglicherweise mit einem Teaser von der angeforderten Seite, und den Benutzer darüber informieren, dass für den Zugriff auf den gesamten Inhalt eine Anmeldung erforderlich ist.
Dies erfordert wahrscheinlich, dass Sie PHP-Code in den Seitenkörper einfügen, oder Sie verwenden das Search404-Modul als Grundlage für die Entwicklung Ihres eigenen Moduls, um dies zu handhaben.
Edit: Je mehr ich darüber nachdenke, desto interessanter wird die Frage. Ich denke, es könnte ein Fall für eine 'View Teaser'-Erlaubnis zusätzlich zu' View public content 'gemacht werden. Mit anderen Worten, die Seite könnte für alle Benutzer verfügbar sein, aber der Teaser würde anstelle des vollständigen Inhalts angezeigt, und es könnte eine Meldung angezeigt werden, die angibt, dass der Benutzer angemeldet sein musste, um den vollständigen Inhalt anzuzeigen, ähnlich wie dies für vorgesehen ist Kommentare jetzt. Vielleicht eine Idee für ein beigesteuertes Modell (konnte keine auf DO finden).
Ich denke, Sie können Seite - 403.tpl.php und Seite - 404.tpl.php und Code in template.php über verwenden
function THEMENAME_preprocess_page(&$variables) {
$status = drupal_get_http_header("status");
if($status == '403 Forbidden') {
$variables['theme_hook_suggestions'][] = 'page__403';
}
if($status == '404 Not Found') {
$variables['theme_hook_suggestions'][] = 'page__404';
}
}
Ich verwende hierfür das benutzerdefinierte Fehlermodul .
Um nach einem 403 zur ursprünglich angeforderten Seite umzuleiten, habe ich diesen Patch erstellt .
Hier sind zwei Beispiele für meine Verwendung des Moduls: