Super Hack
Requisiti minimi:
- MySQL
- Installazioni multiple su medesimo server MySQL
- Medesimo DB
Viene spesso chiesto se
è possibile utilizzare Joomla per gestire domini diversi condividendo, tra i due domini, magari
parte delle informazioni già presenti nell'uno o nell'altro.
Ogni installazione di Joomla, al contrario di altri CMS, consente la gestione di un singolo dominio, ciò significa che si dovranno effettuare tante installazioni quanti sono i domini o sottodomini che si intende gestire.
Nella gestione di domini distinti
capita spesso di avere la necessità di condividere informazioni al fine di evitare la duplicazione delle informazioni.
Questo tipo di operazioni sono spesso gestiti da script denominati bridge la cui unica funzionalità è quella di "sincronizzare" tabelle diverse.
Con questo mini HowTo si propone una soluzione a questo problema senza la necessità di scrivere alcuno script, ma sfruttando le nuove caratteristiche di MySQL5: le viste.
Immaginiamo di voler condividere le configurazioni d'accesso per gli utenti registrati.
Consideriamo le seguenti installazioni di Joomla:
www.miodominio.ite
www.miodominio.it/sottocartellaCome indicato nei requisiti minimi entrambe le installazioni condividono il medesimo database MySQL e le tabelle di ogni rispettiva installazione saranno quindi semplicemente differenziate grazie all'utilizzo di prefissi diversi, nel nostro caso:
jos_e
jos2_Terminate le installazioni procederemo ad eseguire il seguente codice:
DROP TABLE jos2_users;
CREATE VIEW jos2_users AS SELECT * FROM jos_users;
DROP TABLE jos2_core_acl_aro;
CREATE VIEW jos2_core_acl_aro AS SELECT * FROM jos_core_acl_aro;
DROP TABLE jos2_core_acl_groups_aro_map;
CREATE VIEW jos2_core_acl_groups_aro_map AS SELECT * FROM jos_core_acl_groups_aro_map;
Se si possiedono i privilegi di accesso alla linea di comando di MySQL tali da poter creare viste è sufficiente digitare le istruzioni precedenti, se siete poco avvezzi all'uso dell'interfaccia a riga di comando di MySQL potete invece utilizzare il vostro fidato phpMyAdmin e, una volta selezionato il db ed attivato, selezionando la scheda SQL eseguire tale codice.
Cosa è stato fatto?
Sfruttando il meccanismo delle viste presente da MySQL 5 (non nelle versioni precedenti) ho creato una sorta di link tra tabelle, posso infatti in questo modo riferirmi alla medesima tabella con 2 nomi distinti e "fregare" Joomla.
Concettualmente la condivisioni di informazioni tra installazioni diverse è estensibile, posso creare viste tra tutte le tabelle non esclusivamente tra quelle di gestione utenti... la cosa è interessante vero?
Se di interesse, a questa prima bozza, seguirà PDF dettagliato
Se usate questo hack almeno citatemi nei ringraziamenti o da qualche parte:
Alessandro "gallus" Gallieri
oppure
Alessandro Gallieri as "gallus"
ed esite la versione generalizzata che concettualmente è fantastica... arriverà
Il PDF è finito, ma non ho ancora deciso come pubblicarlo, per il momento ho definito una documentazione più dettagliata ed estesa che trovare nella area Guide sezione Hacks del sito che trovate nella mia firma Gens Joomla, vi metterei volentieri il link, ma come vedete viene considerato SPAM
Dove trovarlo:
- Il sito: Gens Joomla (lo trovate nella mia firma)
- Area: Guide
- Sezioni: Hacks
- Manuale: Installazioni Multiple: Condivisione Generalizzata
E' pronto anche uno script di condivisione... arriverà prestissimo devo decidere come pubblicarlo
Fatemi sapere se interessa