Salve a tutti,

Ripropongo qui un quesito che avevo posto tempo fa in altra sezione dell forum senza riuscire a cavarne nulla per la mia insaziabile curiosità.

Vorrei capire la logica e il modo di operare di molti cms robusti tipo: ezpublish, typo3.
Sopratutto in merito alle questione delle Class elements.
Cosa sono queste?

Mettiamo caso che devo mettere su un sito con una sezione news che deve contenere i seguenti campi:

Data
Titolo
Testo
Immagine

Con i famosi cms di cui parlo, prendiamo in esempio ezpublish, per fare questo creo lo scheletro della sezione "News" e popolo questa con le famose class elements.

Aggiungo le class elements:
Data = Date (class elements)
Titolo = textbox (class elements)
Testo = textarea (class elements)
Immagine = file (class elements)

Insomma creo lo scheletro della mia sezione ed in automatico ezpublish mi crea la pagina News con relative sezione ADD/EDIT/DELETE.
Senza mettere mano al db ed al codice ezpublish fa tutto in automatico!
Perchè tutto questo mi incuriosice tanto? credo di non doverlo nemmeno spiegare a chi lavora ogni giorno sul web!

Pensate alla tipica situazione:
Avete messo su il sito bello e funzionante, ma improvvisamente il simpatico cliente se ne esce che la sezione "News" oltre a contenere i campi di cui sopra necessita di un ulteriore campo "Luogo".
Ecco con ezpublish diventa una stupidata incredibile, entri nella sezione "scheletro" della tabelle News ed aggiungi con un solo click un ulteriore classe elements:

Luogo = textbox (class elements)

Et voilà tutto pronto!

Ma allora cosa cavolo voglio?
Vorrei implementare nel mio Backend personale (quello che uso per i miei lavori) la stessa logica (dinamicità totale).
Insomma secondo voi come diavolo fanno a fare una cosa del genere? qual'è la logica di questa cosa?
ezpublish permette di costruire il sito da 0 totalmente online lato backend!
Secondo voi è difficile costruirsi una funzionalità del genere? avete qualche esempio, qualche riferimento?
Se si tratta di creare nuove tabelle nel database via backend posso pure arrivarci, ma non capisco come creare in automatico le pagine di editing (ADD/EDIT/DELETE) senza intervenire assolutamente sul codice!

Scusatemi se questo post vi ha annoito, spero almeno di essere stato chiaro.
Grazie.