Back to top

Autore Topic: [RISOLTO] Problema con JRoute  (Letto 3339 volte)

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
[RISOLTO] Problema con JRoute
« il: 30 Mag 2010, 11:47:55 »
In un componente che ho chiamato "wsblog" Con questa istruzione:
Codice: [Seleziona]
$linkCrea = JRoute::_('index.php?option='.$option.'&task=crea');Ottengo querto URL:
Citazione
/index.php/component/wsblog/crea
Con quel "component" di mezzo le cose non funzionano....

Il problema ce l'ho solo se la pagina è impostata come predefinita del sito e se ho attivato i friendly url nel pannello di amministrazione.

Ho un router.php, ma anche provando a toglierlo le cose non cambiano....

Come mai mi aggiunge quel "component" ???
« Ultima modifica: 03 Giu 2010, 11:30:25 da dacdam »

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
Re:Problema con JRoute
« Risposta #1 il: 30 Mag 2010, 12:01:32 »
Mi sono accorto che, per la pagina principale, nell'url non compare l'itemid... può essere per quello ?

Offline dacdam

  • Esploratore
  • **
  • Post: 183
  • Sesso: Maschio
    • Mostra profilo
Re:Problema con JRoute
« Risposta #2 il: 30 Mag 2010, 20:27:08 »
Altre osservazioni: il componente richiamato come pagina iniziale ha più view ed ho notato che, navigando da una all'altra di queste, lo stato del menù attivo non viene impostato correttamente. Per intenderci: nessuna delle voci del menù viene evidanziata come corrente.
Ho provato ad aggiungere
Codice: [Seleziona]
&Itemid=2 (2 è l'id della voce che è impostata come principale del sito) all'url ed ho notato che la voce corrente viene impostata correttamente....

Non è che questa mancata gestione dell'itemid è la causa del problema per cui ho aperto il post ?
Qualcuno sà dirmi come fare passare l'itemid quando si accede alla pagina principale del sito ?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con JRoute
« Risposta #3 il: 31 Mag 2010, 21:26:56 »
ciao,
Itemid e option sono sempre definiti all'interno del framework.

semmai prova con

global $Itemid, $option

prima di usarli.

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:Problema con JRoute
« Risposta #4 il: 01 Giu 2010, 12:29:04 »
Non riesco comunque a farlo funzionare.

Ecco cosa ho fatto:
1- Ho dichiarato global $Itemid e, con un var_dump, ho controllato che fosse valorizzata correttamente. Tutto ok: anche per l'home page (dove nell'indirizzo non compare Itemid) assume il valore corretto in base all'id del punto di menù.

2- Ho settato il suo valore nella request:
Codice: [Seleziona]
JRequest::set(array('Itemid'=>$Itemid));
Ciononostante, usando JRoute per valorizzare i link alle altre view del componente, non mette &Itemid nell'url generato.... con i conseguenti problemi per cui ho postato...

Non capisco dove JRoute vada a reperire il valore di Itemid e come decida di inserirlo negli url generati.

Forse conviene che apro la classe JRoute  e mi metto a cercare...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con JRoute
« Risposta #5 il: 01 Giu 2010, 14:20:21 »
tornando al primo post... perché mi sa che ti stai allontanando dal problema.

verifica che anche $option sia valorizzato, mi sa che il problema è qui.

non mi pare che proprio che sia necessario passare $Itemid a JRoute::_(), dovrebbe provvedere lui ad inserirlo (se il sef non è attivo).

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:Problema con JRoute
« Risposta #6 il: 01 Giu 2010, 14:49:18 »
In effetti il problema si presenta solo con il SEF attivo.
Ho fatto un dump di $option ed ho visto che è a posto.
Il fatto è che aggiungendo
Codice: [Seleziona]
?Itemid=2 all'indirizzo della home, le cose cominciano a funzionare, per quello sono convinto che il problema stia lì...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con JRoute
« Risposta #7 il: 01 Giu 2010, 16:46:52 »
no intendevo dire che se Itemid viene aggiunto automaticamente da JRoute solo ne non c'è il sef attivo, altrimenti non serve.

mi viene un dubbio: controlla nella tabella dei menù che non ci siano due voci con lo stesso alias.

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:Problema con JRoute
« Risposta #8 il: 03 Giu 2010, 10:18:34 »
Ho scoperto. Avevo un errore nel router: nel parsing della route analizzavo l'array segments a partire dall'elemento 1 invece che dallo 0. Ora tutto funziona.
Nel primo posto ho scritto che avevo provato a toglierlo (sono ancora convintissimo di avere fatto questa prova) ma è evidente che ho fatto qualche cacchiata e così abbiamo perso un sacco di tempo per niente  :-[

Mi resta un dubbio però..... perchè l'url generato
Citazione
/index.php/component/wsblog/crea
contiene l'elemento "component" ? Nei casi diversi dalla home page l'url generato contiene semplicemente il titolo del punto di menù.... nella home invece mi mette il nome del componente... non riesco a capire.

Grazie mille per l'aiuto.


Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con JRoute
« Risposta #9 il: 03 Giu 2010, 11:22:37 »
ricordati il [RISOLTO] nel titolo del post di apertura del topic!

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

 



Web Design Bolzano Kreatif