Pożądana funkcjonalność
Załóżmy, że masz w ofercie pozycję menu, która wymaga od użytkownika, by się zalogował, np. "Wyślij artykuł". Chcesz, aby wszyscy użytkownicy widzieli odnośnik w menu, bez względu na to, czy są zalogowani.
Jeśli zalogowany użytkownik wybierze taką pozycję menu, przechodzi na odpowiednią stronę.
Natomiast jeśli pozycję wybierze użytkownik niezalogowany, to:Jeśli nie jest zarejestrowany, ma do wyboru opcję, by się zarejestrować albo przejść na wybraną stronę.
- wyświetla mu się strona logowania
- po pomyślnym zalogowaniu się, kontynuuje działanie na stronie z której został przekierowany.
Rozwiązanie
Oto, jak to osiągnąć w Joomla!.
- Stwórz nowe menu, który nazwij np. "Ukryte menu".
- NIE twórz dla tego menu modułu - nie będzie wyświetlane na żadnej stronie, więc moduł nie jest potrzebny.
- Dodaj w tym menu jakieś odnośniki, które będą udostępniały treści lub funkcje tylko dla zarejestrowanych i zalogowanych użytkowników, np. "Wyślij artykuł". Określ w szczegółach tych pozycji odpowiedni poziom dostępu, np. "Specjalny", albo "Zastrzeżony"
- Stwórz rzeczywiste menu (np. Menu główne) i odnośnik w menu, który będzie widoczny dla wszystkich użytkowników (np. "Wyślij artykuł")
- Wybierz dla tego odnośnika typ pozycji menu zwany Alias.
- W parametrze "Pozycja menu" wybierz odnośnik "Wyślij artykuł" z "Ukryte menu".
- Pozostaw dla tego odnośnika poziom dostępu Powszechny, aby udostępnic go wszystkim odwiedzającym.
Teraz, gdy jakiś internauta (niezalogowany użytkownik) wybierze z menu odnośnik "Wyślij artykuł", zostanie przekierowany na stronę logowania, a po pomyślnym zalogowaniu się, zostanie przeniesiony na pożądaną stronę ("Wyślij artykuł"). Jeśli jest zalogowany, zostanie od razu przeniesiony na pożądaną stronę.
- Utwórz moduł typu "mod_mainmenu" dla tego menu tak, jak tworzysz moduły dla innych menu.
- Jeśli chcesz dodać jakieś podmenu, upewnij się, że dodajesz pozycje podmenu w Menu główne, a nie w Menu ukryte.
Przykład
W moim przypadku, dodałem w menu następujące odnośniki:Chciałem, aby wszystkie te odnośniki były widoczne zawsze widoczne (także dla niezalogowanych użytkowników), ale równocześnie chciałem, aby odnośniki 3,4,5,6 i 7 udostępniały strony jedynie zalogowanym użytkownikom. Inaczej mówiąc, gdy ktoś niezalogowany klinie odnośnik 3/4/5/6/7, to zostanie skierowany na stronę z modułem logowania.
- START
- BLOG (IDOBlog)
- WIKI (Wiki)
- KATALOG (SOBI2)
- OGŁOSZENIA (ads)
- PYTANIA (FAQ, Sekcja artykułów)
- SKLEP (virtue mart)
- Napisz do nas (contacts)
Stworzyłem więc "ukryte menu" z odnośnikami dla pozycji 3-7 z dostępem zastrzeżonym. Następnie stworzyłem faktyczne menu, w którym - korzystając z pozycji typu Alias, utworzyłem łącza do odpowiednich pozycji w menu ukrytym.
O ile wiem, ten sposób może być zastosowany do wszystkich pozycji menu. Jeśli znasz lepszą albo alternatywną metodę, nie krępuj się - popraw lub uzupełnij tę stronę.