[Intum Pomoc](https://intum.pl/pomoc.md) / [CMS](https://intum.pl/pomoc/cms.md)

# [Szablon witryny](https://intum.pl/pomoc/cms/cms-szablon-witryny.md)

Szablon to rama, w którą wchodzi każda strona witryny: nagłówek, menu, stopka, style. Strona
dostarcza tylko środek. Dzięki temu zmiana menu albo stopki to jedna edycja, nie poprawianie
każdej strony z osobna. Szablon może być gotowym układem systemowym albo własnym HTML-em.

> [!PATH]
> [CMS → Szablony](app:/cms/layouts)

## 1. Wybór szablonu {#wybor-szablonu}

Szablon wybiera się w formatce witryny (albo pojedynczej strony), w polu **Szablon** - z listy
własnych szablonów konta albo gotowych **Szablonów systemowych**. Wybór, podgląd, dostosowanie
gotowego szablonu do własnej kopii i pisanie własnego HTML-a od zera opisuje
[Szablony](cms/szablony-cms-lista).

Szablon witryny obowiązuje wszystkie jej strony. Pojedyncza strona może wskazać inny w swoim
polu **Szablon** - tak robi się np. stronę startową z innym układem niż podstrony.

## 2. Zmienne w szablonie {#zmienne-w-szablonie}

Poza wymaganym `{{ content }}` szablon ma dostęp do danych bieżącej strony i witryny oraz do
pętli budującej menu z listy stron oznaczonych **W menu**. Pełną listę dostępnych zmiennych
i sposób wstawienia menu przyciskiem nad edytorem opisuje
[Edytor szablonu](cms/edytor-szablonu-cms#zmienne).

## 3. Miejsca na paragrafy (boxy) {#boxy}

Box to miejsce w szablonie, w które redaktor wkłada paragrafy klikaniem na stronie. Box
w szablonie jest na każdej stronie witryny, więc naturalnie robi się nim stopkę, baner albo
pasek boczny:

```
<footer>
  <cms type="box" id="stopka" scope="site"></cms>
</footer>
```

`scope="site"` znaczy, że paragrafy w tym boxie są wspólne - jeden wpis widać na wszystkich
stronach. Bez tego dopisku każda strona ma w boxie własne paragrafy (przydatne np. na pasek
boczny inny na każdej podstronie). Sposób wypełniania boxa i porównanie z polami opisuje
[Edycja wprost na stronie](cms/cms-edycja-na-stronie).

## 4. Pola szablonu {#pola-szablonu}

Hasło w nagłówku, telefon w stopce, podpis - napisy, które mają być na każdej stronie
i dać się zmienić w jednym miejscu, wpisuje się w szablonie w klamrach:

```
<p class="claim">{{ Rozwiązania internetowe dla firm }}</p>
<p class="phone">{{ +48 600 000 000 }}</p>
```

Po zapisie szablonu tekst staje się polem z przedrostkiem `layout.`
(`{{ layout.rozwiazania_internetowe_dla_firm }}`), a jego wartość ląduje w sekcji **Pola
dodatkowe** formatki szablonu (z podglądu witryny prowadzi do niej **Ustawienia szablonu** na
pasku administratora). Zmienia się ją albo tam, albo - szybciej - klikając w ten napis na
dowolnej stronie w trybie edycji ([Edycja na stronie](cms/cms-edycja-na-stronie)); zmiana wchodzi
od razu na wszystkich stronach z tym szablonem. Jak dokładnie powstaje klucz pola opisuje
[Edytor szablonu](cms/edytor-szablonu-cms#pola-szablonu).
Na witrynie wielojęzycznej pola szablonu mają osobne wartości na każdy język
([Witryna w kilku językach](cms/cms-witryna-w-kilku-jezykach)).

## 5. Obrazki, style, skrypty {#pliki-w-szablonie}

Pliki wgrywa się w [CMS → Pliki](app:/cms/assets), z podziałem na foldery. Każdy plik ma
publiczny adres do skopiowania z listy - wklejasz go w szablonie tak, jak każdy inny adres:

```
<link rel="stylesheet" href="https://.../styles.css">
<img src="https://.../logo.png" alt="Logo">
```

Podmiana pliku o tej samej nazwie w tym samym folderze nie wymaga zmian w szablonie.

## 6. Podgląd szablonu {#podglad-szablonu}

Przycisk **Podgląd** przy szablonie pokazuje go na treści prawdziwej strony, która z niego
korzysta, albo - gdy żadna jeszcze nie korzysta - na **Przykładowej zawartości**. Szczegóły
opisuje [Edytor szablonu](cms/edytor-szablonu-cms#podglad).