Joomla.it Forum
Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => : giancarlo75 19 Mar 2010, 14:17:12
-
Cerco un sistema per riconoscere se l'utente è loggato o meno e nel caso in cui sia loggato avere il suo id.
Ho cercato un po' tra i file di Joomla e siccome ho installato K2, sono arrivato ad una soluzione che funziona perchè tale componente è installato. Però cercando tra il codice del modulo login di Joomla non ho trovato nulla di apparentemente utile (ovviamente ho provato diverse soluzioni ma senza successo).
Il codice che funziona col login di K2 è il seguente:
<?php
$user = &JFactory::getUser();
if ($user->id) {
echo "loggato ".$user->id;
} else {
echo "non loggato";
}
?>
però vorrei un controllo indipendente dall'installazione di K2.
-
E dai e dai ho trovato.
<?php
require_once (dirname(__FILE__).DS.'helper.php');
$params->def('greeting', 1);
$type = modLoginHelper::getType();
$return = modLoginHelper::getReturnURL($params, $type);
$user =& JFactory::getUser();
if($type == 'logout') {
echo "loggato ".$user->get('id');
} else {
echo "non loggato";
}
?>
-
Ho anche io la necessità di recuperare l'id dell'utente logato. Credo che il codice utilizzato sia corretto ma ho un problema, la mia index si trova in una sottocartella e credo che sia questo il motivo per cui il codice non funziona.
Io uso apache, nella cartella htdocs ho la cartella di joomla, ora la mia index si trova in joomla/templates/mio_template/index.php.
E' possibile che il codice non funzioni perchè da tale posizione la index non vede la corretta JPATH_BASE? Come potrei modificarlo?
Codice:
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require('libraries/joomla/factory.php');
// initialize the application
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$user =& JFactory::getUser();
$user->get('id');