--=REKLAMA=--

Modyfikacja - Sekcja: Lista kategorii, Kategoria - Przegląd artykułów w Joomla 1.5

Z Joomla!WikiPL

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.

Nadpisanie szablonu rhuk_milkyway

Wyczerpujące objaśnienie techniki nadpisywania szablonu znajdziesz w artykule Zrozumieć koncepcję podmiany. Tu przedstawiamy kolejne kroki naszego przykładu:

  1. Stwórz w katalogu glowny_joomla/templates/rhuk_milkyway/html folder nazwny "com_content", a w nim folder nazwany "category". W efekcie będziesz mieć nowy katalog: glowny_joomla/templates/rhuk_milkyway/html/com_content/category.
  2. Do utworzonego przed chwilą katalogu skopiuj z katalogu glowny_joomla/components/com_content/views/category/tmpl następujące pliki:
    • blog.php
    • blog_item.php
    • blog_links.php.
  3. Przemianuj wszystkie trzy pliki, zastępując słowo "blog" na "default", według wzoru:
    • blog.php → default.php
    • blog_item.php → default_item.php
    • blog_links.php → default_links.php

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

Stworzenie kopii szablonu rhuk_milkyway

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::

  1. Stwórz kopię szablonu rhuk_milkyway według procedury naszkicowanej w artykule: Tworzenie kopii szablonu. Zwróć uwagę, że nie musisz wykonywać ostatnich trzech czynności (spakowanie plików i następne), jeśli nie chcesz przenosić szablonu na inną witrynę.
  2. Wykonaj kolejno instrukcje przedstawione w pierwszej części artykułu, aby stworzyć (uzyskać) szablon nadpisujący w skopiowanym przed chwilą szablonie (nazwanym np. "moj_szablon"). Jeśli w oryginalnym szablonie masz pliki nadpisujące, usuń je, aby przywrócić oryginalne działanie szablonu.
  3. Przejdź na zapleczu Joomla! na stronę Rozszerzenia → Szablony [Extensions → Template Manager]. Na liście zobaczysz nowo utworzony szablon.
  4. Kliknij nazwę szablonu, aby go dostosować. Następny ekran umożliwi przypisanie szablonu do pozycji menu.
  5. W sekcji Przypisz do pozycji menu [Menu Assignment] zaznacz pole Wybierz z listy, a następnie zaznacz pozycje menu, na których chcesz zastosować zmodyfikowany szablon (z przeglądem zamiast list artykułów).
    Zwróć uwagę: Jeśli masz pozycje menu otwierające Przegląd kategorii albo Listę kategorii artykułów z kategorii, które należą do sekcji w której podmieniasz sposób prezentacji, musisz również przypisać do tych pozycji nowy szablon> Dzieje się tak, ponieważ Joomla! używa identyfikatora pozycji menu (Itemid) dla listy lub przeglądu, gdy otwierane są ze strony Układ sekcji, a szablon zalezy od Itemid.

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.

Dodanie parametru do Widoku

Ikona informacja.png
 Informacja

 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.

Dziękujemy za wkład

» Stefan Wajda [zwiastun],