Se questo titolo è ambiguo, sentitevi liberi di cambiarlo, non so come inserirlo in un foglio singolo.
Esempio:
Supponiamo che tu abbia un modello html che contiene alcuni tag personalizzati, come <text_field />
. Ora creiamo una pagina basata su un modello che contiene più di questi tag personalizzati. Quando un utente vuole modificare la pagina, vede un campo di testo. può inserire le cose e salvarle.
Sembra abbastanza facile da configurare. O hai qualcosa come una tabella template_positions che memorizza il contenuto di quei campi.
Caso:
Ora ho un po 'di blocco mantenendo le cose il più semplice possibile. Supponiamo che tu abbia lo stesso tag indicato nel tuo esempio e in aggiunta, <layout>
e <repeat>
tag. Ecco un esempio di come dovrebbero essere usati:
<repeat>
<layout name="image-left">
<image /> <text_field />
</layout>
<layout name="image-right">
<text_field /> <image />
</layout>
</repeat>
Ora abbiamo un blocco che può essere ripetuto, ovviamente. Ciò significa: quando creo / modificando una pagina contenente un blocco di template, posso scegliere tra un layout image-left
e image-right
che poi viene inserito come elemento di contenuto (dove il contenuto per <image />
e <text_field />
viene memorizzato). E poiché questo è all'interno di un <repeat>
, gli elementi di contenuto dei layout specificati possono essere inseriti più volte.
Come lo memorizzi? Detto semplicemente, questo potrebbe essere memorizzato con la stessa configurazione che ho scritto nell'esempio sopra, ho solo bisogno di aggiungere un parent_id o qualcosa di simile per mantenere una gerarchia. ma penso che mi manchi qualcosa. Almeno manca la relazione tra un elemento di contenuto inserito e il punto di origine / inserimento. E cosa succede quando aggiorno il file modello?
Devo dare a ogni tag personalizzato che agisce come parte modificabile di un modello un identificatore che corrisponde a un identificatore nel modello per sostituirli correttamente?
Oppure puoi pensare a una soluzione pulita che potrebbe essere migliore?