--=REKLAMA=--
W Joomla 1.5 pozycja menu generująca Układ sekcji artykułów tworzy listę kategorii w sekcji. Kiedy przechodzisz do kategorii, wywoływany jest układ Lista artykułów w kategorii. W niektórych sytuacjach zamiast układu listy artykułów w kategorii bardziej pożądanym jest układ przeglądu artykułów w kategorii. Ten artykuł pokazuje kilka opcji, umożliwiających stworzenie układu sekcji artykułów, który prowadzi do przeglądów artykułów w kategoriach.
Rozpatrzymy problem w trzech częściach.
W pierwszej części zobaczymy jak to zrobić posługując się techniką nadpisania szablonu rhuk_milkway. To jest najłatwiejsze rozwiązanie, ale wyeliminuje ono w ogóle możliwość zastosowania układu "Lista artykułów w kategorii".
W części drugiej zobaczymy, jak utworzyć kopię szablonu rhuk_milkyway, aby na innych stronach witryny nadal możliwe było stosowanie standardowego układu Lista artykułów w kategorii.
W trzeciej części dodamy dodatkowy parametr do opcji pozycji menu typu Układ sekcji artykułów, który pozwoli konfigurować, czy chcemy wyświetlać artykuły w kategorii w postaci listy artykułow w kategorii, czy w postaci przeglądu artykułów.
Wyczerpujące objaśnienie techniki nadpisywania szablonu znajdziesz w artykule Zrozumieć koncepcję podmiany. Tu przedstawiamy kolejne kroki naszego przykładu:
Gdy teraz na stronie w układzie Lista kategorii w sekcji naciśniesz odnośnik do kategorii artykułów, na wywołanej stronie zostanie wyświetlony przegląd artykułów w kategorii zamiast listy artykułow w kategorii. Wprawdzie nie możesz skonfigurować bezpośrednio parametrów dla uzyskanego układu, ale dowiesz się tego z artykułu Jak konfigurować układ Lista artykułów w kategorii wywoływany z układu Sekcja artykułów. W naszym przypadku utworzyłbyś ukryte pozycje menu typu Przegląd artykułów w kategorii, aby dopasować ustawienia parametrów dla przeglądu otwartego na stronie układu Lista kategorii w sekcji
Jak wspomniałem wcześniej, nadpisanie szablonu według recepty powyżej powoduje istotny skutek uboczny. Tracimy możliwość skorzystania z listy kategorii artykułów w innych miejscach witryny. Jeśli nie potrzebujesz takiego układu, wówczas powyższa metoda jest idealna. Ale jeśli chcesz nadal dysponować możliwością stosowania układu "Lista artykułów w kategorii", musisz posłużyć się nieco bardziej złożoną metodą, omówioną w tej części.
Jedną z istotnych właściwości techniki nadpisywania szablonów jest to, że przynosi ona efekt tylko w konkretnym szablonie. To powoduje, że technika jest tak elastyczna. W naszym przypadku możemy stworzyć drugi szablon, który nadpisuje układ Listy artykułów w kategorii układem Przegląd kategorii. W ten sposób nadal będziemy mieć oryginalny szablon, a pozycje menu używające oryginalnego szablonu pozostaną nienaruszone przez naszą podmianę. Nadal więc będziemy dysponować układem Lista artykułów w kategorii, używając oryginalnego szablonu.
Oto kolejne kroki::
W tym momencie pozycja menu Lista kategorii w sekcji prowadzi do przeglądów artykułów w kategoriach, ale masz nadal możliwość stosowania układu Lista artykułów w kategorii dla innych pozycji menu na witrynie. Zwróć wszakże uwagę, że nie będziesz w stanie zastosować Listy artykułów w kategorii w przypadku układu Lista sekcji, ale możesz stosować listę artykułów w kategorii dla innych kategorii.
To rozwiązanie jest "hakiem", czyli że modyfikowane są rdzenne pliki Joomla! Podczas aktualizacji Joomla! może nastąpić nadpisanie zmodyfikowanego pliku, a tym samym utrata zmian. Jeśli zastosujesz ten sposób, zachowaj kopię zapasową zmodyfikowanego pliku albo kopię zmodyfikowanego kodu. Skorzystasz z niej, gdy przypadkiem zmodyfikowane pliki zostaną nadpisane podczas aktualizacji.
Ubocznych skutków obu poprzednich metod możesz uniknąć, edytując kod php i parametry Twojego układu. W efekcie uzyskasz schludniejszą, bardziej intuicyjną budowę, ale w przypadku aktualizacji Joomla! może być konieczne ponowne poprawianie zmienionych plików.
Dodaj parametr w pliku /components/com_content/views/section/tmpl/default.xml (za parametrem 'spacer' jest odpowiednie miejsce)
<param name="category_layout" type="list" default="list" label="Category Layout" description="PARAMSCATEGORYLAYOUT"> <option value="default">Default</option> <option value="blog">Blog Layout</option> </param>
Popraw kod PHP w pliku /components/com_content/views/section/view.html.php. Znajdź kod:
$category->link = JRoute::_(ContentHelperRoute::getCategoryRoute($category->slug, $category->section).'&layout=default');
i zastap go kodem:
$layout = $params->get('category_layout') ; $category->link = JRoute::_(ContentHelperRoute::getCategoryRoute($category->slug, $category->section).'&layout='.$layout);
W efekcie tej modyfikacji w parametrach pozycji menu Układ sekcji artykułów będziesz dysponować do prezentacji kategorii wyborem między domyślnym układem listy artykułów albo przeglądu artykułów tylko w konkretnych sekcjach.