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

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

## Czym są pliki?

Pliki (assety) to zasoby statyczne używane w witrynach CMS — obrazy, arkusze CSS, skrypty JavaScript, pliki HTML i archiwa ZIP. Pliki są hostowane na serwerze CDN i dostępne publicznie pod stałym adresem URL.

## Kluczowe funkcje

- **Obsługiwane typy** — obrazy (JPG, PNG, SVG, GIF), CSS, JavaScript, HTML, pliki ZIP
- **Hosting CDN** — pliki są przechowywane na Amazon S3 i serwowane przez CloudFront, co zapewnia szybkie ładowanie
- **Stały URL** — każdy plik ma unikalną nazwę i stały adres URL do osadzania w stronach i szablonach
- **Automatyczne wykrywanie typu** — system rozpoznaje typ pliku na podstawie rozszerzenia
- **Foldery** — pliki można organizować w hierarchiczną strukturę katalogów
- **Import ZIP** — wgraj archiwum ZIP, a system automatycznie rozpakuje je i utworzy pliki z zachowaniem struktury folderów

## Użycie plików

Po wgraniu pliku użyj jego URL w szablonach, stronach lub stylach CSS:

```html
<!-- Obraz -->
<img src="URL_PLIKU" alt="Opis">

<!-- CSS w szablonie -->
<link rel="stylesheet" href="URL_PLIKU">

<!-- JavaScript -->
<script src="URL_PLIKU"></script>
```

## Organizacja w folderach

Foldery pozwalają porządkować pliki tematycznie (np. `obrazy/ikony`, `css`, `js`). Foldery mogą być zagnieżdżone — każdy folder ma unikalną nazwę w obrębie folderu nadrzędnego.

---

## 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 — Pliki (Assets)

### Endpointy

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/cms/assets.json` | Lista plików |
| GET | `/cms/assets/:id.json` | Szczegóły pliku |
| POST | `/cms/assets.json` | Wgranie pliku |
| PATCH | `/cms/assets/:id.json` | Aktualizacja |
| DELETE | `/cms/assets/:id.json` | Usunięcie |
| GET | `/cms/assets/:id/view` | Pobranie pliku (zwraca surowy plik) |
| GET | `/cms/assets/view/*name` | Pobranie po nazwie |

### Foldery

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| POST | `/cms/assets/create_folder` | Utworzenie folderu |
| DELETE | `/cms/assets/destroy_folder` | Usunięcie folderu |

### Pola

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `name` | string | tak | Nazwa pliku (unikalna w ramach konta) |
| `kind` | string | auto | Typ: `image`, `css`, `js`, `zip` (auto-detect z rozszerzenia) |
| `file` | file | nie | Plik do wgrania (multipart) |
| `content` | string | nie | Treść tekstowa (dla CSS/JS/HTML) |
| `folder_id` | integer | nie | ID folderu |
| `site_id` | integer | nie | ID witryny |
| `layout_id` | integer | nie | ID szablonu |
| `fields` | jsonb | nie | Własne pola |

### Import ZIP

Wgranie pliku ZIP z `kind: "zip"` automatycznie rozpakuje archiwum i utworzy strukturę folderów z plikami.

### URL pliku

Po wgraniu asset dostępny jest pod polem `s3_url` (bezpośredni link S3) w odpowiedzi JSON.

### Filtrowanie

- `?q=fraza` — szuka w name
- `?site_id=1` — filtrowanie po witrynie
- `?folder_id=5` — filtrowanie po folderze
- `?kind=image` — filtrowanie po typie