+48 602 683 733 kontakt@studioalfa.pl

Joomla! sztuczki, triki i porady

Jesteś tutaj: Strona główna > Blog > Joomla! sztuczki, triki i porady > Jak zrobić w Joomla różne style artykułów zależne od kategorii

Jak zrobić w Joomla różne style artykułów zależne od kategorii

04.07.2010.

Różne style artykułów zależne od kategorii w Joomla 1.5Dziś w serwisie GoldenLine na grupie użytkowników systemu Joomla pojawiło się pytanie:

Czy jest możliwość aby artykuły pojawiające się na stronie głównej lub w blogu sekcji, wyświetlały się w odmiennych stylach zależnych od przypisanym im kategorii?

Tak, jest bardzo prosty sposób, żeby to osiągnąć. Dla przykładu serwis internetowy zbudowany na Joomla, w którym zastosowałem to rozwiązanie: http://www.zapytajpolozna.pl. Na stronie głównej widać wyraźnie listę artykułów. Każdy z tych artykułów posiada indywidualne kolory określające do której kategorii przynależy.

Żeby to osiągnąć, wystarczy zastosować poniższy kod:

  1. <?php echo $this->item->catid; ?>

w override szablonu Joomla (override to technika nadpisywania domyślnych szablonów w Joomla własnymi. Każdy, kto zajmuje się poważniej systemem Joomla, powinien wiedzieć o co chodzi).

Idźmy dalej, kod, który pomoże nam wyróżnić artykuły z poszczególnych kategorii, już znamy. Teraz gdzie go zastosować?
Przykładowo można dołożyć powyższy kod w pliku odpowiedzialnym za nadpisywanie strony głównej w Joomla (frontpage):

  1. /templates/templatka-joomla/html/com_content/frontpage/default_item.php

Można to zrobić poprzez umieszczenie zawartości pliku w dodatkowym kontenerze DIV:

  1. <div class="kategoria-<?php echo $this->item->catid; ?>"> zawartość pliku default_item.php </div>

Od tej pory każdy artykuł będzie posiadał dodatkową klasę CSS z przyrostkiem będącym ID kategorii, do której należy (.kategoria-ID). Po tej modyfikacji pozostanie nadanie naszym artykułom wyglądu w arkuszu CSS naszej templatki.

Rozwiązanie działa w Joomla! 1.5. 

Poniższy kod powinien działać również w Joomla! 2.5 i Joomla! 3.x:

  1. <?php echo $this->item->catid; ?>