Moduł AccessLevel (dla Joomla!) – mimo swoich małych rozmiarów, 2 letniej historii nadal jest bardzo przydatnym rozszerzeniem typu ACL. Ma bowiem zastosowanie w sytuacji, kiedy chcemy pokazać dany moduł tylko ściśle określonej grupie lub wszystkim grupom poza jedną. Pozwala, aby dowolny moduł, w tym także menu było dostępne tylko dla niezalogowanych.
Ja go używam, kiedy klient prosi, aby w dziale np. Pobieralnia – była informacja, że pliki są dostępne tylko dla zalogowanych. Tym samym użytkownikom, którzy się zalogują już nie serwujemy tego komunikatu, czyż nie. Instalacja modułu (komercyjnego) jest prosta, wystarczy standardowy instalator, następnie sugeruje do pliku templateDetails.xml dopisać nową pozycje np. zasugerowaną przez moduł. Teraz wystarczy w parametrach zaznaczyć jakie grupy będą miały lub nie dostęp do danej pozycji modułu, a sam moduł AccessLevel publikujemy tam, gdzie nasz moduł z np. informacją ma się pojawiać. A naszemu docelowemu modułowi nadać pozycje identyczną, jak ta którą wpisaliśmy w XML oraz moduł AL.
Jasna sprawa, iż nie jest to „jedyne słuszne” rozszerzenie, które to potrafi. Dla zainteresowanych podam, iż również moduł MetaMod dysponuje podobną funkcjonalnością oraz kilkoma innymi, jednakże z tego co pamiętam, nie ma tam, aż tak bogatego rozgraniczenia grup użytkowników Joomla!.
Jeśli ktoś potrzebuje wyświetlić daną pozycję w szablonie tylko dla zalogowanych użytkowników (albo tylko niezalogowanych) może też użyć krótkiego kawałka kodu:
$user =& JFactory::getUser();
if($user->id)
{
// rzeczy dla zalogowanych
}
else
{
// rzeczy dla niezalogowanych
}
Więcej na ten temat tutaj: http://docs.joomla.org/Accessing_the_current_user_object
Przy okazji działa to zarówno w obrębie modułów jak i komponentów. Co mi parę razy pomogło.
Niestety dodatek został usunięty. Czy ktoś zna inny podobny lub rozwiązanie następującego problemu: potrzebuję aby jeden moduł był widoczny tylko dla niezalogowanych użytkowników?