2012-10-25 4 views
0

J'ai cette URL pour afficher les propriétés:routeur Joomla nouveau composant

index.php?option=com_jea&view=properties&city=2:citta&Itemid=164 

avec sef: sito.it/2-citta.html

Cette URL affiche la propriété:

index.php?option=com_jea&view=property&city=2:citta&id=1:trivano&Itemid=164 

avec sef: sito/1-trivano/2-citta.html

mais je aimerait

sito.it/2-citta/1-tivano.html

C'est le routeur:

function JeaBuildRoute(&$query){ 
$segments = array(); 

if(isset($query['view'])) { 
    unset($query['view']); 
} 

if (isset($query['layout'])) { 
    $segments[] = $query['layout']; 
    unset($query['layout']); 
} 

if(isset($query['id'])) { 
    $segments[] = $query['id']; 
    unset($query['id']); 
}; 
if(isset($query['city'])) { 
    $segments[] = $query['city']; 
    unset($query['city']); 
}; 

return $segments; 

function JeaParseRoute($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 'properties': 
        if($count == 1) { 
          $vars['view'] = 'properties'; 
          $id = explode(':', $segments[$count-1]); 
          $vars['city'] = (int) $id[0]; 
        } 
        if($count == 2) { 
          $vars['view'] = 'property'; 
        } 
        $id = explode(':', $segments[$count-1]); 
        $vars['id'] = (int) $id[0]; 
        break; 
      case 'property': 
        $id = explode(':', $segments[$count-1]); 
        $vars['id'] = (int) $id[0]; 
        $vars['view'] = 'property'; 
        break; 
    } 
    return $vars;} 

Répondre

0

Peut-être que vous pouvez essayer d'inverser l'ordre de ces deux ifs

if(isset($query['city'])) { 
     $segments[] = $query['city']; 
     unset($query['city']); 
    }; 

    if(isset($query['id'])) { 
     $segments[] = $query['id']; 
     unset($query['id']); 
    }; 
+0

merci maintenant il fonctionne très bien – user1672131

+0

Si la réponse est correcte s'il vous plaît marquer il a accepté comme – Igor

+0

maintenant, il fonctionne bien, comment puis-je supprimer l'id des propriétés 2-citta/2-bivano.html -> citta/2-bivano.html? – user1672131