today 10.02.2017

Czasami potrzeba zrobić coś niekonwencjonalnego na stronie i wtedy rodzi się problerm. W podanym przykładzie, postaram się rozwiązć problem ustawienia wyłacznie panelu logowania na stronie startowej.

Na początek wadaje się, że problem jest banalny, no bo przecież można w menu wybrać pozycję users / login form i sprawa załatwiona.

joomla login homepage

A jednak nie efektem tego będziemy mieli wszsytkie elementy z szablonu głównego. Można wyłączyć oczywiście moduły, tak aby nie pokazywały się na stronie głónej. W moim przypadku będzie to wyglądało tak:

disable modules

A więc na stronie startowej nie mam żadnego pokazanego modułu, jednak elementy takie jak: header, heading-content, oraz stopa w dalszym ciągu wyświetlają się na stronie. I żadnym sposobem nie ingerując w kod nie jesteśmy w stanie tego zmienić. Co zatem, jesli chcemy mieć wyłącznie panel logowania i nic pozatym?

Skrypt php (czy jest strona główna ?)

Można wykorzystać popularne zapytanie php, które sprawdza, czy jest to strona główna:

getMenu();
        $lang = JFactory::getLanguage();
        
        if ($menu->getActive() == $menu->getDefault($lang->getTag())) {
            echo 'To jest strona główna';
        }
        else {
            echo 'To nie jest strona główna';
        }
        ?>

A zatem co nam to daje?

A no możemy tak skonstruować kod, że w miejsce gdzie jest strona główna wstawiamy tylko polecenie wyświetlania contentu, a całą reszte wrzucamy do polecenie else a więc:


?php
	if ($menu->getActive() == $menu->getDefault($lang->getTag())) {
   ?>
        < jdoc:include type="component" />
     ?php  } ?>
Czy jest to wygodne ? To zależy. Ja wykorzystuje to polecenie wyłącznie przy drobnych koretktach i zmianach. Przy takiej zmianie polecam wykorzystać zarządzanie skórkami.

Wykorzystanie 2 lub więcej szablonów na stronie

Oryginalnie w najnowszej joomli mamy do wyboru 2 szablony (beez3 i protostar), a więc do tego typu rozwiązania w zupełności wystarczające. Na początek na pewno musimy jeden szablon zmodyfikować (modyfikacja szablonu joomli) i poświęcić go na nasz panel logowania.

Szablon ten będzie się skladał z poleceniem wyświetlania contentu:


kod HTML (np Bootstrap)
< jdoc:include type="component" />
kod HTML

Drugi szablon tworzymy i układamy pod docelowy wygląd naszej strony.

Jak już mamy stworzone struktury naszych szablonów przechodzimy do panelu administracyjnego joomli do sekcji menu. Tworzymy nowy element logowanie i przypisujemy go do templaty beez3

set menu position to template

Ostatnim elementem bęzdie ustawienie głównego szablonu na protostar

set default template

W tak ustawionej konfiguracji (modyfikacji kodu szablonów oraz ustawienie templaty głównej, oraz do pozycji logowania menu ustawienie templaty na podrzędną) mamy w wyłacznie panel logowania jako stronę startową!