PDA

Zobacz pełną wersję : przekierowanie dla zalogowanych



rado85
10-06-2013, 15:31
Witam,
mam stronę ziemialoduiognia.pl no i tam jest tylko logowanie a po zalogowaniu moduł logowania joomla odsyła na index.php/aktualnosci no ale użytkownik może być zalogowany i wrócić na tą stronę bo np. wciśnie zapamiętaj mnie i wpisując adres ziemialoduiognia.pl będzie miał pierwsza stronę (a bo po zalogowaniu jest inny szablon ładowany) no i teraz pytanie:

Jak można zrobić taką sztuczkę polegajacą na tym że zalogowany użytkownik będzie po wpisaniu ziemieloduiognia.pl odsyłany na tą podstronę po zalogowaniu ?

czy jest jakiś skrypt, może plugin, moduł który to załatwi ?

pozdrawiam.,

KES
10-06-2013, 16:14
w module od logowania może zmienić pole return, tylko należy pamiętać że musi być zakodowane base_64


$return = base64_encode(JURI::current());

rado85
12-06-2013, 09:06
Witaj,
dzięki za odpowiedź, u mnie nie działa, to znaczy jak wrzucę to co napisałeś w plik mod_login.php i zastąpię:


$return = modLoginHelper::getReturnURL($params, $type);

tylko pewnie muszę coś zrobicz tym base

pawelSafiStudio
12-06-2013, 13:25
A to są dwa różne szablony Joomla! czy tylko dwa różne style ?
Jeśli dwa różne szablony J! to najprościej w pliku index.php szablonu dla niezalogowanych skonstruuj sobie przekierowanie w pierwszych linijkach.
Coś na zasadzie:

$user = JFactory::getUser();
if($user->id){
// set redirect here
}
Wówczas będziesz miał pewność, że jak ktoś zalogowany trafi przypadkiem na szablon dla niezalogowanych to od razu zostanie przekierowany w dobre miejsce :)

rado85
12-06-2013, 14:19
Dzięki Paweł!
mam 2 szablony. stronę główną i podstronę po zalogowaniu
http://ziemialoduiognia.pl/index.php/aktualnosci - po zalogowaniu i teraz jak wrzuciłem ten kod wyświetla się dla niezalogowanych błąd 404. - jest nawet spoko, ale fajnie by było gdyby przekierowywało na główną stronę dla niezalogowanych,

ponadto nadal gdy zalogowany użytkownik trafi na główną stronę to nie przenosi go do tej podstrony dla zalogowanych.

dla testów zrobiłem usera:
joomla/joomla

pawelSafiStudio
12-06-2013, 17:22
@rado85, a możesz podesłać dokładny fragment kodu, który dodałeś ?

rado85
12-06-2013, 18:02
w pliku index.php od templatki strony głównej dla niezalogowanych jest taki kod:

<?phpdefined( '_JEXEC' ) or die;$user = JFactory::getUser();if($user->id){// set redirect here} ?><!doctype html><html lang="pl"><head><jdoc:include type="head" /> <link href="templates/<?php echo $this->template ?>/css/template.css" rel="stylesheet" type="text/css" media="all" /><!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--></head>
pewnie mysłałeś że znam php i coś było proste do domyślenia się a ja nie znam jednak php. muszę siepodszkolic bo jużboli mnie brak znajomości tego języka :(

pawelSafiStudio
12-06-2013, 18:13
No nie, to jest źle :) Widzisz ja Ci dałem tylko podpowiedź, a Ty to po prostu skopiowałeś. Poczytaj jak robić przekierowania w J!. Poza tym skopiowałeś komentarz tak, że zawarłeś w nim zamknięcie klauzuli if :)

rado85
12-06-2013, 18:39
znalazłem tylko to:
http://forum.joomla.pl/archive/index.php/t-70760.html

ale nie skummam jak to wdrożyć, probowałem to wdrożyć ale jest ten błąd 404

KES
12-06-2013, 22:36
@pawelSafiStudio przypuszczam że miał na myśli abyś poczytał o metodzie JFactory::getApplication()->redirect()

pawelSafiStudio
13-06-2013, 07:17
@KES zgadza się :)
@rado85, zapoznaj się z tą metodą, napisz kawałek kodu, przetestuj i jeśli nie hula pokaż co napisałeś. Na pewno zostaniesz naprowadzony przez kogoś z forumowiczów :) Ja niestety nie należę do osób, które robią coś za kogoś. Ale naprowadzić i podpowiedzieć bardzo chętnie :)

rado85
18-06-2013, 21:18
przypuszczam że chodzi o:
http://vinayp.com.np/how-to-redirect-a-page-on-joomla-1-6/

wiec moje pytanie to przede wszystkim gdzie ten kod umieścić? w plikach od modułu czy szablonu?

pawelSafiStudio
20-06-2013, 07:25
Tak jak pisałem w pierwszych postach. Wrzuć to przekierowanie do szablonu dla niezalogowanych. Czyli sprawdzasz tam czy ktoś jest zalogowany i jeśli tak to robisz przekierowanie na podstronę z szablonem dla zalogowanych. Dla bezpieczeństwa możesz wrzucić podobny kod w drugą stronę dla szablonu zalogowanych.