Joomla.it Forum
Non solo Joomla... => Sviluppo => : franklg 03 Dec 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
-
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().
-
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
-
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.
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.
-
Scusa la mia ignoranza ma come si ricava dinamicamente l'itemid di un componente per passarlo ?
grazie frank
-
Scusa la mia ignoranza ma come si ricava dinamicamente l'itemid di un componente per passarlo ?
Con una query al DB.
-
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
-
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.
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.
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
-
Ti ringrazio, sei stato molto chiaro come di solito.
Alla prossima, saluti Frank