Back to top

Autore Topic: ottenere id utente loggato nel wrapper  (Letto 6955 volte)

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
ottenere id utente loggato nel wrapper
« il: 24 Mag 2010, 20:21:24 »
Salve
Ho utilizzato uno wrapper per includere uno script php che avevo già fatto.
Il problema è che mi servirebbe ottenere l'id dell'utente loggato in joomla.
Potete dirmi precisamente come fare?

In rete ho trovato questo:
Codice: [Seleziona]
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();

purtroppo non trova alcuni file e dà errore...

forse è un errore di posizione dei vari file:
lo script già pronto si trova nella cartella principale (http://www...../script.php); Joomla è invece installato nella propria directory (http://www...../Joomla/).

come devo modificare il codice? Grazie

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #1 il: 24 Mag 2010, 20:22:43 »
modificato:

lo script lavora in ambiente joomla?

« Ultima modifica: 24 Mag 2010, 20:24:56 da 56francesco »
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #2 il: 24 Mag 2010, 21:42:35 »
ciao spider80,
 istanziare due volte il framework di joomla non è una buona idea, dato che usi il doppio delle risorse realmente necessarie. scrivi solo lo scheletro di un componente che includa il tuo script.
essendo questo componente minimale comunque attivato da joomla, al suo interno avrai accesso a tutte le variabili, poi decidi tu se includere lo script con un require (variabili nel namespace locale) od un iframe (variabili passate in url).

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #3 il: 25 Mag 2010, 11:55:13 »
Grazie per la risposta

Ho fatto lo scheletro del componente utilizzando un generatore automatico di componenti, solo che mi trovo un po in difficoltà nel capire dove copiare il codice dello script.

Io ho posizionato il codice in 'administrator->components->com_mycomp->mycomp.php'.
E' giusto?

Mi dà questo errore sulla classe Factory

Fatal error: main() [function.require]: Failed opening required 'libraries/joomla/factory.php' (include_path='.:') in /membri/.....

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #4 il: 25 Mag 2010, 11:57:07 »
@56francesco : No, lo script si trova in un altra directory separata da Joomla

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #5 il: 25 Mag 2010, 12:05:01 »
il codice va in

/components/com_mycomp/mycomp.php

ovvero nel front-end, il back end sostanzialmente non ti serve.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #6 il: 25 Mag 2010, 12:23:32 »
Sì hai ragione, pian piano c'ero quasi arrivato.
Mi dà questo errore

Fatal error: Cannot redeclare class jfactory

ho copiato il codice dello script in coda a mycomp.php, utlizzando il codice che ho postato all'inizio per ottenere l'id

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #7 il: 25 Mag 2010, 12:32:43 »
ora sei all'interno del framework, quindi non devi usare nessuna inclusione o nuova istanziazione:

$user = &JFactory::getUser();

dovrebbe, dipende da che hai scritto, essere tutto ciò che ti serve.

ps: ricordati che $user è una classe e non uno scalare.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #8 il: 25 Mag 2010, 13:06:03 »
ci sono quasi.
Funziona , ma non riesce a trovare tutti gli altri moduli (menu, etc). Cosa ho sbagliato?

Grazie ancora per la pazienza.....  ::)
« Ultima modifica: 25 Mag 2010, 16:02:13 da spider80 »

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #9 il: 25 Mag 2010, 18:45:17 »
Non riesco proprio a capire quale possa essere il motivo.
La componente che ho creato funziona, ma non riesce a vedere tutti gli altri moduli (in particolare i menu).
Al loro posto stampa il classico messaggio di errore in rosso con il simbolo di divieto d'accesso:



        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:
        * Errore nel caricamento dei Moduli:




A nessuno è mai capitato?


Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #10 il: 25 Mag 2010, 23:16:13 »
Funziona , ma non riesce a trovare tutti gli altri moduli (menu, etc).

chi non trova cosa? ma che stai facendo?

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #11 il: 26 Mag 2010, 00:40:17 »
chi non trova cosa? ma che stai facendo?

ciao
Provo a spiegarmi meglio

Tutti i moduli della pagina (2 menu e un form login) non vengono caricati.

Ho installato il mio componente e l'ho collegato ad una voce di un menu.
Cliccandoci, si apre una pagina che esegue correttamente il mio script , ma che non visualizza i menu laterali ed il form login ,stampando i messaggi di errore
« Ultima modifica: 26 Mag 2010, 00:58:45 da spider80 »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #12 il: 26 Mag 2010, 22:01:00 »
come hai incluso il file?
comunque a questo punto è difficile capire che tu abbia fatto.

ciao.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline spider80

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #13 il: 27 Mag 2010, 20:33:43 »
Ho risolto usando un'altra strada. Sicuramente non è la soluzione più corretta, ma funziona. Magari a qualcun'altro principiante come me può interessare...


Ho incluso il mio script in un modulo anzichè in un componente (mi è sembrato più facile implementarlo), pubblicandolo in una nuova posizione che ho chiamato 'centrale'.

Poi ho collegato il modulo ad un articolo, scrivendo nell'articolo :
{loadposition centrale}

In questo modo si può recuperare facilmente l'id con:
$user =& JFactory::getUser();

@mmleoni : Grazie lo stesso per l'aiuto!
 
« Ultima modifica: 27 Mag 2010, 20:36:55 da spider80 »

Offline keyascii

  • Appassionato
  • ***
  • Post: 495
  • Sesso: Maschio
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #14 il: 20 Set 2010, 15:58:35 »
Scusate, a me servirebbe qualcosa di simile, cioè, ho bisogno anche io dell'ID utente al momento connesso ma attraverso uno script esterno che integro con wrapper.
La cosa mi serve urgentissimamente per cui, in attesa di creare un componente ad hoc, dovrei far partire una applicazione in questo modo ortodosso.
Qualcuno può aiutarmi?
Se io e te abbiamo una cosa e ce la scambiamo, io e te abbiamo ancora una cosa, ma se io e te abbiamo un'idea e ce la scambiamo, tu hai 2 idee e io ho due idee!

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #15 il: 21 Set 2010, 01:22:50 »
@keyascii
ciao,
apri un altro post e spiega esattamente il tuo problema...
ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline keyascii

  • Appassionato
  • ***
  • Post: 495
  • Sesso: Maschio
    • Mostra profilo
Re:ottenere id utente loggato nel wrapper
« Risposta #16 il: 21 Set 2010, 10:29:33 »
ok fatto.
Speriamo che mi rispondono visto che esiste un post (questo) simile.
Se io e te abbiamo una cosa e ce la scambiamo, io e te abbiamo ancora una cosa, ma se io e te abbiamo un'idea e ce la scambiamo, tu hai 2 idee e io ho due idee!

 



Web Design Bolzano Kreatif