Ga Terug  
     


Extensie ontwikkeling (1.5) Plaats hier je vragen en opmerking met betrekking tot de ontwikkeling van extensies.

Antwoord
 
Onderwerpopties Weergavemodus
Oud 24 juni 2010, 11:04   #1
marckraak
 
marckraak's Avatar
 
Geregistreerd op: 8 december 2008
Leeftijd: 48
Berichten: 39
Bedankjes gegeven: 6
Bedankjes ontvangen: 2
Standaard JRoute perikelen

JRoute blijft een groot vraagteken voor me...

Stel, ik ben op een pagina index.php?option=com_shop&view=cart
De SEF url hiervan is www.mijnsite.nl/shop/cart.html
Helemaal in orde dus..
Op deze pagina heb ik links naar producten, bv.

JRoute::_('index.php?option=com_shop&view=product& product=AB001');

Ik zou verwachten dat ik dan deze link krijg:

/shop/product/AB001.html

Maar....het wordt:

/shop/cart/AB001.html

Ik heb geen idee hoe ik het voor elkaar moet krijgen hier de juiste url te bouwen
Bij the BuildRoute functie wil ik dus het 'cart' gedeelte verwijderen in dit geval en hiervoor in de plaats 'product', de naam van de view.
Als ik probeer de view te wijzigen (in buildRoute), b.v.
PHP Code:
if(strlen($query['product')){
    
$segments[]='product'// de view
}
else{
    
$segments[]=$query['view'];
}
unset(
$query['view']); 
Dan krijg ik een url: /shop/cart/product/AB001.html
en nog steeds 'cart' er bij.
Ik heb ook wat geprobeerd met JRoute::_('/index.php?........'), dus met de / maar dat lijkt met niet netjes (werkt wel overigens)
marckraak is offline   Met citaat antwoorden
Oud 25 april 2011, 11:42   #2
hilltop
 
Geregistreerd op: 5 januari 2009
Leeftijd: 43
Berichten: 1
Bedankjes gegeven: 0
Bedankjes ontvangen: 1
Standaard Re: JRoute perikelen

Hoewel je issue al oud is, toch maar een reactie, omdat ik zelf lang heb moeten zoeken voordat ik het doorhad.

Joomla onthoudt de Itemid van het menu-item. De alias van dit menu is zeer waarschijnlijk 'cart'. Hierdoor plakt Joomla zelf 'cart' in de nieuwe URL.

Je kunt dit afvangen door hardgecodeerd het Itemid mee te geven van het menu-item dat 'product' als alias heeft.

Netter is dat je een stukje code maakt dat het juiste menu-id opzoekt op basis van de bijbehorende URL (zoek maar eens in google op 'foreach($menus')

Een andere shortcut is dat je het Itemid in je router.php zet door daar het Itemid te vullen met het menu-id dat de gewenste alias heeft.

Dit laatste kun je ook gebruiken als alle pagina's binnen je component (ongeacht de menu-keuze) eenzelfde element moeten bevatten (bv. shop).
hilltop is offline   Met citaat antwoorden
De volgende leden bedanken hilltop voor dit nuttige bericht:
marckraak ( 5 mei 2011)
Oud 5 mei 2011, 22:34   #3
marckraak
 
marckraak's Avatar
 
Geregistreerd op: 8 december 2008
Leeftijd: 48
Berichten: 39
Bedankjes gegeven: 6
Bedankjes ontvangen: 2
Standaard Re: JRoute perikelen

Beter laat een goede reactie, dan geen reactie. Dank je!
marckraak is offline   Met citaat antwoorden
Antwoord

Trefwoorden
jroute

Onderwerpopties
Weergavemodus

Berichting Regels
Je mag niet nieuwe onderwerpen maken
Je mag niet reageren op berichten
Je mag niet bijlagen posten
Je mag niet je berichten bewerken

BB code is Aan
Smilies zijn Aan
[IMG] code is Aan
HTML code is Uit

Forumnavigatie


Alle tijden zijn GMT +1. De tijd is nu 13:08.