Museo&Web CMS Open
Source: Tutorial
a cura del CMS Team del Gruppo Meta di Lucca
Personalizzazione della struttura del database
Una delle esigenze che possono sorgere è quella di modificare la struttura del database, come per il caso descritto sopra se si procede a modificare i file o le tabella distribuite con il CMS possono esserci problemi al momento dell'aggiornamento alle versioni successive.
Proprio per venire incontro a questa necessità è stato introdotta una funzione che indica al sistema come rimappare una classe in un'altra.
Il CMS per fare accesso al database ha bisogno di file XML che descrivono la struttura della tabella ma allo stesso tempo descrivono anche il tipo di rappresentazione dei dati, questi file sono nella cartella MW/classes/org/minervaeurope/museoweb/models.
Prima di procedere create all'interno della cartella MW/classes un struttura di cartelle che rispecchia il nome del vostro dominio (come spiegato nel tutorial: uso della pagine personale), nel mio caso ho creato la seguente struttura MW/classes/it/gruppometa/.
All'interno della struttura create una sottocartella models, in modo da usarla per salvare tutti i file XML che descrivono il database.
Dalla cartella originale (MW/classes/org/minervaeurope/museoweb/models) copiate il file Catalog.xml dentro questa nuova cartella.
Aprite il nuovo file Catalog.xml e fate delle modifiche, per fare una cosa semplice modifico la label del campo "catalogdetail_compilationDate":
<glz:Date id="catalogdetail_compilationDate" label="Data di catalogazione opera" model:detailTable="true" model:required="true"/>
Andate nella cartella MW/startup/ e create un nuovo file PHP (es. modGruppometa.php).
Aprite il nuovo file e inserite il seguente codice:
<?php
org_glizy_ObjectFactory::remapClass('org.minervaeurope.museoweb.models.Catalog', 'it.gruppometa.models.Catalog');
?>
La stessa cosa deve essere fatta nella cartella admin/MW/startup in questo modo sia il sito che l'amministrazione useranno la nuova definizione.
Per verificare la modifica entrate nell'amministrazione nel modulo "Opere" e provate a modificare un record, potrete notare che la label del campo data sarà cambiata.
Nell'esempio ho fatto una piccola modifica, ma le modifiche possono essere anche più radicali, aggiungendo o cancellando dei campi, naturalmente in questo caso dovete anche modificare la struttura del database.
Se modificate la struttura del database, vi consiglio di duplicare la tabella e di chiamarla in altro modo, in questo caso dovete anche modificare la prima riga del file XML in modo indicare il nome della nuova tabella:
model:create="true" model:type="2tables" model:tableName="catalog_tbl,catalogdetails_tbl" model:joinFields="catalog_id,catalogdetail_FK_catalog_id">
Come spiegato precedentemente ci sono dati che usano una tabella sola (es. utenti) e altri due tabelle, quindi a seconda di quello che intendete modificare ricordatevi di duplicare e modificare tutte le tabella interessate.