Sto usando Joomla 3.3 e K2 v2.6.9.
Ho una vista di categoria con diversi elementi, vale a dire libri. L'URL è simile al seguente:
http://localhost/index.php?option=com_k2&view=itemlist&task=category&id=214:publikationen&Itemid=203
Per presentare questi elementi in un elenco in stile CSV, devo utilizzare un altro modello, chiamato csv-view
. Quindi creo il collegamento a questa vista con questo codice:
<?php echo $_SERVER['REQUEST_URI']; ?>&template=csv-view
risultante in questo URL:
http://localhost/index.php?option=com_k2&view=itemlist&task=category&id=214:publikationen&Itemid=203&template=csv-view
Questo funziona.
Ma quando attivo l'URL SEF l'URL cambia in
http://localhost/navigation/forschung/itemlist/category/214-publikationen.html
e l'URL esteso sarebbe
http://localhost/navigation/forschung/itemlist/category/214-publikationen.html&template=csv-view
e questa pagina non è stata trovata.
Quindi, ecco la mia domanda: come posso costruire l'URL corretto per la vista CSV anche se gli URL SEF sono attivati?
Invece di $_SERVER['REQUEST_URI']
, Puoi fare affidamento su JUri::root()
non è possibile aggiungere il parametro template concatenandolo con &
. Deve essere ?
... ma dipende dalla query Url. Pertanto, è necessario un pezzo di codice come questo per definire la colla:
$uri = JUri::getInstance($url);
$query = $uri->getQuery();
if (empty($query))
{
$glue = '?';
}
else
{
$glue = '&';
}
Come suggerito da @fruppel in un modo più compatto:
$uri = JUri::getInstance($url);
$uri->setVar('tmpl', 'csv-view');
$url = $uri->toString();