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

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

## Czym są witryny?

Witryna to kontener grupujący strony, szablony, paragrafy i pliki w jedną spójną stronę internetową. Każda witryna ma własną domenę (lub kilka domen), domyślny szablon i ustawienia.

## Kluczowe funkcje

- **Wiele domen** — witryna może być dostępna pod wieloma domenami jednocześnie
- **Prefiks ścieżki** — opcjonalny prefiks URL (np. `/blog`), pozwalający hostować wiele witryn na jednej domenie
- **Domyślny szablon** — szablon stosowany automatycznie do wszystkich stron witryny, chyba że strona ma własny
- **Język witryny** — domyślny język dla treści witryny
- **Blokada edycji** — opcja *Zablokowana* chroni wszystkie strony, szablony i paragrafy witryny przed przypadkową edycją
- **Widoczność** — witryna może być publiczna lub prywatna (dostępna tylko po zalogowaniu)
- **Klonowanie witryny** — kopiuje całą witrynę z layoutami, stronami i paragrafami, zachowując relacje między nimi

## Typy witryn

- **www** — standardowa strona internetowa
- **kb** — witryna typu baza wiedzy

## Renderowanie

Witryna jest dostępna publicznie pod przypisaną domeną. System dopasowuje żądanie HTTP do witryny na podstawie domeny i prefiksu ścieżki, a następnie renderuje odpowiednią stronę z zastosowaniem szablonu.

---

## 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 — Witryny (Sites)

### Endpointy

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

### Podgląd

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/w/:site_code` | Podgląd strony głównej |
| GET | `/w/:site_code/:path` | Podgląd podstrony |

Endpoint podglądu `/w/` nie wymaga autoryzacji.

### Pola

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `code` | string | tak | Unikalny kod witryny |
| `name` | string | tak | Nazwa |
| `kind` | string | tak | Typ: `www` (strona WWW) lub `kb` (baza wiedzy) |
| `layout_code` | string | nie | Code domyślnego szablonu |
| `domain_id` | integer | nie | ID domeny (własna domena) |
| `description` | string | nie | Opis witryny |
| `path_prefix` | string | nie | Prefix ścieżki |
| `locale` | string | nie | Domyślny język (np. `"pl"`, `"en"`) |
| `content` | string | nie | Treść (dla layoutu witryny) |
| `locked` | boolean | nie | Blokada edycji stron/szablonów/paragrafów |
| `fields` | jsonb | nie | Własne pola (dostępne w Liquid jako `{{ site.pole }}`) |

### Klonowanie witryny

#### Klonowanie podstawowe (tylko ustawienia)

```json
{
  "from_site_code": "strona1",
  "site": {
    "name": "Kopia testowa",
    "code": "strona1-test"
  }
}
```

#### Klonowanie głębokie (ze wszystkimi elementami)

```json
{
  "from_site_code": "strona1",
  "deep_clone": "1",
  "site": {
    "name": "Kopia testowa",
    "code": "strona1-test"
  }
}
```

Kopiuje witrynę wraz z szablonami, stronami i paragrafami.

### Filtrowanie

- `?q=fraza` — szuka w name, code, description