PDA

Zobacz pełną wersję : Automatyczne przekierowanie na stronę logowania



zwiastun
30-03-2009, 21:39
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:
wyświetla mu się strona logowania
po pomyślnym zalogowaniu się, kontynuuje działanie na stronie z której został przekierowany.Jeśli nie jest zarejestrowany, ma do wyboru opcję, by się zarejestrować albo przejść na wybraną stronę.
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.
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.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ę.
Przykład

W moim przypadku, dodałem w menu następujące odnośniki:
START
BLOG (IDOBlog)
WIKI (Wiki)
KATALOG (SOBI2)
OGŁOSZENIA (ads)
PYTANIA (FAQ, Sekcja artykułów)
SKLEP (virtue mart)
Napisz do nas (contacts)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.
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ę.

kulcz
01-10-2009, 10:18
Dziękuje Zwiastunowi za podanie sposobu automatycznego przekierowanie na stronę, który funkcjonuje bardzo dobrze.
Mam prośbę do Zwiastuna o podanie sposobu usunięcia napisów Zaloguj (http://www.szachista.org/1/1.gif)gdy wyświetla się strona logowania ponieważ się dublują.

LOCOSP
03-12-2009, 18:58
mam problem który jest bardzo związany z tematem tego postu ale jakby z tej nie pożądanej strony, dzisiaj trochę pracowałem przy stronie ale niczego związanego z tą sprawą nie ruszałem, mój problem polega na tym że wszystkie napisane przeze mnie lub użytkowników artykuły są powszechnie dostępne i takie maja być a jak klikam w odnośnik do całego artykułu joomla prosi o zalogowanie się z informacją, że jak chcę zobaczyć zawartość tej strony muszę być zalogowany. co to może być i jak to wyeliminować?

dzięki, pozdrawiam

wariat777
21-02-2010, 17:57
Witam. Miałem ten problem równiez ale skorzystałem z metody tutaj opisanej, jednak mam dodatkowe pytanie.

Po zastosowaniu przekierowania odsyła nas do formularza logowania, jednak formularza tego nie da się edytować tak samo jak tworząc nową pozycję menu

Czyli jak tworzymy normalnie nową pozycję menu "zaloguj" mamy możliwość wyboru wyświetlanych elementów wyświetlanych w formularzu logowania, jednak gdy tworzymy alias nie ma takiej możliwości.

Chodzi mi tutaj o pozbycie się tej paskudnej grafiki kłódki z formularza logowania wywołanego przez kliknięcie w alias - być może są jakieś globalne ustawienia dla formularza które nie wiem gdzie są ?.

Gdzie w takim razie odnajdę CSS bądź ustawienia wewnątrz joomli dotyczące pojawiającego się formularza następującego po uzyskanym przez nas "wymuszonym logowaniu" ?

antek
19-03-2010, 23:41
Gdzie należy zmienić link do logowania, aby po zastosowaniu tej metody zadziałał moduł logowanie CB a nie standardowy? Szukam i tak naprawdę to nie wiem, gdzie mam szukać. Zwykle takie linki zmienia się w konfiguracji konkretnego komponentu (np. forum), a tutaj?

dzięki z góry za odpowiedź