Kolekce

Definujte typy obsahu pomocí TypeScript schémat a validace polí. Kolekce jsou základem vašeho obsahového modelu v CatCMS.[object Object]

Přehled

Kolekce definují vaše typy obsahu pomocí TypeScript schémat. Každá kolekce automaticky získá:

  • Typově bezpečné databázové schéma
  • Automatické API koncové body
  • Administrační rozhraní pro správu obsahu
  • Validaci polí a omezení
  • Správu verzí pomocí git

Dva typy kolekcí

Kolekce spravované konfigurací:

  • Definované v TypeScript souborech (src/collections/*.collection.ts)
  • Verzované společně s vaší kódovou základnou
  • Automaticky synchronizované při spuštění aplikace
  • Uzamčené pro úpravy v administračním rozhraní (označeno štítkem “Config”)
  • Typově bezpečné s automatickým doplňováním v IDE

Kolekce vytvořené v rozhraní:

  • Vytvářené a upravované prostřednictvím administračního rozhraní
  • Uložené přímo в databázi
  • Neverzované
  • Plně upravitelné v rozhraní
  • Skvělé pro rychlé prototypování

Vytváření kolekcí

Základní kolekce

Vytvořte nový soubor v src/collections/ s .collection.ts příponou:

Blog Posts Collection

Synchronizace kolekcí

Kolekce se automaticky synchronizují při spuštění serveru. Můžete je také synchronizovat ručně:

Sync Collections


Typy polí

CatCMS podporuje více než 30 typů polí pro vytváření bohatých obsahových schémat:

Textová pole

  • Name
    string
    Type
    string
    Description

    Jednořádkový textový vstup. Použijte pro titulky, jména, krátký text.

  • Name
    textarea
    Type
    string
    Description

    Víceřádkový prostý text. Použijte pro popisy, poznámky, dlouhý text.

  • Name
    email
    Type
    string
    Description

    E-mail s validací. Použijte pro kontaktní e-maily, informace o autorovi.

  • Name
    url
    Type
    string
    Description

    URL s validací. Použijte pro odkazy, externí zdroje.

  • Name
    slug
    Type
    string
    Description

    Identifikátor přátelský k URL. Použijte pro URL stránek, SEO cesty.

  • Name
    color
    Type
    string
    Description

    Výběr barvy. Použijte pro barvy motivu, přizpůsobení rozhraní.

Bohatý obsah

  • Name
    richtext
    Type
    string
    Description

    WYSIWYG HTML editor. Použijte pro blogové příspěvky, články, formátovaný obsah.

  • Name
    markdown
    Type
    string
    Description

    Markdown editor. Použijte pro dokumentaci, technický obsah.

  • Name
    json
    Type
    object
    Description

    JSON editor. Použijte pro strukturovaná data, odpovědi API.

Čísla a data

  • Name
    number
    Type
    number
    Description

    Číselný vstup. Použijte pro ceny, množství, hodnocení.

  • Name
    date
    Type
    string
    Description

    Výběr data (bez času). Použijte pro narozeniny, termíny.

  • Name
    datetime
    Type
    string
    Description

    Výběr data a času. Použijte pro data publikace, události.

Výběry

  • Name
    select
    Type
    string
    Description

    Rozbalovací seznam (jedna volba). Použijte pro kategorie, stavová pole.

  • Name
    multiselect
    Type
    array
    Description

    Rozbalovací seznam (více voleb). Použijte pro štítky, více kategorií.

  • Name
    radio
    Type
    string
    Description

    Přepínače. Použijte pro stav, možnosti viditelnosti.

  • Name
    checkbox
    Type
    boolean
    Description

    Zaškrtávací políčko (boolean). Použijte pro přepínače funkcí, příznaky.

Média a soubory

  • Name
    media
    Type
    string
    Description

    Výběr obrázku/média. Použijte pro hlavní obrázky, avatary.

  • Name
    file
    Type
    string
    Description

    Nahrání souboru. Použijte pro PDF, dokumenty, soubory ke stažení.

Vztahy

  • Name
    reference
    Type
    string
    Description

    Odkaz na jinou kolekci. Použijte pro autory, kategorie.

  • Name
    array
    Type
    array
    Description

    Pole položek. Může obsahovat jakýkoli typ pole.


Validace

Vestavěné validátory

Field Validation

Validační pravidla

  • required - Pole musí mít hodnotu
  • minLength / maxLength - Omezení délky řetězce
  • minimum / maximum - Omezení číselného rozsahu
  • pattern - Validace pomocí regulárního výrazu
  • enum - Musí být jedna ze zadaných hodnot
  • default - Výchozí hodnota, pokud není zadána

Příklady

Produkt e-shopu

Product Collection

Stránka dokumentace

Docs Collection

Správa událostí

Events Collection


Používání kolekcí

Dotazování na obsah

Fetch Collection Content

Koncové body API

Kolekce automaticky získávají REST API koncové body:

GET /api/collections/{collection}/content
Get all content from a collection
GET /api/content/{id}
Get single content item
POST /admin/content Auth required
Create new content
PUT /admin/content/{id} Auth required
Update content
DELETE /admin/content/{id} Auth required
Delete content

Osvědčené postupy

Collection Design Tips

  • Používejte popisné názvy polí, které odrážejí váš obsahový model - Nastavte vhodná validační pravidla pro udržení kvality dat - Používejte reference pro vztahy mezi kolekcemi - Povolte vyhledávání na polích, na která se uživatelé budou často dotazovat - Nastavte rozumné výchozí hodnoty pro volitelná pole

Performance Considerations

  • Omezte počet polí v listFields pro zlepšení výkonu výpisů - Používejte vhodné typy polí (např. select místo string pro pevně dané možnosti)
  • Indexujte často dotazovaná pole ve vaší databázi

Další kroky

Was this page helpful?