Joomla.it Forum
Non solo Joomla... => Sviluppo => : 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" ???
-
Mi sono accorto che, per la pagina principale, nell'url non compare l'itemid... può essere per quello ?
-
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 ?
-
ciao,
Itemid e option sono sempre definiti all'interno del framework.
semmai prova con
global $Itemid, $option
prima di usarli.
ciao
marco
-
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...
-
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
-
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ì...
-
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
-
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.
-
ricordati il [RISOLTO] nel titolo del post di apertura del topic!
ciao,
marco