Back to top

Autore Topic: passaggio parametri tra componenti  (Letto 2629 volte)

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
passaggio parametri tra componenti
« il: 03 Dic 2006, 18:47:53 »
Solo da poco tempo mi sto dedicando a joomla e la cosa mi sta appassionando parecchio. Chiaramente mi si stanno presentando parecchi problemini, alcuni li ho risolti da solo (quelli proprio banali), altri con l'aiuto di questa meravigliosa comunità.
Ora ho un problema che non riesco proprio a risolvere e non so proprio da dove iniziare, esso è il seguente:
Ho inserito nel menù "othermenu" 4 voci di menu che corrispondono a 4 semplicissime componenti sviluppate da me, li chiamiamo com1, com2, com3 e com4.
Ho sviluppato inoltre un'ulteriore componente (che chiamiamo com5) perfettamente funzionante che fa una ricerca di articoli su un db mysql. Le componenti com1, com2 com3 e com4 devono richiamare com5 per selezionare degli articoli, solamente che com5 deve sapere quale componente (o voce di menù) lo ha richiamato per comportarsi di conseguenza. La domanda è la seguente:
1) c'è la possibilità di passare un parametro da un componete ad un'altro (o da una voce di menu ad una componete)? per es. passare un parametro da com1 a com5 o da com3 a com5.
2) se volessi poi chiudere com5 come faccio a ritornare a com1?
Spero di essere stato chiaro nel porre il problema.
Se qualcuno mi può dare una indicazione vi sarei molto grato.
saluti a tutti Frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #1 il: 03 Dic 2006, 18:55:55 »
Per passare un parametro ad uno script è sufficiente utilizzare i normali meccanismi di GET o POST.
Trattandosi di voci di menu dovrai usare GET.
Quindi richiamerai com5 passandogli tutti i parametri che gli servono; qualcosa del tipo:
index.php?option=com_com5&referer=com2&var1=xxx&var2=yyy

All'interno di com5 li reperirai mediante la funzione mosGetParam().


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #2 il: 03 Dic 2006, 19:11:10 »
Ti ringrazio per il suggerimento.
Per ritornare poi da com5 alla componente chiamante ( x es. com1) immagino devo passargli il nome della com1 cioè index.php?option=com_com1        vero? oppure c'è un modo per passare al modulo precedente cliccando su un tasto (come per es il tasto torna indietro di firefox) ?
Quando lancio una voce di menù nella barra degli indirizzi compare in fondo un numero (itemid=55) index.php?option=com_5&Itemid=55 è importante? lo devo passare?
grazie frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #3 il: 03 Dic 2006, 19:22:07 »
Per ritornare poi da com5 alla componente chiamante ( x es. com1) immagino devo passargli il nome della com1 cioè index.php?option=com_com1        vero?

Sì, devi dirgli dove tornare.
Potresti anche usare il referer HTTP ma non sempre funziona come vorresti.

Citazione
Quando lancio una voce di menù nella barra degli indirizzi compare in fondo un numero (itemid=55) index.php?option=com_5&Itemid=55 è importante? lo devo passare?

Itemid è legato ad ogni singola voce di menu.
L'ideale sarebbe ricavare dinamicamente l'itemid del com5 e passarglielo.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #4 il: 03 Dic 2006, 19:29:11 »
Scusa la mia ignoranza ma come si ricava dinamicamente l'itemid di un componente per passarlo ?
grazie frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #5 il: 03 Dic 2006, 19:45:35 »
Scusa la mia ignoranza ma come si ricava dinamicamente l'itemid di un componente per passarlo ?

Con una query al DB.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #6 il: 04 Dic 2006, 17:20:05 »
Scusami, ma sto impazzendo su come reperire l'itemid di un componente. Quale query devo fare?
Inoltre esiste una funzione di joomla che mi ritorni l'indirizzo del componente in esecuzione? (es. http://localhost/joomla/index.php?option=com_prova1&Itemid=55)

e l'indirizzo di chi ha lanciato il componente? (es. http://localhost/joomla/index.php?option=com_prova0&Itemid=50
o http://localhost/joomla/index.php)

Per la funzione MosGetParam esiste da qualche parte documentazione  da cui si capisca quali sono i parametri che devono essere passati e i relativi risultati ottenuti?

Capisco che sono parecchie le domande che pongo, però essendo ancora novello non so ancora come muovermi.
Scusami Frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #7 il: 04 Dic 2006, 17:28:23 »
Inoltre esiste una funzione di joomla che mi ritorni l'indirizzo del componente in esecuzione? (es. http://localhost/joomla/index.php?option=com_prova1&Itemid=55)

Nessuna funzione.
Il nome del componente sta nella variabile di sistema $option.

Citazione
e l'indirizzo di chi ha lanciato il componente? (es. http://localhost/joomla/index.php?option=com_prova0&Itemid=50
o http://localhost/joomla/index.php)

Per questo mi sa che ti devi portare dietro un parametro.

Citazione
Per la funzione MosGetParam esiste da qualche parte documentazione  da cui si capisca quali sono i parametri che devono essere passati e i relativi risultati ottenuti?

mixed mosGetParam(array &$arr, string $name [, mixed $default=null [, int $mask=0 ]]);

  • $arr rappresenta l'array da cui ricavare le informazioni; può essere un array qualsiasi, ma solitamente vengono usati gli array superglobali come $_POST, $_GET, ...
  • $name è il nome del parametro da recuperare
  • $default rappresenta il valore di default da restituire nel caso in cui il parametro $name non esistesse nell'array $arr; se viene omesso, il valore è null
  • $mask è un parametro opzionale che può assumere alcuni valori; lascialo a 0


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: passaggio parametri tra componenti
« Risposta #8 il: 04 Dic 2006, 17:59:53 »
Ti ringrazio, sei stato molto chiaro come di solito.
Alla prossima, saluti Frank

 



Web Design Bolzano Kreatif