Rieccomi qua dopo un supplemento di testate contro il duro (non trovo la canoninca faccina tra le emoticons). Oggi è tempo di requisitorie. Mi è stato detto dal gentile Odino di creare un array (l'equivalente della "messe-en-place" del cuoco coscienzioso prima di aprire la cucina al pubblico) che verrà poi utilizzato da un metodo d'interrogazione che preleva il dato richiesto da un record di una tabella del database di joomla e lo incolla dentro una pag. di contenuto (es. "echo $row[ID], dove "ID" nel mio caso sarebbe "name").
Ebbene, caro e paziente Odino, un codicetto che facesse al caso mio l'avevo smanazzato così:
<?php
$db = mysql_connect("miohost", "miouser", "miapassword");
mysql_select_db("miodatabase",$db);
$result = mysql_query("SELECT * FROM jos_users",$db);
while($myrow = mysql_fetch_array($result))
{
echo $myrow["name"];
}
?>
Ebbene, questa formuletta stampa l'elenco degli utenti, perciò non è ancora il risultato voluto dato che io vorrei che stampasse il solo utente in linea. Ma questa è una faccenda che si potrebbe risolvere in seguito. Il dato di cui prendere atto è che tale estrazione è scrivibile ed attuabile.
I sorcetti verdi vengono adesso. Dopo essermi sbattuto come una canna esposta ai refoli del burian, ho scoperto l'esistenza di un mambot, addirittura scritto per joomla 1.5, che molto semplicemente è nato per fare ciò sto cercando di fare. E' un plugin e si chiama MjazTools Personalize. Cosa fa? Estrae i campi nome, utente, email, ecc, scritti nella tabella "jos_user" e li stampa a comando dentro qualsiasi contenuto. Questo è il cuore del mambotto:
<?php defined( '_JEXEC' ) or die( 'Restricted access' );
$mainframe->registerEvent( 'onPrepareContent', 'pluginPersonalize' );
function pluginPersonalize( &$row, &$params, $page=0 ) {
// array of tags to convert
$tags = array ( 'username' => '{username}',
'name' => '{name}',
'email' => '{email}',
'usertype' => '{usertype}' );
// load plugin params info
$plugin = & JPluginHelper::getPlugin('content', 'personalize');
$pluginParams = new JParameter( $plugin->params );
// get user info
$user = & JFactory::getUser();
// replace tags with user info if available or with plugin params
foreach ($tags as $key => $tag)
{
$replace = $user->get( $key, $pluginParams->def( $key, '' ) );
$replace =
$row->text = JString::str_ireplace ( $tag, $replace, $row->text );
}
Come ben si può vedere anche qui viene predisposto un array di indirizzo da cui verranno di volta in volta estratti i campi desiderati. Sono a cavallo, mi sono detto. Ma il sogno è durato poco... Cos'era successo? E' successo che questo sapiente mambot è capace di imporsi sugli articoli e, suppongo, su tutti gli altri contenuti previsti nel core di joomla 1.5, ma se ne sbatte altamente dei contenuti scritti nelle licenze di docman che, come tutti sanno, non fa parte del core di joomla, ma si tratta di un componente esterno.
Da qui la mia conclusione - e qui vostro onore termino la mia requisitoria - se io ho perso ore ed ore per cercare di far digerire a joomla del codice php contenuto nei tag "{kl_php}" e "{/kl_php}" sotto gli aruspici del mambot omonimo (kl_php, appunto) forse un motivo c'era. E il motivo è che questi piccoli figli di mambottana non riescono a scrivere dentro le licenze di docman, con mio grande detrimento e angustia. Spero di essere smentito al più presto da una repentina staffilata di codice "punico" da parte del buon Torquemada_Odino, questo lo dico perché la mia fede ha vacillato e temo d'aver ormai smarrito la seconda virtù teologale.