W skrócie sidebar.php zawiera informacje o sposobie wyświetlania domyślnego widgetu w sidebarze. Dostępne znaczniki:
_WIDGETSLUG_ - wstawi slug (skrót) widgetu
_WIDGETPLACE_ - wstawi nazwę sidebaru dla widgetu
_WIDGETTYTUL_ - wstawi tytuł widgetu
_WIDGETTRESC_ - wstawi treść widgetu
Dodatkowo można korzystać z instrukcji warunkowej html.
Oto przykładowy plik:
<div class="widget widget__WIDGETSLUG_ widget__WIDGETSLUG___WIDGETPLACE_"> <div class="list-group my-2"> <button type="button" class="list-group-item list-group-item-action list-group-item-success active"> _WIDGETTYTUL_ </button> _WIDGETTRESC_ </div> </div>
A to plik z instrukcją warunkową (ukrywanie nagłówka z tytułem w przypadku braku tytułu):
<div class="widget widget__WIDGETSLUG_ widget__WIDGETSLUG___WIDGETPLACE_"> <div class="list-group my-2"> [IF "_WIDGETTYTUL_" "NOT" ""] <button type="button" class="list-group-item list-group-item-action list-group-item-danger active"> _WIDGETTYTUL_ </button> [/IF] _WIDGETTRESC_ </div> </div>
Dla każdego widgetu można utworzyć osobny plik zarówno ze względu na jego nazwę jak i umiejscowienie. Daje to spore możliwości niestandarowych ustawień dla każdego widgetu.
Zasada tworzenia nazwy pliku jest bardzo prosta: sidebar_NAZWASIDEBAR_SLUGWIDGETU.php
gdzie:
_NAZWASIDEBAR - to nazwa danego sidebaru, nazwy sidebarów definiowane są w templatce (index.php) metodą $klasa→sidebar('dowolnanazwamiejsca'). Listę aktywnych nazw znajdziesz na liście widgetów. Możesz również utworzyć własne nazwy sidebarów, które będziesz mógł użyć w treści wpisów.
_SLUGWIDGETU - jest opcjonalną wartością. Slug danego widgetu znajdziesz na liście widgetów w swoim CMSie.
sidebar.php - to domyślny sidebar. Widget przyjmie jego formę, gdy nie zostanie dopasowany żaden plik wyższego poziomu.
sidebar_right.php - formatowanie widgetu znajdujące się w sidebarze o nazwie „right”. W szablonie index.php zostanie on zdefiniowany w następujący sposób: <?php $klasa→sidebar('right'); ?>
sidebar_right_tag_cloud.php - formatowanie tylko widgetów tagów (slug to tag_cloud) znajdujących się w sidebarze o nazwie „right”. Inne widgety w sidebarze o nazwie „right” przyjmą formę pliku sidebar_right.php, a jeśli plik sidebar_right.php nie istnieje, to przyjmą formę pliku sidebar.php
Przykład próby ustawienia formatowania dla widgetu custom_php w sidebarze o nazwie left.
Prawidłowo:
<div class="widget widget__WIDGETSLUG_ widget__WIDGETSLUG___WIDGETPLACE_">
Nieprawidłowo:
<div class="widget widget__custom_php_ widget__custom_php___Zobacz_">
W przykładzie mamy:
widget__custom_php_
czyli wprowadzana jest stała, która nie będzie zamieniona na nic innego, czyli klasa elementu będzie dokładnie taka jak w kodzie źródłowym, będzie to:
<div class="widget widget__custom_php_ widget__custom_php___Zobacz_">
Powyższe opcje np.
_WIDGETSLUG_
czy też
_WIDGETPLACE_
są potrzebne tylko wtedy, gdy na przykład chcemy różnie formatować konkretny widget (np. custom_php) za pomocą CSS (odwołując się do nazwy widgetu i/lub umiejscowienia).
Czyli wracając do początku, tego kodu nie należy zmieniać:
<div class="widget widget__WIDGETSLUG_ widget__WIDGETSLUG___WIDGETPLACE_"> <div class="list-group my-2"> <button type="button" class="list-group-item list-group-item-action list-group-item-success active"> _WIDGETTYTUL_ </button> _WIDGETTRESC_ </div> </div>
I teraz jeśli do sidebara o nazwie „left” wybierzemy na przykład widget „custom_php” (w menu przez panel CMSpodZaplecze), to wtedy główny div (czyli kontener) tego widgetu będzie miał taką klasę:
<div class="widget widget_custom_php widget_custom_php_left">
Dzięki temu możemy zróżnicować w swoim CSS wygląd dla tego widgetu (w tym przykładzie według widgetu i dodatkowo według konkretnego sidebara).
Powyższe to jedna z możliwości różnicowania sidebarów, bo można im nadać też całkiem inną postać (osobne pliki) tworząc dodatkowy plik o konstrukcji nazwy:
sidebar_NAZWASIDEBAR_SLUGWIDGETU.php
W naszym przykładzie będzie to:
sidebar_left_custom_php.php
W takim pliku można sobie już pozwolić na zupełnie dowolne formatowanie za pomocą klas, stylów, html, bo będzie się tyczyło tylko widgetów custom php, które zostaną umiejscowione w sidebarze o nazwie 'left', a więc nie potrzebujemy już dla identyfikacji żadnych zmiennych w pliku (odgórnie wiadomo, że ten plik tyczy się tego konkretnego widgetu i miejsca).
Podsumowując mamy dwie możliwości formatowania widgetów w sidebarach ze względu na widget i sidebar:
1. Korzystając ze zmiennych podstawianych pod:
_WIDGETSLUG_
i
_WIDGETPLACE_
Najlepsza opcja w tym przypadku to oczywiście przypisanie klas skonstruowanych na podstawie tych zmiennych. Tu klasa może wyglądać zupełnie dowolnie, wystarczy np:
<div class="_WIDGETSLUG__WIDGETPLACE_"> <div class="list-group my-2"> <button type="button" class="list-group-item list-group-item-action list-group-item-success active"> _WIDGETTYTUL_ </button> _WIDGETTRESC_ </div> </div>
Wtedy klasa w głównego diva będzie w naszym przykładzie:
<div class="custom_phpleft">
2. Korzystając z możliwości tworzenia dodatkowych plików. Wtedy można sobie pozwolić na dowolne nazywanie klas dla danego widgetu w danym miejscu.