Skip to main content

Welkom bij Joomla!NL

Om alle mogelijkheden van dit forum te kunnen gebruiken, moet je je eerst registreren.

Als je zelf een extensie ontwikkelt, kan je hier je vragen stellen.

router.php werkend krijgen

router.php werkend krijgen

29 aug 2012 21:07
#1
Hallo,

Om me het maken van een Joomla Component eigen te maken ben ik bezig met een simpel activiteiten component te maken.
Het gaat om het tonen van een serie activiteiten in een overzicht en vervolgens na klikken op een activiteit een enkele activiteit te tonen.
Het component is in feite werkend, maar om hem ook voor SEF geschikt te krijgen heb ik een router.php bestand gemaakt.
Het lukt echt nog niet volledig dus vandaar mij vraag of iemand weet wat hier mis gaat?

Er is een verborgen menu wat een item bevat met de volgende URI
index.php?option=com_events&view=activity met als alias activiteit


Hoofdmenu item met overzicht van de activiteiten (alias activiteiten):
URI: domeinnaam/index.php?option=com_events&view=activities&Itemid =160
mod_breadcrumbs geeft netjes Home->Activiteiten met een actief hoofdmenu item
Met SEF aan: URI domeinnaam/activiteiten
mod_breadcrumbs geeft netjes Home->Activiteiten met een actief hoofdmenu item

Losse activiteit
URI: domeinnaam/index.php?option=com_events&view=activity&id=1&Ite mid=160
mod_breadcrumbs geeft netjes Home->Activiteiten->Activiteitnaam
Met SEF: URI domeinnaam/activiteit/activiteitnaam
mod_breadcrumbs geeft Home->Activiteit->Activiteitnaam, verder is het hoofdmenu item niet actief.

Hier de betreffende router.php
Code:
<?php defined( '_JEXEC' ) or die; jimport('joomla.database.databasequery'); function EventsBuildRoute(&$query) { $segments = array(); if (isset($query['view'])) { if ($query['view'] == 'activity') { $segments[] = EventsGetAlias($query['id'], $query['view']); unset($query['id']); } // look up Itemid $query['Itemid'] = EventsGetItemid($query['view']); unset($query['view']); } return $segments; } function EventsParseRoute($segments) { $vars = array(); $item = JFactory::getApplication()->getMenu()->getActive(); if (isset($item)) { $vars['view'] = $item->query['view']; } if (count($segments) == 1) { $vars['id'] = EventsGetIDFromAlias($segments[0], $vars['view']); } return $vars; } function EventsGetAlias($id, $view) { $db = JFactory::getDbo(); $query = $db->getQuery(true); if ($view == 'activity') { $query->select('activity_alias'); $query->from('#__events_activities'); $query->where('activity_id = ' . $id); } else { return ''; } return $db->setQuery($query)->loadResult(); } function EventsGetIDFromAlias($alias, $view) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $alias = str_replace(':', '-', $alias); $alias = $db->getEscaped($alias); if ($view == 'activity') { $query->select('activity_id'); $query->from('#__events_activities'); $query->where("activity_alias = '{$alias}'"); } else { return 0; } return $db->setQuery($query)->loadResult(); } function EventsGetItemid($view) { $db = JFactory::getDbo(); $db_query = $db->getQuery(true); $db_query->select('id') ->from('#__menu') ->where("link = 'index.php?option=com_events&view=" . $view . "' AND client_id = 0"); $db->setQuery($db_query); return $db->loadResult(); }
  • Thuurke
  • Thuurke's berichtenfoto Heeft onderwerp gestart
  • Nieuw op Joomla!NL
  • Nieuw op Joomla!NL
  • Berichten: 13

router.php werkend krijgen

31 aug 2012 21:56
#2
Misschien heb je hier iets aan?
Ik neem aan dat je hier al bent geweest?

Zelf heb ik geen ervaring hiermee, ik zou adviseren om de Apache logs te bekijken en goed uit te pluizen waar (welke stap) het mis gaat.

Weetje: het huidige MVC concept willen ze voor Joomla 4 helemaal herzien.
  • Ronald
  • Ronald's Profielfoto
  • Bezoeker
  • Bezoeker

router.php werkend krijgen

03 sep 2012 16:24
#3
Hallo Ronald,

De 2e link had ik al bekeken. De eerste nu ook maar kom er nog niet verder mee. Ik ga nog eens even wat verder uitpluizen :)
  • Thuurke
  • Thuurke's berichtenfoto Heeft onderwerp gestart
  • Nieuw op Joomla!NL
  • Nieuw op Joomla!NL
  • Berichten: 13

router.php werkend krijgen

03 sep 2012 21:09
#4
Ja joh ik heb er kort naar gekeken, maar dit zijn dingen waar je echt diep in moet duiken (wel leuk!).
Ik zou je ook zeker adviseren om het irc kanaal (#joomla-dev op freenode) van Joomla te benutten.
Hiervoor dien je wel de vraag volledig voorgekauwd te hebben.
  • Ronald
  • Ronald's Profielfoto
  • Bezoeker
  • Bezoeker
Moderators: JelleRomke
Tijd voor maken pagina: 0.612 seconden
Gemaakt door Kunena

Wil je Joomla!NL steunen?

Steun Joomla!NLAlle teamleden werken enthousiast, op vrijwillige basis, mee aan Joomla!NL. Maar een website met forum kost nu eenmaal geld. Dus als je Joomla!NL wilt steunen, dan kan dat, graag zelfs!

Lees hier meer informatie