163 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package    JEM
 | |
|  * @copyright  (C) 2013-2024 joomlaeventmanager.net
 | |
|  * @copyright  (C) 2005-2009 Christoph Lukes
 | |
|  * @license    https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
 | |
|  */
 | |
| 
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| use Joomla\CMS\Component\Router\RouterBase;
 | |
| use Joomla\CMS\Application\CMSApplication;
 | |
| 
 | |
| use Joomla\CMS\Component\Router\RouterView;
 | |
| use Joomla\CMS\Component\Router\RouterViewConfiguration;
 | |
| use Joomla\CMS\Component\Router\Rules\MenuRules;
 | |
| // use Joomla\CMS\Component\Router\Rules\NomenuRules;
 | |
| // use Joomla\Component\Jem\Site\Service\JemNomenuRules as NomenuRules;
 | |
| use Joomla\CMS\Component\Router\Rules\StandardRules;
 | |
| use Joomla\CMS\Factory;
 | |
| use Joomla\CMS\Menu\AbstractMenu;
 | |
| 
 | |
| require_once (JPATH_SITE.'/components/com_jem/services/JemNomenuRules.php');
 | |
| 
 | |
| class JemRouter extends RouterView
 | |
| {
 | |
| 	/**
 | |
| 	 * Router segments.
 | |
| 	 *
 | |
| 	 * @var  array
 | |
| 	 *  
 | |
| 	 * @since  1.0.0
 | |
| 	 */
 | |
| 	protected $_segments = array();
 | |
| 
 | |
| 	/**
 | |
| 	 * Router ids.
 | |
| 	 *
 | |
| 	 * @var  array
 | |
| 	 *
 | |
| 	 * @since  1.0.0
 | |
| 	 */
 | |
| 	protected $_ids = array();
 | |
| 
 | |
| 	/**
 | |
| 	 * Router constructor.
 | |
| 	 *
 | |
| 	 * @param   CMSApplication  $app   The application object.
 | |
| 	 * @param   AbstractMenu    $menu  The menu object to work with.
 | |
| 	 *
 | |
| 	 * @since  1.0.0
 | |
| 	 */
 | |
| 	public function __construct($app = null, $menu = null)
 | |
| 	{
 | |
| 		
 | |
| 		// calendar route
 | |
| 		$calendar = new RouterViewConfiguration('calendar');
 | |
| 		$calendar->setKey('id');
 | |
| 		$this->registerView($calendar);
 | |
| 
 | |
| 		// eventslist route
 | |
| 		$eventslist = new RouterViewConfiguration('eventslist');
 | |
| 		$eventslist->setKey('id');
 | |
| 		$this->registerView($eventslist);
 | |
| 	
 | |
| 		// event route
 | |
| 		$event = new RouterViewConfiguration('event');
 | |
| 		$event->setKey('id');
 | |
| 		$this->registerView($event);
 | |
| 
 | |
| 		// categories route
 | |
| 		$categories = new RouterViewConfiguration('categories');
 | |
| 		$categories->setKey('id');
 | |
| 		$this->registerView($categories);
 | |
| 
 | |
| 		// category route
 | |
| 		$category = new RouterViewConfiguration('category');
 | |
| 		$category->setKey('id');
 | |
| 		$this->registerView($category);
 | |
| 
 | |
| 		// attendees route
 | |
| 		$attendees = new RouterViewConfiguration('attendees');
 | |
| 		$attendees->setKey('id');
 | |
| 		$this->registerView($attendees);
 | |
| 
 | |
| 		// day route
 | |
| 		$day = new RouterViewConfiguration('day');
 | |
| 		$day->setKey('id');
 | |
| 		$this->registerView($day);
 | |
| 
 | |
| 		// editevent route
 | |
| 		$editevent = new RouterViewConfiguration('editevent');
 | |
| 		$editevent->setKey('id');
 | |
| 		$this->registerView($editevent);
 | |
| 
 | |
| 		// editvenue route
 | |
| 		$editvenue = new RouterViewConfiguration('editvenue');
 | |
| 		$editvenue->setKey('id');
 | |
| 		$this->registerView($editvenue);
 | |
| 
 | |
| 		// myattendances route
 | |
| 		$myattendances = new RouterViewConfiguration('myattendances');
 | |
| 		$myattendances->setKey('id');
 | |
| 		$this->registerView($myattendances);
 | |
| 
 | |
| 		// myevents route
 | |
| 		$myevents = new RouterViewConfiguration('myevents');
 | |
| 		$myevents->setKey('id');
 | |
| 		$this->registerView($myevents);
 | |
| 
 | |
| 		// myvenues route
 | |
| 		$myvenues = new RouterViewConfiguration('myvenues');
 | |
| 		$myvenues->setKey('id');
 | |
| 		$this->registerView($myvenues);
 | |
| 
 | |
| 		// search route
 | |
| 		$search = new RouterViewConfiguration('search');
 | |
| 		$search->setKey('id');
 | |
| 		$this->registerView($search);
 | |
| 
 | |
| 		// venue route
 | |
| 		$venue = new RouterViewConfiguration('venue');
 | |
| 		$venue->setKey('id');
 | |
| 		$this->registerView($venue);
 | |
| 
 | |
| 		// venueslist route
 | |
| 		$venueslist = new RouterViewConfiguration('venueslist');
 | |
| 		$venueslist->setKey('id');
 | |
| 		$this->registerView($venueslist);
 | |
| 
 | |
| 		// venues route
 | |
| 		$venues = new RouterViewConfiguration('venues');
 | |
| 		$venues->setKey('id');
 | |
| 		$this->registerView($venues);
 | |
| 
 | |
| 		// weekcal route
 | |
| 		$weekcal = new RouterViewConfiguration('weekcal');
 | |
| 		$weekcal->setKey('id');
 | |
| 		$this->registerView($weekcal);
 | |
| 		
 | |
| 		parent::__construct($app, $menu);
 | |
| 
 | |
| 		$this->attachRule(new MenuRules($this));
 | |
| 		$this->attachRule(new StandardRules($this));
 | |
| 		$this->attachRule(new JemNomenuRules($this));
 | |
| 	}
 | |
| }
 | |
| function jemBuildRoute(&$query)
 | |
| {
 | |
| 	$app    = Factory::getApplication();
 | |
| 	
 | |
| 	$router = new JemRouter($app, $app->getMenu());
 | |
| 
 | |
| 	return $router->build($query);
 | |
| }
 | |
| 
 | |
| function jemParseRoute($segments)
 | |
| {	
 | |
| 	$app    = Factory::getApplication();
 | |
| 	$router = new JemRouter($app, $app->getMenu());
 | |
| 	return $router->parse($segments);	
 | |
| }
 | |
| ?>
 |