Joomla.it Forum

Non solo Joomla... => Sviluppo => : dacdam 05 Mar 2010, 17:13:33

: Reperire i parametri associati ad una voce di menų
: dacdam 05 Mar 2010, 17:13:33
Vorrei reperire un parametro che ho associato ad una voce di menų...
Questo il codice che ho usato e che, naturalmente, non funziona:
:
$menus = &JSite::getMenu();
$menu  = $menus->getActive();
$itemid = $menu->id;
$params =& $menus->getParams($itemid);
$destinatario = $params->get('infoEmail', '');

Ho eseguito alcuni dump sulle variabili:
- La variabile $menus č valorizzata correttamente, contiene il mio punto di menų il quale ha l'attributo "_active".
- La variabile $menu risulta NULL.... da lė in poi naturalmente anche le seguenti non si valorizzano correttamente.

Qualcuno sā dirmi come si fā ?

Ciao!
: Re:Reperire i parametri associati ad una voce di menų
: mau_develop 05 Mar 2010, 18:46:33
si ma "reperire" dove? sei all'interno di cosa? plugin, modulo, componente, template?

dove l'hai impostato il parametro?

M.
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 06 Mar 2010, 18:44:35
Si tratta di un parametro impostato nel componente al momento della creazione del punto di menų a cui č collegato.
Il reperimento lo faccio all'interno del componente stesso in una routine che serve ad inviare una mail.
: Re:Reperire i parametri associati ad una voce di menų
: mmleoni 07 Mar 2010, 17:57:04
ciao dacdam,
io la scriverei cosė:

:
$menus = &JSite::getMenu();
$params =& $menus->getParams( JRequest::getVar('Itemid'));
$destinatario = $params->get('infoEmail', '');     

ciao,
marco
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 08 Mar 2010, 14:05:55
Ma tra le variabili get e post non ho 'Itemid'....
In effetti, se faccio il dump di
:
JRequest::getVar('Itemid') ottengo un NULL...

Dici che devo aggiungerlo ai parametri della chiamata ? Ma cosė avrei ancora il problema di reperire il menų attivo nella pagina precedente...
: Re:Reperire i parametri associati ad una voce di menų
: mmleoni 08 Mar 2010, 14:36:34
itemid č ricostruito dal framework, il fatto che tu non lo abbia e che tu non riesca ad accedere alla voce attiva con getActive, mi fa pensare ad un errore nel menų o nel routing: hai riscritto il router? prova a disabilitare il sef e vedi se funziona.

ciao,
marco
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 08 Mar 2010, 16:15:27
Ok adesso funziona....
Perō non sō come fare un'altra cosa: ho creato un modulo che richiama lo stesso componente. A questo punto perō non ho un punto di menų corrente, o per lo meno non č detto che sia lo stesso a cui č collegato il componente. Come si fā in quel caso a reperire il parametro dalla configurazione ?

Ciao.
: Re:Reperire i parametri associati ad una voce di menų
: mmleoni 08 Mar 2010, 17:34:45
Ok adesso funziona....
ma come: disabilitando il sef? allora non č una soluzione, in altro modo? spiega per gli altri utenti.

... ho creato un modulo che richiama lo stesso componente ...

usa i parametri del modulo.  ;D

ciao,
marco
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 08 Mar 2010, 17:49:34
Per quanto riguarda il reperimento dei parametri del componente invece... altra scemata: facevo la getVar per 'itemid' invece di 'Itemid', avevo sorvolato per non coprirmi di ridicolo  ::)

Per quanto riguarda i parametri del modulo invece non capisco come possa funzionare: provo a spiegarti meglio.
Il componente in questione č una galleria per una concessionaria. C'č una lista dei veicoli da cui puoi accedere alla visualizzazione dei dettagli del singolo veicolo da cui puoi accedere al form di richiesta info.
Il modulo semplicemente mostra dei veicoli random con il link alla pagina dei dettagli. A quel punto ormai si č nel componente e, cliccando sul link al form per richiesta info il componente cerca di reperire l'indirizzo a cui spedire la richiesta dai suoi parametri, ma non č possibile perchč, arrivando dal modulo, non č detto che il punto di menų attivo sia quello del componente stesso.... lo sō, a spiegarlo č un casino... ma non č niente di particolare.

Ciao.

Ciao e grazie.
: Re:Reperire i parametri associati ad una voce di menų
: mmleoni 08 Mar 2010, 21:17:36
... a spiegarlo č un casino...

ed infatti non ci ho capito nulla...   ??? ???

stai dicendo che nel menų ci sono pių link a differenti sezioni del componente e che dal modulo non sai quale linkare?

reperisce l'indirizzo a cui spedire la richiesta dai suoi parametri?? quale indirizzo? quale parametri? non mi vorrai dire che hai le mail inserite nell'url e magari in chiaro sulla pagina?  :o

che ne dici di passare l'id della tabella del veicolo e da quello risalire a tutte le info?

ciao,
marco
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 09 Mar 2010, 09:35:28
No, nessun indirizzo in chiaro nč passato via url...

Il componente ha un form di inserimento del messaggio da spedire alla concessionaria, ed routine che, tramite
:
$menus->getParams reperisce l'indirizzo a cui spedire la mail e poi la invia.... il modulo ha un link al componente verso la pagina col form di inserimento del messaggio. Tutto qui.

Prova ad immaginare il flusso quando un visitatore del sito clicca sul link nel modulo...
: Re:Reperire i parametri associati ad una voce di menų
: mau_develop 09 Mar 2010, 10:04:14
Il modulo semplicemente mostra dei veicoli random con il link alla pagina dei dettagli. A quel punto ormai si č nel componente e, cliccando sul link al form per richiesta info il componente cerca di reperire l'indirizzo a cui spedire la richiesta dai suoi parametri, ma non č possibile perchč, arrivando dal modulo, non č detto che il punto di menų attivo sia quello del componente stesso
------------------------------------------------------------
Questo dovrebbe farlo il modulo con una view diversa, che mostri il form

M.
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 09 Mar 2010, 10:47:16
Perfetto mau_develop, hai colto nel segno.

Allora non c'č rimedio ?

L'unica soluzione che mi viene in mente č iterare nei menų del sito alla ricerca di uno che sia legato al componente, poi reperire da quell'itemid le opzioni.... perō cosa metto a fare l'indirizzo nei parametri se poi lo reperisco da un menų a caso ? Tanto vale che questo indirizzo lo cablo nel codice del componente.... e per ora sto facendo cosė.
: Re:Reperire i parametri associati ad una voce di menų
: mau_develop 09 Mar 2010, 11:43:30
non capisco perchč continui a parlare di componente, lascialo perdere, se ti serve non č per qs cosa.

Il modulo ha una view che mostra il form e dei metodi che ne gestiscono il check e l'upload o l'invio o quello che vuoi.

Il componente andrā a pescarsi i dati dal db, a meno che non ti servano metodi o espansioni di classi che hai costruito nel componente e che obbligatoriamente devono stare lė, magari perchč usate anche dal backend,... ma guarda che Marco č molto pių bravo di me, ... nn so se approva la mia logica,... sentiamo :)

M.
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 09 Mar 2010, 13:46:06
Forse il fulcro del discorso č che non ho implementato una view con il form per il modulo... il modulo ha una sola view che emette un riquadro con alcuni dettagli del veicolo + un link alla view del componente che mostra i dettagli per esteso, foto ed il famigerato link alla view (sempre del componente) con il form di richiesta informazioni.
Provo a mettere in allegato uno schema che rappresenti meglio la situazione

[allegato vecchio pių di un anno eliminato automaticamente]
: Re:Reperire i parametri associati ad una voce di menų
: mmleoni 09 Mar 2010, 15:56:19
... ma guarda che Marco č molto pių bravo di me...

ehhh, esssaggerato  ;D ;D ;D ;D

fammi capire dacdam,

1.
hai un componente che visualizza macchine e permette di inviare una richiesta di informazioni. si tratta di un unico componente o di due componenti?

2.
gli indirizzi cui inviare la richiesta variano a seconda del veicolo scelto? se sė allora dall'id del veicolo DEVI poter risalire al destinatario. altrimenti ti basta leggere i parametri del componente (vedi http://docs.joomla.org/Component_parameters) o quelli di qualsiasi voce di menų (vedi quanto giā detto).

3.
per il modulo che visualizza le macchine e linka al componente usa JHTML::_('link',...) per creare il link al componente e passagli lo id della macchina a questo punto sei al punto 2.

mi hai fatto venire mal di testa ;)

ciao,
marco
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 09 Mar 2010, 16:30:31
L'indirizzo č uno solo ed č scritto nei parametri del componente, che č uno solo e gestisce dalla lista alla richiesta di info. Nel processo attraverso il componente non ci sono problemi, come mi avete detto becco l'id dalla richiesta ed accedo ai parametri.
Ma passando dal modulo (come hai descritto al punto 3), come prendo i parametri ? L'Itemid non č affidabile: il modulo č visualizzato in tutti i menų!
: Re:Reperire i parametri associati ad una voce di menų
: mmleoni 10 Mar 2010, 09:59:14
 ??? ???
mi spiace, ma io rinuncio a capire che vuoi fare....

ma e che ti servono i parametri del componente nel modulo??

secondo me stai sbagliando il progetto...

ciao,
marco
: Re:Reperire i parametri associati ad una voce di menų
: dacdam 10 Mar 2010, 12:22:04
Ok, non preoccuparti. Per il momento ho trovato una soluzione momentanea, ci penserō pių avanti.

Comunque, solo per chiarezza, vorrei precisare che non voglio che il modulo legga i parametri del componente (giā dal primo intervento ho notato che tu la pensi cosė).... anche a me quella sembrerebbe una castroneria! Qui si tratta del fatto che il componente viene richiamato dall'esterno (in questo caso il mio modulo) e quindi il punto di menų attivo non č quello dove sono reperibili i suoi parametri.
Secondo me aveva capito bene mau_develop:
Il modulo semplicemente mostra dei veicoli random con il link alla pagina dei dettagli. A quel punto ormai si č nel componente e, cliccando sul link al form per richiesta info il componente cerca di reperire l'indirizzo a cui spedire la richiesta dai suoi parametri, ma non č possibile perchč, arrivando dal modulo, non č detto che il punto di menų attivo sia quello del componente stesso

Ad ogni modo grazie mille per l'aiuto, sei stato fin troppo paziente.