Mam stronę internetową, która korzysta z modułu prywatnego w celu ustawienia dostępu do treści, i oczywiście niektóre z moich stron zawierają elementy menu. Teraz, jeśli ustawię stronę jako prywatną, tylko użytkownicy z odpowiednimi uprawnieniami mogą to zobaczyć, co jest świetne i czego chciałem.
Ale mam trochę problemów z elementami menu, znikają, jeśli przypisana do nich treść nie jest publiczna (tj. Strona przypisana do nich jest Prywatna), to jest OK, ale chciałbym móc nadal wyświetlać te elementy w nawigacji, więc jeśli użytkownik je kliknie, przeniesie go na stronę logowania z prośbą o podanie swoich danych, aby zobaczyć tę konkretną stronę.
Zasadniczo chciałbym zmienić zachowanie elementów menu w taki sposób, aby zawsze były widoczne dla anonimowych i zarejestrowanych członków strony internetowej, ale kiedy je klikniesz, będziesz mógł zobaczyć stronę (jeśli jesteś zalogowany) in) lub zostać przekierowanym na stronę logowania (jeśli jest anonimowa)
Znalazłem to rozwiązanie, które nie jest dla mnie najlepsze, ponieważ mam wiele takich stron, więc szukam lepszego podejścia. Próbowałem nawet modułu widoczności pozycji menu , ale to też nie pomogło!
Jak mogę to osiągnąć?
Luca
Odpowiedzi:
Twój problem jest dość powszechny.
Oto dyskusja, jak zaimplementować taką sztuczkę w Drupal 6 i 7 i 8: http://drupal.org/node/300607
Rozwiązanie dla Drupal 7 można znaleźć tutaj: http://drupal.org/node/300607#comment-4450062
Jeśli wolisz gotowy moduł - możesz go pobrać tutaj https://github.com/systemseed/always_visible
źródło
Miałem podobną sytuację, w której strony musiały pojawiać się w systemie menu, ale treść powinna być widoczna tylko dla zalogowanych użytkowników. Ostateczne rozwiązanie było bardzo proste i nadal działa.
Zamiast kontrolować dostęp do treści, szablon węzła sprawdza, czy użytkownik jest zalogowany. Jeśli tak, wyświetla treść. Jeśli nie, pojawi się tekst z linkami do logowania lub rejestracji.
Nie są one automatycznie przekierowywane, więc jeśli jest to krytyczne, to nie jest to rozwiązanie.
Kod w skrócie:
źródło