Collezioni e campi

In questa pagina

Una collezione definisce un tipo di contenuto e il modulo che gli editori usano per crearlo. I suoi campi definiscono i valori che ogni voce può contenere. Ad esempio, una collezione Prodotti potrebbe contenere un titolo, prezzo, descrizione, immagine del prodotto e riferimento a una voce Brand.

Gli amministratori gestiscono le collezioni sotto Tipi di Contenuto. I file seed possono definire le stesse impostazioni di collezione quando un sito o ambiente viene configurato da configurazione.

Identità della collezione

Ogni collezione ha un’etichetta plurale, un’etichetta singolare opzionale e uno slug. Le etichette appaiono nel pannello di amministrazione. Lo slug identifica la collezione nelle query, nelle route API, nei file seed e nel database.

Ad esempio, una collezione etichettata Post del Blog può usare Post del Blog come etichetta singolare e posts come slug. Il codice Astro la interroga quindi per quello slug:

import { getEmDashCollection } from "emdash";

const { entries: posts } = await getEmDashCollection("posts");

Scegli lo slug prima di creare la collezione. Il pannello di amministrazione non rinomina gli slug di collezione o gli slug di campo in seguito perché le query esistenti e le colonne memorizzate dipendono da essi. Gli slug iniziano con una lettera minuscola, contengono solo lettere minuscole, numeri e trattini bassi, e hanno un massimo di 63 caratteri. EmDash rifiuta anche i nomi riservati usati dalle proprie route e dai dati delle voci.

Comportamento della collezione

Le impostazioni della collezione controllano come gli editori e le pagine pubbliche usano le voci:

  • Routable richiede uno slug pubblico prima che una voce possa essere pubblicata. Un pattern URL può combinare lo slug o l’ID della voce con la sua data di pubblicazione per produrre il percorso pubblico.
  • Drafts permette agli editori di salvare il lavoro prima di pubblicarlo.
  • Revisions mantiene istantanee della cronologia del contenuto.
  • Preview fornisce URL di anteprima firmate per contenuto non pubblicato.
  • Search abilita la ricerca full-text per i campi contrassegnati come ricercabili.
  • SEO aggiunge campi di metadati titolo, descrizione e immagine e include la collezione nella sitemap.
  • Edit locking mantiene una voce mentre un editor sta lavorando e rifiuta altri scrittori fino al rilascio del blocco.
  • Comments possono essere abilitati per collezione, con impostazioni di moderazione e chiusura automatica.
  • Group posiziona la collezione in una cartella richiudibile della barra laterale. Le collezioni con lo stesso gruppo condividono una cartella, posizionata dove apparirebbe la prima di esse. Una tassonomia si unisce alla cartella quando ogni collezione a cui è assegnata è mostrata in quella cartella.

Abilita il comportamento che il sito utilizza effettivamente. Ad esempio, attivare Preview fornisce URL di anteprima, ma la pagina Astro deve ancora renderizzare correttamente la voce e il suo stato di anteprima. Vedi Modalità anteprima per quel flusso completo.

Tipi di campo

Scegli un tipo di campo per il valore che gli editori inseriscono e il modo in cui il codice dell’applicazione lo riceve. EmDash supporta 17 tipi di campo:

Esigenza di contenutoTipi di campoCon cosa lavorano gli editori
Testo breve o lungostring, text, slug, urlInput di testo, aree di testo e valori URL
Numerinumber, integerInput decimali o di numeri interi
Stato e tempoboolean, datetimeUn interruttore o selettore di data e ora
Scelte fisseselect, multiSelectUna o più scelte da opzioni configurate
Dati ricchi o strutturatiportableText, json, repeater, blocksTesto ricco, JSON, gruppi ripetuti o una composizione di blocchi ordinata
Mediaimage, fileUn elemento selezionato dalla libreria multimediale
RelazionireferenceUna voce selezionata da un’altra collezione

Il tipo è più di un controllo dell’editor. Determina anche come EmDash memorizza e convalida il valore e come le dichiarazioni TypeScript generate lo descrivono. Il riferimento dei tipi di campo elenca la forma del valore e le opzioni di ogni tipo.

Regole di campo

Ogni campo personalizzato ha un’etichetta e uno slug. Le seguenti opzioni descrivono ulteriormente il suo comportamento:

  • Required impedisce che una voce venga salvata senza un valore.
  • Unique impedisce a due voci nella collezione di usare lo stesso valore.
  • Default value fornisce un valore iniziale quando appropriato.
  • Validation può limitare la lunghezza del testo, gli intervalli di numeri, i pattern, le scelte, i tipi di file o la lunghezza del repeater secondo il tipo di campo.
  • Searchable include i campi di testo supportati nell’indice di ricerca full-text della collezione.
  • Indexed crea un indice di database per ordinare o filtrare su un campo supportato.
  • Translatable controlla se ogni locale ha il proprio valore. Un valore non traducibile è condiviso tra le traduzioni della stessa voce.

Attiva Indexed quando una query ordina o filtra per quel campo personalizzato. L’indice aiuta il database a trovare voci corrispondenti o ordinate, ma usa spazio di archiviazione aggiuntivo e aggiunge lavoro ogni volta che il contenuto viene creato o aggiornato. Non indicizzare un campo solo perché una pagina lo visualizza.

Gli indici sono disponibili per i campi string, url, number, integer, boolean, datetime, select, reference e slug. Il testo ricco, JSON, i repeater e i valori a scelta multipla contengono dati più complessi e non possono usare questo tipo di indice.

Un campo di riferimento non memorizza nulla nella propria tabella della collezione. Configuralo con la collezione di destinazione e consenti valori multipli solo quando il campo deve collegare più voci. EmDash mantiene i collegamenti separatamente e restituisce le voci collegate sotto references anziché in data, quindi un riferimento permette al codice di caricare o identificare contenuti correlati senza copiare la voce di destinazione nella voce di origine. Vedi reference per la forma memorizzata e il comportamento di un campo senza collezione di destinazione, e Relazioni per il flusso di lavoro attorno ad esso.

Modificare i campi successivamente

Etichette, convalida, impostazioni di ricerca, indici, opzioni widget e ordine di visualizzazione possono cambiare senza sostituire il campo. L’aggiunta di un campo mantiene ogni voce esistente, sebbene quelle voci necessitino di un valore per il nuovo campo se il sito ne prevede uno.

La migrazione deve convertire i valori esistenti, aggiornare il modello e mantenere il codice dell’applicazione vecchio e nuovo compatibile durante il deployment. Segui Evoluzione dello schema di un sito distribuito prima di effettuare una di queste modifiche.

Attività correlate

Usa Lavorare con il contenuto per creare e pubblicare voci. Usa Interrogare il contenuto per filtrarle e ordinarle. Leggi Modello di contenuto per i tipi generati e i file seed.