[Joomla 3.6.4] Cambiare dinamicamente views nel router.php

Moderator: alikon

Forum rules
Regole Forum
Post Reply
OlafGizursson
Joomla! Fledgling
Joomla! Fledgling
Posts: 3
Joined: Tue Feb 06, 2018 2:37 pm

[Joomla 3.6.4] Cambiare dinamicamente views nel router.php

Post by OlafGizursson » Tue Feb 06, 2018 2:56 pm

Ciao a tutti!

Sto sviluppando per la prima volta un component di Joomla 3.6.4 e non riesco a capire come creare il router.php. Ho letto la documentazione ufficiale, e infatti parzialmente ho creato un router.php funzionante, ma non ho ancora raggiunto il SafeURL che vorrei.
Nel mio router.php dovrei riuscire a cambiare dinamicamente la view senza farla apparire nell'URL, quindi senza inserirla in $segments[]. Nel component vi sono quattro views differenti (quattro views a lista, quattro views singole), ma non riesco a popolare la variabile $vars['view'] dinamicamente, quando cambio la view del component.

Il mio router.php:

Code: Select all

 class ComponentNameRouter extends JComponentRouterBase
{
    /**
     * Build method for URLs
     * This method is meant to transform the query parameters into a more human
     * readable form. It is only executed when SEF mode is switched on.
     *
     * @param   array  &$query  An array of URL arguments
     *
     * @return  array  The URL arguments to use to assemble the subsequent URL.
     *
     * @since   3.3
     */
    public function build(&$query)
    {
         $segments = array();

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

  } 

if(isset($query['id']) && isset($query['name']))                               
{
  $segments[] = $query['id']."-".$query['name'];
  unset($query['id']);
  unset($query['name']);  
}
else if(isset($query['id']))                               
{
  $segments[] = $query['id'];
  unset($query['id']);
}
  return $segments;
}

    /**
     * Parse method for URLs
     * This method is meant to transform the human readable URL back into
     * query parameters. It is only executed when SEF mode is switched on.
     *
     * @param   array  &$segments  The segments of the URL to parse.
     *
     * @return  array  The URL attributes to be used by the application.
     *
     * @since   3.3
     */
    public function parse(&$segments)
    {
$vars = array();
  $vars['view'] = "name-of-ONE-of-the-views";    
  $aux = explode(":",$segments[0]);     
  $vars['id'] = $aux[0];    
  return $vars;

    }
}
Il mio obiettivo consiste nel creare un URL come segue: joomlasite.com/menu/id-name, senza che la view compaia nell'URL.

P.S. Ho provato anche ad accedere ai params del modulo che uso per far visualizzare il component in Front End perche' i nomi dei diversi layouts del modulo sono gli stessi, ma non ho avuto successo. Per estrarre i params del modulo ho usato questo codice:

Code: Select all

$module = JModuleHelper::getModule('mod_NOME');
$params = new JRegistry($module->params);
$layout_param = $params['layout'];
P.P.S. Scusate l'inglese nel codice, ma sto attualmente sviluppando il component per l'UK.
Last edited by toivo on Tue Feb 06, 2018 4:37 pm, edited 1 time in total.
Reason: mod note: cross post removed, cross posting not allowed - see the forum rules https://forum.joomla.org/viewtopic.php?f=8&t=65

User avatar
alexred
Joomla! Explorer
Joomla! Explorer
Posts: 274
Joined: Sat Aug 20, 2005 9:18 pm
Location: Italy
Contact:

Re: [Joomla 3.6.4] Cambiare dinamicamente views nel router.php

Post by alexred » Tue Feb 06, 2018 3:54 pm

Ciao OlafGizursson,
non saprei aiutarti nel dettaglio del tuo problema. Ma ti consiglio si sviluppare sull'ultima versione di Joomla 3 e non su una così vecchia e vulnerabile.
Prova a cercare se esiste qualche componente che riesce a generare la URL come desideri tu, per capire se è possibile e poi vedere come ha fatto.
Member of the Italian Joomla Translation Team

OlafGizursson
Joomla! Fledgling
Joomla! Fledgling
Posts: 3
Joined: Tue Feb 06, 2018 2:37 pm

Re: [Joomla 3.6.4] Cambiare dinamicamente views nel router.php

Post by OlafGizursson » Tue Feb 06, 2018 4:47 pm

Ciao alexred,

Grazie mille per la risposta. Purtroppo non posso cambiare la versione di Joomla! a causa delle decisioni dell'azienda per cui sto sviluppando il Component; conosci per caso dei component che trasformano gli URL in modo dinamico? Purtroppo sono nuovo nel campo Joomla.

Grazie mille in anticipo!

User avatar
alexred
Joomla! Explorer
Joomla! Explorer
Posts: 274
Joined: Sat Aug 20, 2005 9:18 pm
Location: Italy
Contact:

Re: [Joomla 3.6.4] Cambiare dinamicamente views nel router.php

Post by alexred » Tue Feb 06, 2018 4:55 pm

non ho ben capito cosa intendi per trasformare gli URL in modo dinamico, ma puoi iniziare a testare ed analizzare le TOP estensioni che sono disponibili nella JED: https://extensions.joomla.org/browse/top-rated/
magari inizia solo con quelle gratuite.
Member of the Italian Joomla Translation Team

OlafGizursson
Joomla! Fledgling
Joomla! Fledgling
Posts: 3
Joined: Tue Feb 06, 2018 2:37 pm

Re: [Joomla 3.6.4] Cambiare dinamicamente views nel router.php

Post by OlafGizursson » Wed Feb 07, 2018 9:10 am

Ci provo, grazie mille!


Post Reply

Return to “Joomla! 3.x”