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

# [Kategorie artykułów](https://intum.pl/pomoc/cms/cms-kategorie-i-adresy.md)

Kategoria porządkuje artykuły: mówi, na której liście wpis się pojawia, i - jeśli jej to nadasz -
dokleja swoją końcówkę do adresu wpisu. Ta strona pokazuje, jak z kilku kategorii i kilku stron
z listami złożyć blog z działami, i tłumaczy, skąd bierze się adres każdego wpisu.

> [!PATH]
> [CMS → Ustawienia → Kategorie](app:/cms/categories)

## Co ma kategoria {#co-ma-kategoria}

Na liście kategorii kliknij **Dodaj kategorię**. Pola:

- **Nazwa** - to, co czytelnik zobaczy w menu bloga i na chipach nad listą, np. „Porady",
- **Kod** - krótkie słowo bez spacji (`porady`); po nim strony z listą wybierają kategorie.
  Puste pole wypełni się z nazwy,
- **Segment adresu (path)** - opcjonalna końcówka adresu. Puste = wpisy z tej kategorii stoją
  wprost pod stroną z listą (`/blog/nazwa-wpisu`). Wpisane, np. `porady` = kategoria ma własną
  podstronę `/blog/porady` z samymi swoimi wpisami, a wpisy adres `/blog/porady/nazwa-wpisu`,
- **Priorytet** - liczba porządkująca kategorie (domyślnie 1, mniejsza = wcześniej, może być ułamkiem, przy remisie
  starsza kategoria pierwsza). Decyduje o kolejności w menu bloga i na chipach oraz o tym, która
  kategoria dodatkowa da segment adresu, gdy główna segmentu nie ma, a kilka dodatkowych ma,
- **Witryna** - kategoria należy do jednej witryny: jej strony ją listują i tylko jej stronę może
  wskazać jako kanoniczną. Przy jednej witrynie na koncie jest zawsze ona; przy kilku nowa kategoria
  dostaje witrynę, na której ostatnio zapisano artykuł (albo tę, w której właśnie pracujesz), i
  możesz ją zmienić. Starsze kategorie założone jeszcze bez witryny działają na każdej, ale przy
  pierwszej edycji poprosimy o wybór,
- **Strona kanoniczna** - pod którą stroną wpisy z tą kategorią główną mają swój właściwy adres.
  Na liście są tylko strony z wybranej wyżej witryny, które listują artykuły; po zmianie witryny
  lista przełącza się od razu. Zwykle zostaw puste: system bierze stronę, której lista wymienia tę
  kategorię, a gdy takiej nie ma - stronę ze wszystkimi kategoriami. Wypełnia się samo, gdy system
  założy `/blog`,
- **Opis** - tekst, który szablon może pokazać nad listą kategorii.

Na stronie kategorii widzisz, pod jakim adresem jest jej lista na witrynie, i wszystkie
jej artykuły - z zaznaczeniem, dla których jest kategorią **główną**.

Kategorii, która jest główną jakiegoś artykułu, nie da się usunąć - najpierw zmień tym wpisom
kategorię główną. Kategorię dodatkową usuniesz zawsze; wpisy zostają.

## Główna i dodatkowe {#glowna-i-dodatkowe}

Każdy artykuł ma co najwyżej jedną **Kategorię główną** i dowolnie wiele **Kategorii dodatkowych**.
Na listę wpis trafia przez każdą swoją kategorię: wpis z kategoriami „Aktualności" i „Porady" pokaże
się i na liście aktualności, i na liście porad. Wpis **bez żadnej kategorii** pokazuje tylko strona
z listą wszystkich artykułów; gdy witryna jej nie ma, podgląd wpisu ostrzega i ma przycisk
**Dodaj stronę /blog**.

Główna robi dwie rzeczy, których dodatkowe nie robią:

- wyznacza **adres kanoniczny** wpisu - ten jeden adres, który podajemy wyszukiwarkom i pod który
  prowadzą linki z list oraz mapy strony. Wpis otwarty pod inną stroną (np. `/aktualnosci/nazwa-wpisu`
  zamiast `/porady/nazwa-wpisu`) przekierowuje na adres kanoniczny, więc nie ma dwóch kopii tej
  samej treści,
- gwarantuje, że wpis **ma gdzie się pokazać**: jeśli żadna strona witryny nie listuje kategorii
  głównej, przy zapisie artykułu system zakłada stronę `/blog` z listą wszystkich artykułów
  i podpina ją do kategorii. Stronie `/blog`, która już istnieje, ale nie ma listy, listę dopisuje.

Nie musisz więc zaczynać od projektowania stron. Dodaj artykuł, wybierz kategorię - blog powstanie sam,
a układ stron doprecyzujesz później.

## Skąd bierze się adres wpisu {#skad-bierze-sie-adres-wpisu}

Strona z listą (tag lub paragraf **artykuły**) ma ustawione kategorie: jedną, kilka albo „wszystkie".
Adres wpisu pod tą stroną to ścieżka strony, potem **ewentualny segment kategorii**, potem ścieżka
wpisu. Który segment:

1. kategorie ustawione na liście strony tylko **filtrują**, które wpisy się pokazują - na adres nie
   wpływają,
2. segment daje **kategoria główna** wpisu, jeśli ma **Segment adresu**,
3. główna go nie ma → brana jest pierwsza **kategoria dodatkowa** z segmentem, w kolejności
   **Priorytetu** (mniejszy pierwszy, przy remisie starsza),
4. żadna kategoria wpisu nie ma segmentu → wpis stoi wprost pod stroną.

Dzięki temu wystarczy jedna kategoria z segmentem, np. „poradnik", dopięta jako dodatkowa do
wybranych wpisów - dostaną prefiks `/poradnik/` pod każdą stroną, która je listuje, bez dopisywania
jej do list stron.

Kategoria z segmentem dostaje też własną podstronę - `/blog/porady` - z listą tylko swoich wpisów.
Nie trzeba zakładać na nią strony; pojawia się w mapie strony i na chipach nad listą, jeśli ma
choć jeden opublikowany wpis.

Ten adres musi być wolny: jeśli masz już zwykłą stronę pod `/blog/porady`, to ona się pod nim
otworzy, a lista kategorii nie miałaby jak. Dlatego przy zapisie kategorii z zajętym segmentem
zobaczysz błąd przy polu **Segment adresu** - wybierz inny segment albo zmień ścieżkę strony.

## Przykład: strona firmowa z działami {#przyklad-strona-firmowa}

Witryna ma dwie strony z listami:

- `/page1` z listą kategorii **news, poradnik**,
- `/blog` z listą **wszystkich** kategorii.

Kategorie: `news` z segmentem `news`, `poradnik` z segmentem `poradnik`, `temat1` z segmentem
`temat1`, `blog` bez segmentu.

| Wpis | Kategorie (główna pierwsza) | Adres pod `/page1` | Adres kanoniczny |
|------|-----------------------------|--------------------|------------------|
| a1 | news | `/page1/news/a1` | `/page1/news/a1` |
| a2 | poradnik, temat1 | `/page1/poradnik/a2` | `/page1/poradnik/a2` |
| a3 | temat1 | nie ma go na `/page1` | `/blog/temat1/a3` |
| a4 | blog | nie ma go na `/page1` | `/blog/a4` |
| a5 | blog, poradnik | `/page1/poradnik/a5` | `/blog/poradnik/a5` |

Co tu widać:

- a2 ma dwie kategorie, ale segment daje `poradnik`, bo to jego kategoria główna i ma segment,
- a5 ma główną `blog` bez segmentu, więc segment daje dodatkowa `poradnik` - także pod `/blog`,
  choć lista `/blog` tej kategorii osobno nie wymienia; gdyby dodatkowych z segmentem było kilka,
  wygrałaby ta z mniejszym **Priorytetem**,
- a3 i a4 listuje tylko `/blog`, więc tam mają adres kanoniczny; a3 dostaje segment `temat1`,
  bo to jego kategoria główna i ma segment, a4 stoi wprost pod `/blog`, bo `blog` segmentu nie ma,
- na liście `/blog` link do a1 prowadzi na `/page1/news/a1` (adres kanoniczny), a wejście na
  `/blog/a1` przekierowuje tam samo,
- podstrony `/page1/news`, `/page1/poradnik` i `/blog/temat1` działają jako listy jednej kategorii
  i są w mapie strony.

## Przykład: blog z chipami „Aktualności / Porady" {#przyklad-blog-chipy}

Jedna strona `/blog` z listą wszystkich kategorii. Kategoria główna wpisów: `blog` (bez segmentu).
Dodatkowe kategorie: `aktualnosci` i `porady`, obie z segmentem.

- wpis ma adres `/blog/nazwa-wpisu` - segment dają tylko kategorie główne, a `blog` go nie ma,
- nad listą pojawiają się chipy „Aktualności" i „Porady" prowadzące na `/blog/aktualnosci`
  i `/blog/porady`,
- zmiana wpisowi kategorii dodatkowej nie zmienia jego adresu, więc linki nie przestają działać.

Tak wyglądają po zmianie dawne „tematy": każdy stał się kategorią dodatkową z segmentem równym
swojemu kodowi. Stare adresy `/blog/porady/nazwa-wpisu` przekierowują na `/blog/nazwa-wpisu`.

## Przykład: osobne działy z własnymi adresami {#przyklad-osobne-dzialy}

Chcesz, żeby porady miały adresy `/porady/nazwa-wpisu`, a aktualności `/aktualnosci/nazwa-wpisu`,
bez wspólnego `/blog` w środku. Załóż dwie strony: `/porady` z listą kategorii **porady** i
`/aktualnosci` z listą kategorii **aktualnosci**, a kategoriom zostaw puste **Segment adresu** -
segment nie jest potrzebny, bo dział rozróżnia już ścieżka strony. Wpis z kategorią główną
`porady` ma adres `/porady/nazwa-wpisu`; jeśli dodasz mu też `aktualnosci`, pokaże się na obu
listach, a z `/aktualnosci/nazwa-wpisu` przekieruje na adres kanoniczny.

## Filtr w adresie {#filtr-w-adresie}

Stare linki z `?topic=porady` (albo `?category=porady`) na stronie z listą dalej działają:
kategoria z segmentem przekierowuje na swoją podstronę `/blog/porady`, kategoria bez segmentu
zawęża listę w miejscu.