[Intum](https://intum.fr/aide.md) / [CMS](https://intum.fr/aide/cms.md)

# [Strony](https://intum.fr/aide/cms/strony.md) | [API](#api)

## Czym są strony?

Strony to podstawowe elementy witryny CMS. Każda strona ma swoją ścieżkę URL, treść i może być przypisana do szablonu. Strony tworzą strukturę witryny — mogą być zagnieżdżone hierarchicznie (strona nadrzędna → podstrona).

## Kluczowe funkcje

- **Ścieżka URL** — każda strona ma unikalną ścieżkę (np. `/o-nas`, `/kontakt`), generowaną automatycznie z nazwy lub ustawioną ręcznie
- **Treść z Liquid** — treść stron obsługuje szablony Liquid, umożliwiając wstawianie zmiennych, pętli i bloków dynamicznych
- **Hierarchia stron** — strony mogą mieć podstrony, tworząc wielopoziomową strukturę nawigacji
- **Menu** — strona może być widoczna w menu witryny (opcja *Pokaż w menu*) z przypisanym kodem grupy menu
- **Przekierowania** — zamiast treści, strona może przekierowywać na inny adres URL
- **Meta SEO** — każda strona ma pola na tytuł HTML, opis i słowa kluczowe dla wyszukiwarek
- **Szablon** — strona może korzystać z własnego szablonu lub dziedziczyć domyślny szablon witryny
- **Wersje językowe** — pole *Język* pozwala tworzyć strony w różnych wersjach językowych

## Podłączenie bazy wiedzy do strony

Strona CMS może wyświetlać bazę wiedzy zamiast standardowej treści. W ustawieniach strony wybierz **Baza wiedzy** z listy — po zapisaniu strona będzie renderować wybraną bazę wiedzy pod swoim adresem URL.

Dzięki temu możesz osadzić bazę wiedzy (np. dokumentację, FAQ, centrum pomocy) bezpośrednio w strukturze witryny, zachowując spójną nawigację i domenę.

## Podgląd i zmienne

Każda strona ma dostępny **podgląd** renderowanego HTML oraz listę zmiennych Liquid dostępnych w szablonie (np. `{{ page.name }}`, `{{ site.name }}`, `{{ pages }}` — lista stron menu).

## Asystent AI

Przy edycji strony dostępny jest przycisk AI, który umożliwia modyfikację treści strony za pomocą instrukcji w języku naturalnym.

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

## API — Strony (Pages)

### Endpointy

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/cms/pages.json` | Lista stron |
| GET | `/cms/pages/:code.json` | Szczegóły strony (po code lub id) |
| POST | `/cms/pages.json` | Utworzenie strony |
| PATCH | `/cms/pages/:code.json` | Aktualizacja strony |
| DELETE | `/cms/pages/:code.json` | Usunięcie strony |
| GET | `/cms/pages/:code/env.json` | Dane strony (env) |

### Pola

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `name` | string | tak | Nazwa strony |
| `kind` | string | tak | Typ — `text` |
| `path` | string | tak | Ścieżka URL (np. `""` dla głównej, `"about"`) |
| `site_code` | string | tak | Code witryny |
| `code` | string | nie | Unikalny kod (zalecany format: `{site_code}-{path}`) |
| `layout_code` | string | nie | Code szablonu |
| `page_code` | string | nie | Code strony nadrzędnej (parent) |
| `content` | string | nie | Treść strony (Liquid templates) |
| `paragraph_codes` | array | nie | Lista kodów paragrafów |
| `priority` | decimal | nie | Priorytet sortowania |
| `in_menu` | boolean | nie | Czy widoczna w menu (domyślnie: true) |
| `menu_code` | string | nie | Kod grupy menu (np. `"top_menu"`, `"footer_menu"`) |
| `redirect_to` | string | nie | URL przekierowania |
| `locale` | string | nie | Język strony (np. `"pl"`, `"en"`) |
| `knowledge_base_id` | integer | nie | ID bazy wiedzy do podłączenia |
| `html_title` | string | nie | Meta tytuł SEO |
| `html_description` | string | nie | Meta opis SEO |
| `html_keywords` | string | nie | Meta słowa kluczowe |
| `html_script` | string | nie | Dodatkowy skrypt HTML |
| `fields` | jsonb | nie | Własne pola (dostępne w Liquid) |

### Podłączenie Bazy Wiedzy

Strona CMS może wyświetlać zawartość Bazy Wiedzy. Wystarczy podać `knowledge_base_id` przy tworzeniu/aktualizacji strony:

```json
{
  "page": {
    "name": "Pomoc",
    "kind": "text",
    "path": "pomoc",
    "site_code": "strona1",
    "knowledge_base_id": 123
  }
}
```

Po podłączeniu KB strona automatycznie renderuje widok bazy wiedzy pod ścieżką strony.

### Filtrowanie i wyszukiwanie

- `?q=szukana_fraza` — szuka w name, path, code
- `?site_id=1` — filtrowanie po witrynie
- `?layout_id=2` — filtrowanie po szablonie