Il Community Builder di JoomlaPolis ( qui il sito ) è, attualmente, senza dubbio la migliore estensione ( a pagamento ) di Joomla per la creazione e il mantenimento di una web community.
Se avete bisogno di un’estensione che vi permetta di aggiungere dei campi dati all’utente base di Joomla o creare un’area del vostro sito dedicata ai vostri utenti sullo stile di un qualsiasi social network Community Builder è l’estensione che fa per voi.

Una delle funzionalità che, purtroppo, rimane ancora un po’ carente ( per non dire assente ) nel Community Builder è la funzionalità di esportazione degli utenti registrati. Se nel corso del nostro lavoro avremo la necessità di esportare, per qualsiasi motivo, la lista degli utenti del nostro sito con i relativi dati ci accorgeremo che l’unica soluzione è utilizzare estensioni esterne al Community Builder e spesso a pagamento.

In questo articolo andremo a vedere come è possibile estrarre i dati dei nostri utenti senza dover installare ( e pagare ) nessuna ulteriore estensione. Le uniche cose di cui avremo bisogno sono una minima conoscenza di MySQL, una connessione al database Joomla e un software per la gestione dei database ( in questo articolo userò SQLyog Community Edition).
Il Community Builder salva i dati degli utenti nella table del database “#__comprofiler” ( ricordate che “#_” rappresenta il prefisso delle tabelle della vostra instalazione Joomla ) e attraverso la FOREIGN KEY “user_id” collega i suoi utenti agli utenti Joomla, proprio grazie a questo “collegamento” abbiamo la possibilità di estrarre tutti i dati degli utenti eseguendo un semplice INNER JOIN tra le table “#__comprofiler” e “#__users”.

Iniziamo quindi a scrivere la query per l’estrazione dei dati degli utenti..
In questa prima stesura della query andremo a estrarre tutti i dati contenuti nelle table “#__comprofiler” e “#__users”. Ricrodatevi di sostituire il mio prefisso delle tabelle ( “jos” in questo esempio ) con quello della vostra installazione Joomla.

1
2
3
SELECT * FROM jos_comprofiler
INNER JOIN jos_users
ON jos_comprofiler.user_id = jos_users.id

Eseguendo questa query vi accorgerete che ciascuna riga del nostro risultato sarà composta da tutti i campi dati di un utente, alcuni dei quali è molto probabile che non vogliamo vengano inseriti nel file Excel finale. Andiamo quindi a modificare la prima stesura della query in modo che dalla table “#__users” venga estratto solo il nome del nostro utente e il nome utente che utilizza per l’accesso al nostro sito.

1
2
3
4
SELECT jos_users.name AS Nome , jos_users.username AS 'Nome Utente' ,  jos_comprofiler.*
FROM jos_comprofiler
INNER JOIN jos_users ON jos_comprofiler.user_id = jos_users.id
ORDER BY jos_users.name

Dopo aver “pulito” i nostri risultati eliminando i dati poco utili presenti nella table “#__users”, andiamo a fare la stessa operazione di pulizia per i dati contenuti nella table “#__comprofiler”.
Analizzando la struttura di ogni riga ( che rappresenta un utente ) del nostro risultato noterete che dopo i campi “Nome” e “Nome_Utente” ( che vengono dalla table “#__users” ) iniziano i campi dati di Community Builder ( provenienti dalla table “#__comprofiler” ).
Come accaduto per i campi di “#__users” anche tra i campi della table “#__comprofiler” sono presenti alcuni campi che non ci interessa esportare (‘id’, ‘user_id’, ecc. ) e che quindi andremo a escludere dalla nostra query.
Analizzando ciascuna riga del nostro risultato noteremo che i campi dati aggiunti a ciascun utente attraverso Community Builder sono memorizzati in campi aventi il prefisso “cb_”, se ad esempio abbiamo aggiunto il “Sesso” in ogni riga troveremo un campo chiamato “cb_sesso”. Questo ci da la possibilità di individuare facilmente i campi rilevanti da estrarre attraverso la nostra query.

1
2
3
4
5
SELECT jos_users.name AS Nome , jos_users.username AS 'Nome Utente' ,  jos_comprofiler.cb_sesso AS Sesso,
jos_comprofiler.cb_professione AS Professione , jos_comprofiler.cb_datanascita AS 'Data Di Nascita'
FROM jos_comprofiler
INNER JOIN jos_users ON jos_comprofiler.user_id = jos_users.id
ORDER BY jos_users.name

In questa sua ultima stesura la nostra query ci restituirà nell’ordine :

Per concludere andiamo ora a vedere come si può esportare il risultato della nostra query in un file CSV che poi potremo aprire e gestire con Excel. L’export CSV è una funzionalità che SQLyog mette a disposizione sin dalle sue prime versioni.
La funzionalità di export in CSV è richiamabile dal primo pulsante a sinistra della barrra degli strumenti presente al di sotto del “Query Editor”.

SQLYog export as

Una volta cliccato sul pulsante si aprirà la finestra per selezionare le opzioni di creazione del file CSV contenente i risultati della nostra query.

SQLYog export configuration

Per creare un file CSV compatibile con MicroSoft Excel non dovremo modificare alcuna impostazione in questa finestra, l’unica cosa che dovremo decidere è il nome e il percorso in cui andremo a salvare il nostro file CSV.
Dopo aver creato il file CSV non dovremo fare altro che aprirlo con MS Excel, il software della Microsoft automaticamente creerà tante righe quanti sono i risultati della nostra query e tante colonne quanti sono i campi dati di ciascun risultato.
Concludo l’articolo di oggi consigliandovi, prima di eseguire qualsiasi operazione, di salvare il file cambiandogli però l’estensione ( utilizzando l’opzione “Salva con nome” di Excel) per renderlo al 100% un file .xls con cui da ora in avanti lavorerete.

 

Buon Lavoro 🙂