Joomla.it Forum

Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : FreuxBang 18 Feb 2013, 11:45:59

: Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 18 Feb 2013, 11:45:59
Salve, come posso richiamare la variabile "$user=& JFactory::getUser()" in una normalissima pagina php ? Ovviamente se scrivo questa variabile in una pagina interna di joomla, che sia un articolo o un modulo, funziona tutto bene, ma se provassi a scriverla su una pagina php , cosa dovrei scrivere?.Grazie

: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: shawasp 18 Feb 2013, 12:14:08
non so se può essere d'aiuto

http://www.joomla.it/articoli-della-community/5208-recupero-dati-utente-da-sessione-joomla.html (http://www.joomla.it/articoli-della-community/5208-recupero-dati-utente-da-sessione-joomla.html)
: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 18 Feb 2013, 12:34:13

Ad esempio: voglio stampare il proprio id.

$user = &JFactory::getUser();
$user_id = $user->get('id');
echo $user_id ;


Questo codice funziona all'interno delle pagine di joomla ma non funziona se lo applico su una nuda pagina php. Cosa devo introdurre nel codice, per poter applicare la funzione jFactory anche sulla pagina PHP?



: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: skyline81 18 Feb 2013, 14:40:22
cosa intendi per  "normalissima pagina php"?

: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 18 Feb 2013, 15:12:16

Nel mio sito in joomla tengo all'interno una cartella che contiene a sua volta una pagina in php
In questa pagina ho bisogno di far visualizzare l'id del proprio account.

www.miosito.it/nuovacartella/pagina.php
: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: skyline81 18 Feb 2013, 15:29:12
mi hai reso curioso e così ho provato!  ;D

andando per una deduzione logica ho copiato dall'index.php (il primo file richiamato da J!) la parte della definizione delle variabili e l'inclusione del framework.

successivamente ho aggiunto il pezzo di codice che a te serve (ricavare l'id dell'account)

questo è il mio file

test.php
:
<?php
/**
 *    Test per inclusione Framework Joomla! in script esterni
 *    Risposta al topic su forum.joomla.it
 *
 *    http://forum.joomla.it/index.php/topic,186020.0.html
 *
 *    @author        Dario Skyline81 Formicola
 *    @date        2013-02-18
 *    @version    0.1
 *
 */
 
// Set flag that this is a parent file.
define('_JEXEC'1);
define('DS'DIRECTORY_SEPARATOR);

if (
file_exists(dirname(__FILE__) . '/defines.php')) {
    include_once 
dirname(__FILE__) . '/defines.php';
}

if (!
defined('_JDEFINES')) {
    
define('JPATH_BASE'dirname(__FILE__));
    require_once 
JPATH_BASE.'/includes/defines.php';
}

require_once 
JPATH_BASE.'/includes/framework.php';

$user = &JFactory::getUser();

echo 
$user->id;

?>


l'ho testato e sembra funzionare... ovviamente è solo una base  ;)

EDIT
____

il file test.php l'ho inserito nella directory root... se tu lo inserisci in un altro percorso occhio ai path per le inclusioni
: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 18 Feb 2013, 17:47:09
Grazie, avevo anch'io provato a fare cosi, ma la pagina mi andava in errore, quindi si vede che i riferimenti sono sbagliati.

Devo capire come devo modificare il codice dato che il file in php si trova qui:

www.miosito.it/cartella1/cartella2/index.php (http://www.miosito.it/cartella1/cartella2/index.php)


: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 19 Feb 2013, 00:18:41
Ho risolto modificando la riga
da cosi:
define('JPATH_BASE', dirname(__FILE__));
a cosi:
define('JPATH_BASE', '../../');


Grazie
: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 19 Feb 2013, 00:52:45
Come valore mi da sempre 0.
Anche quando mi loggo

come mai?







: Re:Richiamare variabile $user =& JFactory::getUser(); in una pagina php
: FreuxBang 19 Feb 2013, 01:11:26
Ci sono riuscito, per farlo funzionare ho dovuto scrivere il codice in questa maniera:


:
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define('JPATH_BASE', '../../' );




require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );


$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();


$session =& JFactory::getSession();
$user = $session->get( 'user' );


echo $user->id;

[size=78%]Mentre quello che mi avevi consigliato, mi faceva spuntare soltanto uno 0, anche quando l'utente è loggato.[/size]

[size=78%]Grazie[/size]