Joomla.it Forum

Non solo Joomla... => Sviluppo => : dacdam 30 May 2010, 11:47:55

: [RISOLTO] Problema con JRoute
: dacdam 30 May 2010, 11:47:55
In un componente che ho chiamato "wsblog" Con questa istruzione:
:
$linkCrea = JRoute::_('index.php?option='.$option.'&task=crea');Ottengo querto URL:
/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" ???
: Re:Problema con JRoute
: dacdam 30 May 2010, 12:01:32
Mi sono accorto che, per la pagina principale, nell'url non compare l'itemid... può essere per quello ?
: Re:Problema con JRoute
: dacdam 30 May 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
:
&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 ?
: Re:Problema con JRoute
: mmleoni 31 May 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
: Re:Problema con JRoute
: dacdam 01 Jun 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:
:
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...
: Re:Problema con JRoute
: mmleoni 01 Jun 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
: Re:Problema con JRoute
: dacdam 01 Jun 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
:
?Itemid=2 all'indirizzo della home, le cose cominciano a funzionare, per quello sono convinto che il problema stia lì...
: Re:Problema con JRoute
: mmleoni 01 Jun 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
: Re:Problema con JRoute
: dacdam 03 Jun 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
/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.

: Re:Problema con JRoute
: mmleoni 03 Jun 2010, 11:22:37
ricordati il [RISOLTO] nel titolo del post di apertura del topic!

ciao,
marco