giovedì 30 dicembre 2010

rendere disponibili i parametri di configurazione di Joomla! in altri script

Il problema

Talvolta può essere utile condividere i parametri del file di configurazione di Joomla! in altri script. Il caso più frequente può essere quello di connettersi tramite uno script esterno al database usato da Joomla!

Soluzione

Nel file di configurazione di Joomla! (configuration.php) è presente la classe JConfig a cui vengono assegnate varie proprietà, lo apriamo

class JConfig {
var $generator_tag = '';
[ ... altre proprietà ... ]
var $offline_message = 'Sito fuori servizio per manutenzione. Riprovare più tardi.';
}

Per renderle disponibile in uno script esterno non dobbiamo fare altro che includere il file configuration.php

require_once('configuration.php');

poi possiamo instanziare la classe:

$config=new JConfig();

Creiamo la connessione passando come parametri le proprietà host, user e password

$connessione=mysql_connect($config->host, $config->user, $config->password);


Selezioniamo il database passando come parametro la proprietà db:


$gStr_connessione = mysql_select_db($config->db);

A questo punto possiamo creare la stringa della query, ma ricordandoci di includere il prefisso del DB davanti alle tabelle:

$dbprefix=$config->dbprefix;

$sql="SELECT `".$dbprefix."vm_product`.*,`".$dbprefix."vm_product_category_xref`.* FROM `".$dbprefix."vm_product`, `".$dbprefix."vm_product_category_xref` WHERE (".
$dbprefix."vm_product.product_id=".$dbprefix."vm_product_category_xref.product_id) AND ".$dbprefix."vm_product_category_xref.category_id=3;";

A questo punto possiamo eseguire la query...

$result_settore=mysql_query($sql, $connessione);

... e proseguire con lo script utilizzandolo per le nostre esigenze.