File Manager

Current Directory: /home/astoriaah/www/templates/yootheme-BK/vendor/yootheme/framework/platforms/joomla/src
Viewing File: /home/astoriaah/www/templates/yootheme-BK/vendor/yootheme/framework/platforms/joomla/src/Joomla.php
<?php namespace YOOtheme; use YOOtheme\Joomla\Database; use YOOtheme\Joomla\DateHelper; use YOOtheme\Joomla\HttpClient; use YOOtheme\Joomla\Option; use YOOtheme\Joomla\UrlGenerator; use YOOtheme\Joomla\UserProvider; class Joomla extends Module { /** * {@inheritdoc} */ public function __invoke($app) { jimport('joomla.filesystem.folder'); jimport('joomla.application.component.helper'); $app->path = strtr(JPATH_ROOT, '\\', '/'); $app['db'] = function () { return new Database($this->dbo); }; $app['url'] = function ($app) { return new UrlGenerator($app['uri']); }; $app['csrf'] = function ($app) { return new CsrfProvider([$app['session'], 'getToken']); }; $app['users'] = function ($app) { return new UserProvider($app['component'], isset($app['permissions']) ? $app['permissions'] : []); }; $app['http'] = function () { return new HttpClient(); }; $app['date'] = function () { $date = new DateHelper(); $date->setFormats([ 'full' => \JText::_('DATE_FORMAT_LC2'), 'long' => \JText::_('DATE_FORMAT_LC3'), 'medium' => \JText::_('DATE_FORMAT_LC1'), 'short' => \JText::_('DATE_FORMAT_LC4') ]); return $date; }; $app['option'] = function ($app) { return new Option($app['db'], 'yootheme', 'system'); }; $app['locale'] = function () { return str_replace('-', '_', $this->language->get('tag')); }; $app['admin'] = function () { return $this->application->isAdmin(); }; $app['session'] = function () { return $this->application->getSession(); }; $app['secret'] = function () { return $this->config->get('secret'); }; $app->extend('uri', function ($uri) { return $uri->withBasePath(\JUri::root(true)); }); $app->extend('request', function ($request) { $query = $request->getQueryParams(); $input = $this->application->input; $inputs = ['Itemid', 'option', 'layout', 'view', 'task']; foreach ($inputs as $key) { if ($value = $input->get($key)) { $query[$key] = $value; } } return $request->withQueryParams($query); }); $app->on('view', [$this, 'registerAssets'], -10); } /** * Callback to register assets. */ public function registerAssets() { foreach ($this->styles as $style) { $id = sprintf('%s-css', $style->getName()); if ($source = $style->getSource()) { $this->document->addStyleSheet(htmlentities($this->url->to($source, ($v = $style->getOption('version')) ? ['v' => $v] : [])), 'text/css', null, compact('id')); } elseif ($content = $style->getContent()) { $this->document->addStyleDeclaration($content); } } foreach ($this->scripts as $script) { if ($source = $script->getSource()) { $this->document->addScript(htmlentities($this->url->to($source, ($v = $script->getOption('version')) ? ['v' => $v] : [])), 'text/javascript', $script->getOption('defer') ?: false); } elseif ($content = $script->getContent()) { $this->document->addScriptDeclaration($content); } } } }