Autore Topic: Risolto Router Componente  (Letto 718 volte)

Offline map

  • Appassionato
  • ***
  • Post: 355
  • Sesso: Maschio
  • Siti Web Cagliari Web Agency
    • Mostra profilo
Risolto Router Componente
« il: 25 Ott 2012, 13:00:21 »
Ciao a tutti,
Sto modificando jea2, un componente per la gestione immobiliare , in modo da poter creare un modulo con la lista delle città.
Link vista città :                    index.php?option=com_jea&view=properties&city=2:citta&Itemid=164
Con il rewrite attivo diventa : sito.it/2-citta.html

Nella vista properties ci sono tutti gli immobili appartenenti alla stessa città.

Link vista propietà:  index.php?option=com_jea&view=property&city=2:citta&id=1:trivano&Itemid=164
Con il rewrite attivo diventa :sito/1-trivano/2-citta.html invece di sito.it/2-citta/1-tivano.html

Questo è il router del componente :

defined('_JEXEC') or die('Restricted access');


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;
}

Non capisco dove sbaglio, qualcuno sa aiutarmi ?
« Ultima modifica: 25 Ott 2012, 16:10:48 da map »

 

Host

Torna su