Your IP : 216.73.217.142


Current Path : /var/www/consult-e-syn/public_html/components/com_ats/Dispatcher/
Upload File :
Current File : /var/www/consult-e-syn/public_html/components/com_ats/Dispatcher/Dispatcher.php

<?php
/**
 * @package   ats
 * @copyright Copyright (c)2011-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
 * @license   GNU General Public License version 3, or later
 */

namespace Akeeba\TicketSystem\Site\Dispatcher;

defined('_JEXEC') or die;

use Akeeba\TicketSystem\Admin\Dispatcher\Mixin\CommonJavascript;
use Akeeba\TicketSystem\Admin\Dispatcher\Mixin\Emoji;
use Akeeba\TicketSystem\Admin\Helper\Blade;
use Akeeba\TicketSystem\Site\Helper\Breadcrumbs;
use AkeebaFEFHelper;
use FOF40\Container\Container;
use FOF40\Dispatcher\Mixin\ViewAliases;
use Joomla\CMS\HTML\HTMLHelper;

class Dispatcher extends \FOF40\Dispatcher\Dispatcher
{
	use Emoji;
	use CommonJavascript;

	use ViewAliases
	{
		onBeforeDispatch as onBeforeDispatchViewAliases;
	}

	/** @var   string  The name of the default view, in case none is specified */
	public $defaultView = 'ControlPanel';

	public function __construct(Container $container, array $config = [])
	{
		parent::__construct($container, $config);

		// Add our custom Blade templates
		Blade::extend($container);
	}

	protected function onBeforeDispatch()
	{
		$autoloaderPath = $this->container->backEndPath . '/vendor/autoload.php';

		if (file_exists($autoloaderPath))
		{
			require_once $autoloaderPath;
		}

		// Set up and implement view aliases
		$this->viewNameAliases = [
			'assignedticket'  => 'AssignedTicket',
			'assignedtickets' => 'AssignedTickets',
			'bucket'          => 'Bucket',
			'buckets'         => 'Buckets',
			'bucketreply'     => 'Bucket',
			'cannedreplies'   => 'CannedReplies',
			'categories'      => 'Categories',
			'juser'           => 'Juser',
			'jusers'          => 'Jusers',
			'latests'         => 'Latests',
			'latest'          => 'Latest',
			'managernote'     => 'ManagerNote',
			'managernotes'    => 'ManagerNotes',
			'my'              => 'My',
			'mies'            => 'Mies',
			'newticket'       => 'NewTicket',
			'newtickets'      => 'NewTickets',
			'post'            => 'Post',
			'posts'           => 'Posts',
			'ticket'          => 'Ticket',
			'tickets'         => 'Tickets',
		];

		$this->permanentAliasRedirectionOnGET = true;
		$this->onBeforeDispatchViewAliases();

		// Set up the version defines
		@include_once(JPATH_ADMINISTRATOR . '/components/com_ats/version.php');

		if (!defined('ATS_VERSION'))
		{
			define('ATS_PRO', '0');
			define('ATS_VERSION', 'dev');
			define('ATS_DATE', date('Y-m-d'));
		}

		// Renderer options (0=none, 1=frontend, 2=backend, 3=both)
		$useFEF   = in_array($this->container->params->get('load_fef', 3), [1, 3]);
		$fefReset = $useFEF && in_array($this->container->params->get('fef_reset', 3), [1, 3]);

		if (!$useFEF)
		{
			$this->container->rendererClass = '\\FOF40\\Render\\Joomla3';
			$this->container->template->addCSS('media://com_ats/css/frontend.min.css', $this->container->mediaVersion);
		}

		$darkMode  = $this->container->params->get('dark_mode_frontend', 0);
		$customCss = 'media://com_ats/css/frontend.min.css';

		if ($useFEF && ($darkMode != 0))
		{
			$customCss .= ', media://com_ats/css/frontend_dark.min.css';
		}

		$this->container->renderer->setOptions([
			'load_fef'   => $useFEF,
			'fef_reset'  => $fefReset,
			'custom_css' => $customCss,
			'fef_dark'   => $useFEF ? $darkMode : 0,
		]);

		$this->loadCommonJavaScript();
	}

	protected function onAfterDispatch()
	{
		if (class_exists('Akeeba\TicketSystem\Site\Helper\Breadcrumbs'))
		{
			Breadcrumbs::buildCrumbs();
		}

		//$this->loadTwemoji();
	}
}