Mostra voci di menu con accesso limitato agli utenti anonimi


9

Ho un sito Web che utilizza il modulo privato per impostare l'accesso al contenuto e, naturalmente, alcune delle mie pagine hanno voci di menu. Ora, se imposto una pagina come privata, solo gli utenti con l'autorizzazione adeguata potrebbero vederlo, il che è fantastico e quello che volevo.

Ma sto riscontrando un po 'di problemi con le voci di menu, scompaiono se il contenuto assegnato a loro non è pubblico (cioè la pagina loro assegnata è Privata), va bene ma vorrei poter mostrare ancora quelle voci nella navigazione, quindi se l'utente fa clic su di essi, li porterà alla pagina di accesso chiedendo loro di inserire i propri dettagli per vedere quella particolare pagina.

Quindi sostanzialmente vorrei cambiare il comportamento delle voci di menu in modo che siano sempre visibili ai membri anonimi e registrati del sito Web ma quando fai clic su di essi, sarai in grado di vedere la pagina (se sei loggato in) o essere reindirizzato alla pagina di accesso (se anonimo)

Ho trovato questa soluzione che non è la migliore per me poiché ho molte pagine del genere, quindi sto cercando un approccio migliore. Ho anche provato il modulo di visibilità delle voci di menu, ma neanche questo mi ha aiutato!

Come posso ottenere questo per favore?

luca


Ho del codice su github.com/bbinkovitz/derpl/tree/master/foreshadow_menu che potrebbe esserti utile. Probabilmente dovrai cambiare alcuni valori o nominare i tuoi menu nello stesso modo in cui l'ho fatto io, ma potrebbe farti iniziare.
Bet

Risposte:


4

Il tuo problema è abbastanza comune

Ecco la discussione su come implementare questo trucco in Drupal 6, 7 e 8: http://drupal.org/node/300607

Drupal 6 (e 7) ha rimosso la possibilità di visualizzare voci di menu a cui l'utente non ha accesso. Tuttavia, in alcuni casi è preferibile mostrare una voce di menu anche se l'utente non ha accesso alla voce di menu. Ad esempio, se si utilizza un meccanismo di autenticazione che tenta di acquisire l'autenticazione quando viene visualizzato un 403, si desidera comunque visualizzare la voce di menu in modo che gli utenti abbiano la possibilità di fornire le credenziali per accedere.

La soluzione per Drupal 7 è disponibile qui: http://drupal.org/node/300607#comment-4450062

Se preferisci il modulo pronto, puoi scaricarlo qui https://github.com/systemseed/always_visible


Grazie mille. Vorrei che avessero questa opzione integrata Drupal
Luca

1

Ho avuto una situazione simile in cui le pagine dovevano apparire nel sistema di menu, ma il contenuto dovrebbe apparire solo agli utenti che hanno effettuato l'accesso. La soluzione finale è stata molto semplice e continua a funzionare.

Invece sul controllo dell'accesso al contenuto, il modello di nodo controlla se l'utente ha effettuato l'accesso. In tal caso, visualizza il contenuto. In caso contrario, viene visualizzato il testo con i collegamenti per accedere o registrarsi.

Non vengono reindirizzati automaticamente, quindi se questo è critico, questa non è la soluzione.

Il codice in breve:

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

Grazie, ma questa non sarebbe una buona soluzione per molti motivi, uno su cui sto usando un diverso tipo di sistema di template e su cui voglio avere accesso al contenuto, quindi quando elenco il contenuto, ad esempio in Views, rispetterebbe l'accesso.
Luca

Ah sì. Spero tu trovi una risposta. Sembra che sarebbe un caso d'uso piuttosto comune.
keva,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.