Selektywne ładowanie komponentów w Joomla 1.5

seohost

Większość serwisów składa się z wielu stron na których mogą być prezentowane dane różnego typu. Najczęściej nie wiemy jak zareaguje użytkownik wchodząc na naszą stronę – które ze wspomnianych stron odwiedzi. W zależności od typu zawartości możemy chcieć ładować różne dodatkowe elementy – arkusze stylów css (np. do forum, galerii, katalogu) czy też skrypty. Aby uniknąć robienia tego zawsze możemy sprawdzać typ użytkownika (zarejestrowany lub gość) oraz np. wyświetlany komponent. W tym celu w pliku index.php templatki umieszczamy warunki:

Warunek sprawdzający ładowany komponent (przykład z ładowaniem pliku css komponentu forum ccboard)

<?php
if ((JRequest::getVar('option')=='com_ccboard'))
echo('baseurl. '/templates/astrosun/css/ccboard.css" type="text/css" />')
?>

Warunek sprawdzający typ użytkownika (w przykładzie wyłączone jest ładowanie wszystkich skryptów domyślnie dodawanych przez Joomla, a wykorzystywany tylko przez niektóre komponenty oraz w panelu administratora)

<?php
$user =& JFactory::getUser();
$headerstuff = $this->getHeadData();
$headerstuff['scripts'] = array();   
if (($user->get('guest') == 1)) {
   $this->setHeadData($headerstuff);
}
if (($user->usertype == 'Registered')) {
   $this->setHeadData($headerstuff);
}
?>