Back to top

Autore Topic: JFactory::getUser() all'interno di un file componente di amministrazione  (Letto 11422 volte)

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Ciao.
Ho bisogno di determinare l'id di un utente online nel sito in un file php di un componente.
Questo file si trova nella cartella administrator e gestisce i salvataggi dei file.

Ho provato con:

$utente = JFactory::getUser(); // in base utente collegato
$utenteusername = $utente->get('username');
$utenteid = $utente->get('id');

inserendo questo codice all'interno del file php che salva i file ma purtroppo non funziona.
in altri file php del mio template funziona benissimo ma in questo file lato amministrativo no.
Come posso fare??  :o :(





Offline sudoku

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4077
  • Sesso: Maschio
  • Non serve essere alti. basta essere all'altezza
    • Mostra profilo
domanda ignorante: a che ti serve?
Joomla non è una soluzione, é un metodo
http://www.BreezingTest.altervista.org

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Perché voglio impostare il salvataggio di un file in una cartella che Contiene l id dell utente collegato.
Senza quella variabile non funzionano bene le modifiche che ho fatto al componente.
Qualche soluzione??

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
nessuno può aiutarmi?

 :( :( :(

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Non è che sia molto chiaro quello che hai fatto.

Hai sviluppato un componente?
Questo file php che ti dovrebbe salvare dove si trova di preciso? Come lo richiami?

Perche parli di componente e poi di template?

Le tre righe che hai scritto sono giuste, ma dipendono dal contesto in cui si trovano
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Il componente non é stato creato da me. Si tratta di un componente per annunci.
Il file.in questione si trova nella cartella administrator e viene richiamato per il salvataggio delle info.
Li io voglio inserire quella variabile in base all utente collegato ma non funziona.

Con template volevo indicare che quell codice funziona su tutti i file dove l ho provato ma non su quel file importante.
Devo inserire altro codice per farlo funzionare??

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Si ok, come viene richiamato?

ha provato a mettere un echo sui dati e poi un die per vedere se viene realmente eseguito.

Puo anche essere che sei uscito da joomla e sia un php  a se.

Come ti ho gia detto in un contesto adeguato quelle 3 righe sono giuste, ma non è che solo quelle ti fanno tutto. Dopo c'e da salvare i dati e quelli non si sa come li salva

E' come cercare un ago in un pagliaio per un'altro utente. Ma parti dal presupposto che il problema non sta in quelle 3 righe
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Cerco di spiegare meglio.

Il componente è ads manager. L'utente entra nel sito, inserisce i dati e conferma.
Viene attivato il file contents.php che si trova dentro la cartella administrator. Questo file gestisce i salvataggi in base alla tipologia di input. Per le immagini il percorso dovrebbe essere legato in base all'utente online nel portale che ha inserito l'annuncio.
Attualmente la variabil per il salvataggio è l'user id salvato dal componente nel database; questo funziona bene ma solo se l'utente va a modificare l'annuncio, perchè se lo crea da zero naturalmente l'id utente salvato nel database non esiste.
Io vorrei invece sostituire quella variabile con l'utente collegato, così da farlo funzionare praticamente sempre.

C'è qualche soluzione?  :(


Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
non ho mai usato questo componente, ma l'ho scricato ed usa il mvc bene, prova a guardarti il file content.php nella cartella tables nell'admin, sicuramente troverai li dove andare amodificare
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Si il file l ho modificato ma non riconosce quelle 3 righe di codice importanti per l id user collegato.
Non so proprio cone risolvere.

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Che funzione hai modificato e come
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
$utente = JFactory::getUser(); // in base utente collegato
$utenteusername = $utente->get('username');
$utenteid = $utente->get('id');

[...]in altri file php del mio template funziona benissimo ma in questo file lato amministrativo no.
Funziona davvero?


Io di solito uso:
Codice: [Seleziona]
$utente = JFactory::getUser();
   echo 'ID  : ' . $utente->id . '<br />';
  echo 'User name: ' . $utente->username . '<br />';
  echo 'Nome: ' . $utente->name . '<br />';

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Certo che funziona, ed è anche l'approccio migliore, evita che si generino errori nell'accedere a proprieta che non esistono.

Deriva da JObject

Codice: [Seleziona]
public function get($property, $default = null)
    {
        if (isset($this->$property))
        {
            return $this->$property;
        }
        return $default;
}

Ed è la stessa cosa di fare $utente->username ecc
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Ho provato ad inserire anche la seconda variante, $utente->id,  ma purtroppo non funziona.
Aiuto..  :(

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
come ti ha suggerito simone83:

$utente = JFactory::getUser();
print_r($utente);
die();

e vedi che cosa succede, se non succede niente è facile che il codice non sia eseguito.

ciao

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

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Putroppo non va.
Ho definito $utente = JFactory::getUser();

e nel percorso per il salvataggio del file print_r($utente);

Ma no va..

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
se il die() non blocca l'esecuzione del programma vuol dire che il flusso non passa da lì....
non è che per caso sai usare un debugger?
ciao

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

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Se inserisco il die mi genera un errore nella fase di salvataggio.
Per questo l ho tolto ma.non va purtroppo...

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
il die non ti genera di certo errore ti blocca solo l'esecuzione. Se te la blocca e vedi che c'e un errore nel salvataggio all'ora hai gia ottenuto qualcosa vuol dire che hai sbagliato ma purtroppo noi ti possiamo aiutare fino ad un certo punto
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lucsound

  • Esploratore
  • **
  • Post: 106
    • Mostra profilo
Mi blocca l esecuzione. Credo che non risolverò mai

 



Web Design Bolzano Kreatif