Files
conservatorio-tomadini/plugins/system/nrframework/NRFramework/Factory.php
2024-12-31 11:07:09 +01:00

125 lines
2.9 KiB
PHP

<?php
/**
* @author Tassos.gr <info@tassos.gr>
* @link https://www.tassos.gr
* @copyright Copyright © 2024 Tassos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
namespace NRFramework;
use \NRFramework\WebClient;
use \NRFramework\CacheManager;
use Joomla\CMS\Factory as JoomlaFactory;
use Joomla\CMS\Uri\Uri;
defined('_JEXEC') or die;
/**
* Framework Factory Class
*
* Used to decouple the framework from it's dependencies and make unit testing easier.
*
* @todo Rename class to Container and make all methods static.
*/
class Factory
{
public function isFrontend()
{
return $this->getApplication()->isClient('site');
}
public static function getCondition($name)
{
return \NRFramework\Conditions\ConditionsHelper::getInstance()->getCondition($name);
}
public function getDbo()
{
return JoomlaFactory::getDbo();
}
public function getApplication()
{
$app = JoomlaFactory::getApplication();
// The 'forward_context' parameter is used to forward data from one page to another. This is rather useful in XHR requests.
// This is mainly used in Convert Forms to make the {article} Smart Tag work after form submission.
if ($context = $app->input->get('forward_context', '', 'raw'))
{
if (is_string($context))
{
try
{
$context = json_decode($context, true);
$app->input->set('forward_context', $context);
} catch (\Throwable $th)
{
}
}
}
return $app;
}
public function getCookie($cookie_name)
{
return JoomlaFactory::getApplication()->input->cookie->get($cookie_name, null, 'string');
}
public function getDocument()
{
return JoomlaFactory::getDocument();
}
public function getUser($id = null)
{
return \NRFramework\User::get($id);
}
public function getCache()
{
return CacheManager::getInstance(JoomlaFactory::getCache('tassos', ''));
}
public function getDate($date = 'now', $tz = null)
{
return JoomlaFactory::getDate($date, $tz);
}
public function getURI()
{
return Uri::getInstance();
}
public function getURL()
{
return Uri::getInstance()->toString();
}
public function getLanguage()
{
return JoomlaFactory::getLanguage();
}
public function getSession()
{
return JoomlaFactory::getSession();
}
public function getDevice()
{
return WebClient::getDeviceType();
}
public function getBrowser()
{
return WebClient::getBrowser();
}
public function getExecuter($php_code)
{
return new \NRFramework\Executer($php_code);
}
}