it-swarm.com.de

Menüelemente mit beschränktem Zugriff auf anonyme Benutzer anzeigen

Ich habe eine Website, die das Modul Privat verwendet, um den Zugriff auf den Inhalt festzulegen, und natürlich haben einige meiner Seiten Menüelemente. Wenn ich nun eine Seite als privat einstelle, können nur Benutzer mit der entsprechenden Berechtigung das sehen, was großartig ist und was ich wollte.

Ich habe jedoch ein Problem mit den Menüelementen. Sie verschwinden, wenn der ihnen zugewiesene Inhalt nicht öffentlich ist (dh die ihnen zugewiesene Seite ist privat). Dies ist in Ordnung, aber ich möchte diese Elemente weiterhin anzeigen können Wenn der Benutzer in der Navigation auf sie klickt, werden sie zur Anmeldeseite weitergeleitet und aufgefordert, ihre Daten einzugeben, um diese bestimmte Seite anzuzeigen.

Grundsätzlich möchte ich das Verhalten der Menüelemente so ändern, dass sie für anonyme und registrierte Mitglieder der Website immer sichtbar sind. Wenn Sie jedoch darauf klicken, können Sie entweder die Seite sehen (wenn Sie angemeldet sind in) oder auf die Anmeldeseite umgeleitet werden (falls anonym)

Ich habe diese Lösung gefunden, was nicht die beste für mich ist, da ich viele solcher Seiten habe, also suche ich nach einem besseren Ansatz. Ich habe sogar versucht Menüelement Sichtbarkeit Modul, aber das hat auch nicht geholfen!

Wie erreiche ich das bitte?

Luca

9
Luca

Ihr Problem ist ziemlich häufig.

Hier wird diskutiert, wie ein solcher Trick in Drupal 6 und 7 und 8: http://drupal.org/node/300607 implementiert wird

Drupal 6 (und 7) haben die Möglichkeit entfernt, Menüelemente anzuzeigen, auf die der Benutzer keinen Zugriff hat. In einigen Fällen ist es jedoch wünschenswert, einen Menüpunkt anzuzeigen, obwohl der Benutzer keinen Zugriff auf den Menüpunkt hat. Wenn Sie beispielsweise einen Authentifizierungsmechanismus verwenden, der versucht, eine Authentifizierung zu erhalten, wenn ein 403 angezeigt wird, möchten Sie den Menüpunkt weiterhin anzeigen, damit Benutzer die Möglichkeit haben, Anmeldeinformationen für die Anmeldung anzugeben.

Lösung für Drupal 7 finden Sie hier: http://drupal.org/node/300607#comment-4450062

Wenn Sie ein fertiges Modul bevorzugen, können Sie es hier herunterladen https://github.com/systemseed/always_visible

4
Eugene Fidelin

Ich hatte eine ähnliche Situation, in der Seiten im Menüsystem angezeigt werden mussten, der Inhalt jedoch nur für angemeldete Benutzer angezeigt werden sollte. Die endgültige Lösung war sehr einfach und funktioniert weiterhin.

Stattdessen prüft die Knotenvorlage beim Steuern des Inhaltszugriffs, ob der Benutzer angemeldet ist. In diesem Fall wird der Inhalt angezeigt. Wenn nicht, wird Text mit Links zum Anmelden oder Registrieren angezeigt.

Sie werden nicht automatisch umgeleitet. Wenn dies kritisch ist, ist dies nicht die Lösung.

Der Code auf den Punkt gebracht:

<?php  
global $user;       
if ( $user->uid ) :
print render($content);
// or in some situations, display a view;
else : 
print 'Please <a href="/user/login">log in</a> or <a href="/user/register">register</a> etc etc.'
endif; 
?>
1
keva