Ciao!
Se non ho capito male quello che vuoi fare tu è questo:
http://www.html.it/pag/16053/le-mappe-di-immagine/
Per creare questa feature hai a disposizione diverse strade:
- Collezioni di TV (migx), contenenti le coordinate/informazioni relative ai singoli poligoni di una mappa.
- 2 CRC di tipo xPDOSimpleObject, a mio parere la più adatta per la tua situazione (anche se più complessa da sviluppare). 1 Classe personalizzata per le Mappe, un'altra per i poligoni di tale mappa.
Con uno schema tipo questo mi pare ricopri tutti gli aspetti dell'addons.
<?xml version="1.0" encoding="UTF-8"?>
<model package="mappeImmagini" version="1.0" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM">
<object class="Mappa" table="mappe" extends="xPDOSimpleObject">
<field key='mapName' dbtype='varchar' precision='255' phptype='string' null='false' />
<field key='mapUrl' dbtype='varchar' precision='255' phptype='string' null='false' />
<composite alias="SezioniMappa" class="Sezione" local="id" foreign="mappa_id" cardinality="many" owner="local" />
</object>
<object class="sezioniMappa" table="sezionimappe" extends='xPDOSimpleObject'>
<field key='mappa_id' dbtype='int' precision='10' phptype='integer' null='false' />
<field key='type' dbtype='varchar' precision='255' phptype='string' null='false'/>
<field key='coordinate' dbtype='varchar' precision='512' phptype='string' null='false'/>
<field key='link' dbtype='varchar' precision='255' phptype='string' null='false'/>
<index alias="mappa_id" name="mappa_id" primary="false" unique="true" type="BTREE">
<column key="mappa_id" collation="A" null="false" />
</index>
<aggregate alias='Mappa' class="Mappa" local='mappa_id' foreign='id' cardinality='one' owner='foreign' />
</object>
Una classe dedicata alle singole mappe.
Per ogni mappa zero o più "sezioniMappa", comprensive di coordinate,tipo(circle,poligon,etc), link e mappa a cui legarsi.
Con questo tipo di implementazione puoi ad esempio prelevare tutte le sezioni di una mappa tramite chiamate XPDO del tipo: $mappa->getMany('sezioniMappa');
Crei infine dei metodi della classe $mappa e $sezioniMappa per l'assemblaggio e la creazione delle mappe tramite chunk, in modo tale che la costruzione di una semplice mappa si riduca a $mappa->initMap();
Infine lato Back-end, puoi integrare una tabella per la creazione di mappe/sezioni di mappe da integrare ai pannelli delle risorse (Document,Access Group,Settings, etc), vedi figura allegata.
Sono andato un pò veloce con la spiegazione lo so
se hai bisogno di qualcosa contattami e sarò lieto di darti una mano!