Back to top

Autore Topic: Modulo e router del componente.  (Letto 2007 volte)

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
Modulo e router del componente.
« il: 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...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Modulo e router del componente.
« Risposta #1 il: 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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
Re:Modulo e router del componente.
« Risposta #2 il: 02 Mar 2010, 14:10:40 »
Boh, strano, perchè io non istanzio il router del componente di appoggio eppure questo codice:
Codice: [Seleziona]
JRoute::_('index.php?option=com_autosalone&modello='.trim($veicolo->modello).'&id='.$veicolo->id.'&task=view&start=0');
Mi genera questo link:
Codice: [Seleziona]
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ì...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Modulo e router del componente.
« Risposta #3 il: 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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
Re:Modulo e router del componente.
« Risposta #4 il: 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  :-[

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Modulo e router del componente.
« Risposta #5 il: 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

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

 



Web Design Bolzano Kreatif