Supporto volontario e collaborativo per Joomla!® in italiano

Recupero dati utente da sessione joomla

Codice In questo articolo viene descritto un modo molto semplice per recuperare le informazioni essenziali dalla variabile di sessione corrente in Joomla 1.5.
In particolare viene usata la classe JFactory e il metodo getUser ampiamente documentati sul sito di riferimento: docs.joomla.org/JFactory.



Questo il codice PHP completo:




 
<?php>
define( '_JEXEC', 1 );
define( '_VALID_MOS', 1 );
// if you app is placed into a subfolder in Joomla root, the path will look like dirname(__FILE__) . '/..'
define( 'JPATH_BASE', realpath(dirname(__FILE__) .'/' ) );// eventualmente indicare il percorso della root di joomla
define( 'DS', DIRECTORY_SEPARATOR );
 
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
 
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
 
$user =& JFactory::getUser();
// RECUPERO lo username dell'utente e inizializzo la variabile $utente
$utente = $user->username;//
 
$testo = "E' stato richiesto il test";
 
$messaggio ="Messaggio inviato da $utente";
$messaggio .= "\n";
 
$messaggio .= "Testo del messaggio: $testo";
 
$subject = "$nome Richiesta Test";
 
$headers = "From:<Intestazione_mittente_email>\n";
 
$mail_to="Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.";
 
mail($mail_to, $subject, $messaggio, $headers);
echo "<script>";
echo "alert('Richiesta inoltrata correttamente!');";
echo "window.location=\"index.php\";";
echo "</script>";
?>
 
Nell'esempio ho utilizzato solo il metodo $user->username; ma come descritto nella documentazione di riferimento si possono usare anche $user->name; e $user->id; per recuperare il Nome reale e l'ID del database.La mia necessità era quella di creare un pulsante che una volta premuto invia una email contenente i dati dell'utente connesso al sito. In particolare l'ho usato per creare un bottone di richiesta di invio di un test a seguito della conclusione di un corso online che ho inserito nel sito.


CommentaCommenta questo articolo sul forum