Back to top

Autore Topic: [2.5]jroute e sef  (Letto 1284 volte)

Offline memo2014

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
[2.5]jroute e sef
« il: 04 Feb 2014, 20:46:15 »
Buonasera a tutti :)


Sto provando a linkare ad un immagine il richiamo ad un componente passandogli un parametro:


Codice: [Seleziona]
<a href="<?php echo JRoute::_('index.php?view=category&id='.$catidtrue, -1); ?>">
<img src="pathblabla.png" /></a>


Il link funziona, nel senso che vengo indirizzato alla pagina giusta (passando "catid" come parametro), solo che la vedo così:


Codice: [Seleziona]
www.miosito.bla/component/mio_componente/?view=category&id=12


e nel menu della pagina ovviamente vedo:


Codice: [Seleziona]
sei qui: HOME
Vorrei ovviamente nascondere il nome del componente dalla url e avere
il riferimento corretto nel menu.


Il router.php del componente è questo:


Codice: [Seleziona]

<?php
defined
('_JEXEC') or die;




function 
MiocomponenteBuildRoute(&$query)
{
       
$segments = array();
       if(isset( 
$query['catid'] ))
       {
                
$segments[] = $query['catid'];
                unset( 
$query['catid'] );
       };
       if( isset(
$query['id']) )
       {
                
$segments[] = $query['id'];
                unset( 
$query['id'] );
       };
       unset( 
$query['view'] );
       return 
$segments;
}


function 
MiocomponenteParseRoute($segments)
{
       
$vars = array();
       
$app =& JFactory::getApplication();
       
$menu =& $app->getMenu();
       
$item =& $menu->getActive();
       
// Count segments
       
$count count$segments );
       
//Handle View and Identifier
       
switch( $item->query['view'] )
       {
               case 
'categories':
                       if(
$count == 1) {
                               
$vars['view'] = 'category';
                       }
                       if(
$count == 2) {
                               
$vars['view'] = 'article';
                       }
                       
$id explode':'$segments[$count-1] );
                       
$vars['id'] = (int) $id[0];
                       break;
               case 
'category':
                       
$id   explode':'$segments[$count-1] );
                       
$vars['id']   = (int) $id[0];
                       
$vars['view'] = 'article';
                       break;
       }
       return 
$vars;
}


?>



Grazie come sempre in anticipo a tutti.

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:[2.5]jroute e sef
« Risposta #1 il: 04 Feb 2014, 21:14:11 »
l'url generata dal jroute è corretta se non hai creato nessuna voce di menu associata a quel componente. prova a crearne una ed il link dovrebbe prendere l'alias della voce di menu. Probabilmente lo stesso vale per il breadcrumb

 



Web Design Bolzano Kreatif