PREMESSA: Il concetto di ereditarietà è stato introdotto nella versione Gantry 5.3.0. Detto questo, significa che la maggior parte, se non tutti, i contenuti di questa guida si applicano soltanto ai siti web che utilizzano come minimo Gantry 5.3.0
In questa guida viene spiegato in dettaglio come funziona l'ereditarietà in Gantry 5. L'ereditarietà, in essenza, è la possibilità per un Outline di ereditare gli attributi, le particelle e le impostazioni del layout di un altro Outline. Questa guida si concentrerà principalmente su come funziona l'ereditarietà in quanto si riferisce al Gestore Layout (Layout Manager).
Che cos'è l'ereditarietà
Per iniziare, dobbiamo riassumere la gerarchia di base dell'ereditarietà come esiste al primo livello di Gantry 5. Il Base Outline agisce come predefinito globale per qualsiasi sito web Gantry. Questo è il posto dove sono impostate lo stile globale, impostazioni predefinite delle particelle, le impostazioni di pagina, e le opzioni di layout. In sostanza il Base Outline definisce le impostazioni predefinite, e ogni altro Outline creato successivamente può ereditare o modificare le impostazioni del Base Outline.Le regole dell'ereditarietà si possono applicare a molte cose diverse. Ad esempio, è possibile ereditare :
- Un intero layout da un Outline a un altro Outline;
- Attributi di una sezione da un Outline a un altro Outline;
- Elementi di una sezione (particelle) da un Outline a un altro Outline;
- Attributi di una particella da un Outline a un altro Outline;
- Le impostazioni (block settings) di una particella da un Outline a un altro Outline;
- Attibuti di un Atom da un Outline a un altro Outline;
Le impostazioni dello stile e delle particelle del sito sono automaticamente ereditate dal Base Outline, e vengono modificate da un'altro pannello di amministrazione di un'altro Outline. Gantry non supporta l'ereditarietà nidificata. Per esempio: supponiamo che esistono delle sezioni già ereditate in un Outline, se si desidera adesso ereditare l'intero Outline, le sezioni già ereditate individualmente non verranno sovrascrite. Queste continueranno ad ereditare dal Outline assegnato in precedenza.
Ereditarietà di un Layout
Non è possibile impostare l'ereditarietà attiva per un intero outline, a meno che non si crea un nuovo Outline duplicandolo e non cambiare assolutamente nulla. Invece è possibile collegare il layout a un altro outline completamente.È possibile ereditare o clonare un intero layout da un outline all'altro. Questo metodo è utile se si desidera ereditare sezioni multiple e/o particelle da un'altro outline, per non ricrearle tutte da 0. In questo modo verrà creata eredità in ogni sezione e particella. È possibile, naturalmente, disabilitare l'ereditarietà e/o rimuovere manualmente ogni particella dopo la sua creazione.

È sufficiente selezionare il pulsante Load (Carica) in Layout Manager per l'outline da dove si desidera ereditare il layout, quindi selezionare Outlines e successivamente attivare o disattivare l'opzione Inherit every Section and Children of the selected Outline (Eredita ogni Sezione e sottosezione dell'Outline selezionato) e scegliere l'outline da dove si desidera ereditare il layout. In questo modo si attiverà l'ereditarietà per tutte le sezioni e le particelle del outline selezionato.
Dopo aver fatto questo è possibile rimuovere manualmente l'ereditarietà per singole sezioni e/o particelle disabilitando dalle impostazioni di ogni sezione e poi dalle particelle.
Ereditarietà di una Sezione
Ogni sezione può essere ereditata. Questa include sia attributi della sezione, compreso il layout della sezione, la classe CSS e i tag attributi nonché i contenuti della sezione stessa, contenuti che includono le particelle e le loro posizioni di riga e impostazioni di larghezza.
È possibile accedere alle impostazioni di ereditarietà della sezione selezionando l'icona Impostazioni e poi la scheda Inheritance. Qui, è possibile configurare come vengono ereditate le informazioni in questa sezione.

Mode: Consente di scegliere tra clonazione di una sezione da un altro outline quindi effettuare una copia oppure di ereditare la sezione per la sincronizzazione.
Outline: Questa casella a discesa consente di selezionare un outline come sorgente per gli attributi della sezione e/o per i loro contenuti.
Attributi della Sezione: Questa opzione consente di ereditare/clonare gli attributi di una sezione, o le impostazioni specifiche delle particelle.
Contenuti della Sezione: Questa opzione consente di ereditare/clonare i contenuti di una sezione, tra cui le particelle, le loro posizioni, la larghezza, gli attributi, e le loro impostazioni.
Quando vengono ereditati i contenuti di una sezione, significa che si importa le particelle di quella sezione e anche le loro impostazioni. Quindi, se si dovesse rimuovere contenuti della sezione dalle impostazioni di ereditarietà, le particelle rimarranno e continueranno a ereditare gli attributi e le impostazioni del outline originale fino a quando viene scollegato e rimosso manualmente.
Se si elimina una particella, tutte le sezioni che ereditano i contenuti avranno la particella rimossa. Questo non succede se l'opzione "Contenuti Sezione" (Section Children) è disattivata nelle impostazioni di ereditarietà della sezione.
Ereditarietà di una Particella
Una particella è essenzialmente l'elemento che è più influenzato dal'ereditarietà. Si trova al livello inferiore della struttura di ereditarietà, e può essere direttamente ereditata o ereditata come parte di una sezione o di un outline.Ecco un riassunto rapido dei diversi livelli di ereditarietà di una particella.
Livello | Descrizione |
Il file YAML della particella | Tutte le impostazioni predefinite in questo file agiscono come dei valori predefiniti assoluti di primo livello per quella particella. Questi valori vengano sovrascritti dalle eventuali modifiche apportate nel Base Outline e negli altri outline creati successivamente. |
Base Outline Particle Defaults | Le modifiche apportate nel pannello "Particle Defaults" (Impostazioni predefinite Particella) in Base Outline, diventano valori predefiniti globali per l'intero sito. |
Non-Base Outline Particle Defaults | Il pannello "Particle Defaults" (impostazioni predefinite delle particelle), a questo livello imposta i valori predefiniti per le particelle che esistono in quel particolare outline, e influisce soltanto quel outline. |
Impostazioni predefinite Particella in Layout Manager, Menu Editor o nei moduli | Le modifiche apportate a questo livello sovrascrivono le impostazioni per la particella soltanto in questa istanza oppure in tutte le istanze ereditate direttamente. |
Riassumendo, l'ereditarietà per le impostazioni di una particella funziona così: File YAML della particella > Base Outline Particle Defaults > Non-Base Outline Particle Defaults > Istanza.
Il pannello Particle Defaults delle particelle non sarà più disponibile negli outlines creati dell'utente in quanto non è necessario con il nuovo sistema di ereditarietà. Questo sarà disponibile soltanto in Base Outline dove vengono impostati i valori globali predefiniti per ogni particella.
Tuttavia, il pannello è nascosto come impostazione predefinita per qualsiasi outline definito dall'utente, in quanto la stragrande maggioranza degli utenti definiscono spesso le particelle direttamente negli outline specifici attraverso il Layout Manager.

Se si desidera accedere al pannello Particle Defaults (Impostazioni predefinite delle particelle) di un outline definito dall'utente, è possibile farlo andando nel pannello Particle Defaults del Base Outline, quindi selezionare l'outline desiderato dalla casella a discesa. Inizialmente viene mostrato un avviso che spiega il motivo per cui questo pannello è nascosto ma da comunque la possibilità di accedere manualmente cliccando sul testo "clicking here".
Configurazione Ereditarietà per le Particelle

Configurare l'ereditarietà delle particelle è abbastanza facile. Tutto quello che si deve fare è navigare nelle impostazioni della particella e selezionare la scheda Inheritance. Questo vi darà l'accesso alle impostazioni di ereditarietà, che vi permetterà di selezionare un outline e una particella da dove ereditare gli attributi e le impostazioni.
La scheda Inheritance contiene moltri strumenti utili che vi permettono di clonare o di ereditare le proprietà di qualsiasi altra particella presente in un'altro outline.

Mode: Consente di scegliere tra la clonazione della particella di un altro outline come se fosse una copia oppure ereditare la particella per la sincronizzazione.
Outline: Questo menu a discesa consente di selezionare un outline come fonte per i nuovi attributi della particella.
Particle Instance: Selezionare da un elenco di particelle dello stesso tipo presenti nel outline selezionato, una particella per ereditare/clonazione.
Particle Info: Cliccando sull'iconcina "i" accanto al nome della particella si apre un popup che permette di visualizzare le impostazioni di quella particella. In questa finestra le impostazioni visualizzate sono read-only.
Particle Attributes: Questa opzione permette di ereditare/clonare attributi di una particella oppure le impostazioni di una determinata particella.
Particle Block: Questa opzione permette di ereditare/clonare le impostazioni presenti nella scheda Block di una particella.
Non è possibile modificare le impostazioni delle particelle nella finestra popup Particle Info. Si tratta di una vista in sola lettura delle impostazioni della particella, vista utilizzata solo come riferimento.

Una volta abilitata l'ereditarietà, gli attributi e/o le impostazioni delle particelle saranno bloccati, ereditando le proprietà dalla particella selezionata.
Se la particella sorgente viene cancellata, tutte le copie ereditate vengono convertite in cloni e mantenute nei rispettivi layout. Se si desidera rimuoverla completamente dal sito, si deve cancellare manualmente la particella da ogni layout in cui è presente. Questo è solo il caso di particelle ereditate individualmente, e non sezioni o outline.
Ereditarietà degli Atom
Ereditarietà degli Atom funziona in modo molto simile a quello dell'ereditarietà delle particelle. Ad esempio, se si dispone di un codice di Google Analytics e si desidera di applicarlo a più outline specifici, ma non sul Base Outline, è possibile farlo utilizzando le impostazioni di ereditarietà di un Atom.Qui di seguito, abbiamo creato un grafico per rendere più facile in quali casi si usa l'ereditarietà per in un Atom.
Base Outline | Outline A | Outline B | Outline C | |
Tutti i Outline utilizzano le impostazioni di base | Base | Base Default | Base Default | Base Default |
Gli Outline A e B utilizzano le stesse impostazioni ma non quelle di Base Settings | Base | Atom personalizzato | Ereditato dal'outline A | Base Default |
L'Outline A non utilizza l'atom ma gli altri si | Base | Atom eliminato | Base Default | Base Default |
Solo gli Outline B e C utilizzano Atom con le stesse impostazioni | Senza Atom | Senza Atom | Atom personalizzato | Ereditato dal outline B |
Ad esempio creeremo un Atom nel Outline A e dobbiamo ereditarlo nel'Outline B.

La prima cosa da fare è creare il nuovo Atom. Nel nostro esempio, creeremo un atom Google Analytics nel Outline A. A questo punto, l'unico outline in cui si troverà questo atom è soltanto Outline A.

Successivamente, ci spostiamo sul Outline B e creiamo un altro atom di Google Analytics. Questa volta, invece di configurarlo, passiamo direttamente alla scheda Inheritance e selezioniamo Outline A, l'istanza del'atomo Google Analytics e selezioniamo la casella Atom Attributs, in questo modo abbiamo ereditato sia l'atom che i suoi attributi.
