Joomla.it Forum

Non solo Joomla... => Sviluppo => : dacdam 25 Feb 2010, 11:58:19

: Modulo e router del componente.
: dacdam 25 Feb 2010, 11:58:19
Questa volta non ho un problema, ho una domanda.
Seguendo una guida ho creato un componente.
Adesso sto creando un modulo seguendo la stessa guida e vedo che nel modulo si fà uso della classe JRoute in una maniera che presuppone l'utilizzo del router del componente...
La mia domanda è: una volta creato un componente con il relativo router, si può usare JRuote in un qualsiasi altro componente/modulo aspettandosi che il link venga elaborato correttamente ?
Spero di essere stato chiaro...
: Re:Modulo e router del componente.
: mmleoni 02 Mar 2010, 08:15:12
bella domanda.
  la risposta penso sia no; penso perché, ai tempi, non avevo trovato documentazione sulla classe e quindi mi ero basato sui routers di joomla.

l'url sef è incomprensibile agli altri componenti, che peraltro difficilmente avrebbero interesse ad usarlo. per quanto riguarda i moduli penso che tu debba istanziare il router del componente cui sono di appoggio e richiamarne il parser.

ciao,
marco
: Re:Modulo e router del componente.
: dacdam 02 Mar 2010, 14:10:40
Boh, strano, perchè io non istanzio il router del componente di appoggio eppure questo codice:
:
JRoute::_('index.php?option=com_autosalone&modello='.trim($veicolo->modello).'&id='.$veicolo->id.'&task=view&start=0');
Mi genera questo link:
:
http://localhost/joomla/index.php/component/autosalone/Mazda%206/view/3?start=0
Sembra proprio che il metodo BuildRoute del router del componente entri in gioco anche se non l'ho istanziato.... mi sembra proprio strano, ma fà così...
: Re:Modulo e router del componente.
: mmleoni 02 Mar 2010, 15:11:12
e no!
non la istanzi perché stai richiamando un metodo statico; ma questo non fa niente se non convertire l'url in un formato sef di cui tu devi però ben conoscere il formato, né più ne meno della sefRelToAbs() di J1.0.

per avere funzionalità avanzate, e soprattutto per avere il parsing dell'url sef, deve esistere il router del componente con i metodi specifici di scrittura e lettura.

dato che router.php, se esistente, è caricato autonomamente dal framework di joomla per il componenente in uso, ecco perché non è immediatamente disponibile nei moduli.

ciao,
marco
: Re:Modulo e router del componente.
: dacdam 02 Mar 2010, 16:46:21
Che l'url generato funzioni, lo capisco: quando viene cliccato attiva il componente e questo fa sì che il framework carichi automaticamente il router. Ma come sia possibile che la generazione dell'url sef avvenga all'interno del modulo proprio mi è oscuro.... ho il dubbio di non aver capito qualcosa della tua risposta  :-[
: Re:Modulo e router del componente.
: mmleoni 02 Mar 2010, 22:14:57
perché, come ti ho detto, funziona esattamente come sefRelToAbs(), anche se usa un formato diverso ed è un po' più 'smart'.
tutte le informazioni che hai nel primo link le hai anche in quello sef! e così è in grado di capire che si tratta di un componente e di quale componente (/component/autosalone/) e di richiamarlo.

ho trovato questo link, non so se lo hai già visto: docs.joomla.org/Routing

ciao,
marco