# Nastavení, příspěvky, soubory a návštěvníci CMS Total.js a kde je vše uloženo

> Nastavení CMS Total.js, správce příspěvků, jak se nahrané soubory servírují a mění jejich velikost, statistiky návštěvníků a dashboard, integrace s OpenPlatform a datový model webu.

Framework: cms
Product: CMS (cms@8071e48)
Language: cs
Content-SHA256: 9303984172da357d17a82b74862f278cf4a73824063654831aa4bae3f7211eed
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Nastavení

Plugin *Settings* (`settings_read`, `settings_save`; oprávnění `settings`) upravuje konfiguraci, kterou CMS drží v metadatech webu a při každém startu ji načítá do `CONF`:

| Klíč | Význam |
|---|---|
| `name` | název webu, používá se v `<title>` každé stránky kromě `/` a v názvu souboru zálohy |
| `url` | veřejná adresa webu; CMS ji aktualizuje i z hostu požadavků administrace |
| `smtp` | nastavení SMTP jako text JSON (`server`, `from`, `user`, `password`, `port`); `settings_test` je vyzkouší |
| `icon` | ikona webu |
| `$tms`, `secret_tms` | publikuje události přes TMS a tajemství tohoto spojení |
| `op_reqtoken`, `op_restoken` | tokeny aplikace [OpenPlatform](/en/openplatform/how-an-app-connects/); když jsou nastaveny oba, přihlášení do administrace nahradí přihlášení přes OpenPlatform |
| `totalapi` | klíč pro služby Total.js API |

Pluginy mohou přidat další klíče, které se zobrazí ve stejném formuláři. Hodnoty ze souboru `config` (`$api`, `cdn`, `salt` a, pokud jej přidáte, `token`) se zde neupravují.

## Příspěvky

Plugin *Posts* je malý správce článků uložených ve vlastním souboru NoSQL v úložišti. Příspěvek má `name`, `category`, `picture`, `summary`, `body`, `reference`, `icon`, `color`, `hidden` a `date`; administrace je vypisuje od nejnovějších (100 na stránku) a `posts_categories` vrací používané kategorie. Příspěvky jsou data pro váš vlastní kód: veřejný renderer CMS (`controllers/default.js`) je nevypisuje, takže je musí přečíst a vykreslit váš widget nebo cesta.

## Soubory

Plugin *Files* ukládá nahrané soubory do úložiště souborů a označuje je jako veřejné. `GET /download/<id>.<ext>` obslouží veřejný soubor (jen veřejné; ostatní odpovídají 404). U obrázků `?s=<percent>` vrátí menší JPEG (hodnota musí být od 10 do 80, s kvalitou 80) a `?download=1` vynutí stažení. Cesty nahrávání a jejich limity jsou v [API administrace](/en/cms/the-admin-api/).

## Návštěvníci a dashboard

Modul `modules/visitors.js` počítá návštěvy veřejných stránek přes skript `/visitors.js`, který obsahuje každá stránka: unikátní návštěvníky, zobrazení, prohlížeče, odkazující weby, vyhledávání, sociální sítě a přímý přístup, mobil a desktop, hodiny dne a lidi online (návštěvník je online 20 minut bez aktivity). Plugin *Dashboard* kreslí tato čísla z `dashboard_stats`, `dashboard_online`, `dashboard_browsers`, `dashboard_referers` a `dashboard_pages`.

## OpenPlatform

Když jsou nastaveny `op_reqtoken` a `op_restoken`, CMS přihlašuje lidi přes [OpenPlatform](/en/openplatform/what-is-openplatform/) (modul `modules/openplatform.js`) a každý plugin přidá své oprávnění do seznamu, který OpenPlatform ukazuje při přiřazování skupin: `pages`, `layouts`, `widgets`, `navigation`, `posts`, `files`, `redirects`, `variables`, `settings` a `admin`. Pamatujte na pravidlo OpenPlatform: aplikace je viditelná jen pro skupiny, které jí přiřadíte.

## Datový model

`MAIN.db` drží metadata webu (`pages`, `layouts`, `widgets`, `redirects`, `vars`, `nav`, `config` a `storage`) a ukládá se jako jeden dokument JSON s názvem `meta` v úložišti souborů. HTML každé stránky a layoutu je soubor v tomto úložišti, jehož název je id stránky nebo layoutu. `FUNC.load()` při startu načte metadata, zkompiluje widgety (spustí jejich funkci `install`) a znovu sestaví cache; `FUNC.save()` je zapíše zpět. Proto je záloha úložiště zálohou webu.
