--=REKLAMA=--

Ramka modułu/Własna ramka modułu

Z Joomla!WikiPL

Wersja Zwiastun (dyskusja | edycje) z dnia 01:14, 20 kwi 2009

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Aby zdefiniować własną ramkę modułu w swoim szablonie, musisz w katalogu swojego szablonu stworzyć plik nazwany modules.php. Na przykład może to być sciezka_do_Joomla/templates/nazwa_szablonu/html/modules.php.

W pliku tym definiujesz funkcję nazwaną modChrome_STYLE, gdzie 'STYLE' to nazwa twojej własnej ramki modułu. Funkcja będzie posiadać trzy argumenty $module, &$params, oraz &$attribs, jak widać:

<?php 
  function modChrome_STYLE( $module, &$params, &$attribs ) 
  {
    /* tutaj kod PHP generujący  wynikowy kod HTML modułu*/
  }
?>

Wewnątrz tej funkcji można zastosować każdą z dostępnych własności modułów (np. pola z tabeli jos_modules w bazie danych Joomla! na twoim serwerze) dla tego modułu, ale przede wszystkim będziesz potrzebować $module->content, $module->showtitle oraz $module->title. $module->showtitle jest zmienną typu Boolean, tak więc może być ustawiona true (gdy tytuł modułu będzie wyświetlany) albo false (kiedy nie będzie wyświetlany), $module->content oraz $module->title zwrócą główną treść modułu i odpowiednio tytuł modułu.

Ta funkcja jest zwykłą funkcją PHP i korzystamy w niej ze zwykłego kodu PHP. Jeden elementarny przykład może użyć instrukcji if do sprawdzenia wartości $module->showtitle oraz umieszczenie bądź nie - zależnie od wyniku - tytułu

<?php
  if ($module->showtitle) 
  {
    echo '<h2>' .$module->title .'</h2>';
  }
?>

Dostęp do parametrów modułu uzyskiwany jest za pomocą obiektu $params. Na przykład, możliwe jest, aby przypisać Przyrostek klas modułu w edytorze własności modułu na zapleczu Twojej witryny Joomla!; to wartość ta jest przechowywana w parametrach modułu jako moduleclass_sfx. Aby stworzyć <div> z klasą określoną przez przyrostek klasy modułu, możesz użyć:

<div class="<?php echo $params->get( 'moduleclass_sfx' ); ?>">
  <!-- div contents -->
</div>

Dziękujemy za wkład

» Stefan Wajda [zwiastun],