| Current Path : /var/www/components/com_qf3/ |
| Current File : /var/www/components/com_qf3/classes.php |
<?php
/**
* @package Joomla & QuickForm
* @Copyright ((c) plasma-web.ru
* @license GPLv2 or later
*/
namespace QuickForm;
\defined('QF3_VERSION') or die;
class Text
{
public static function _($text)
{
static $loc = array();
$lang = str_replace('-', '_', qf::getlang());
if (\JFactory::getApplication()->isClient('administrator')) {
$path = QF3_ADMIN_DIR . 'language/';
} else {
$path = QF3_PLUGIN_DIR . 'language/';
}
if (! isset($loc[$lang]) && file_exists($path . $lang . '.php')) {
include_once($path . $lang . '.php');
$loc[$lang] = $qf_lang_array;
}
if (isset($loc[$lang]) && isset($loc[$lang][$text])) {
return $loc[$lang][$text];
}
if (! isset($loc['en_GB'])) {
include_once($path . 'en_GB.php');
$loc['en_GB'] = $qf_lang_array;
}
if (isset($loc['en_GB'][$text])) {
return $loc['en_GB'][$text];
}
return \JText::_($text);
}
public static function translate($text)
{
return preg_replace_callback('/\b(QF_\w+)\b/', function ($m) {
return self::_($m[1]);
}, $text);
}
}
class qf_config
{
public $settingsFile = QF3_ADMIN_DIR . 'helpers/settings.php';
public $shopsettingsFile = QF3_ADMIN_DIR . 'helpers/shop.php';
public function getItems($file)
{
if (file_exists($file)) {
$data = json_decode(include $file);
foreach ($data as $k => &$v) {
$v = htmlspecialchars_decode($v, ENT_QUOTES);
}
return $data;
}
}
protected function config($xml, $file)
{
$xml = simplexml_load_file($xml);
$arr = $this->XMLToArray($xml);
$config = (array) $this->getItems($file);
if (!$config) {
return $arr;
}
foreach ($arr as $key => $value) {
if (!isset($config[$key])) {
$config[$key] = $value;
}
}
return $config;
}
protected function XMLToArray($xml)
{
$arr = array();
foreach ($xml as $k => $v) {
if ((is_object($v) || is_array($v)) && ($k != 'field')) {
$new = $this->XMLToArray($v);
$arr = array_merge($arr, $new);
} elseif ($k == 'field') {
$name = isset($v['name'])?(string)$v['name']:'';
$def = isset($v['default'])?(string)$v['default']:'';
if ($name) {
$arr[$name]=$def;
}
}
}
return $arr;
}
public function getconfig()
{
if (!isset($this->qfparams)) {
$xml = QF3_ADMIN_DIR . 'forms/settings.xml';
$this->qfparams = $this->config($xml, $this->settingsFile);
}
return $this->qfparams;
}
public function getShopParams()
{
if (!isset($this->shopParams)) {
$xml = QF3_ADMIN_DIR . 'forms/shop.xml';
$this->shopParams = $this->config($xml, $this->shopsettingsFile);
}
return $this->shopParams;
}
}
class qf_session
{
public static function get($str = '')
{
$ses = array();
if (isset($_SESSION) && is_array($_SESSION)) {
$ses = $_SESSION;
}
if ($str) {
if (isset($ses[$str])) {
return $ses[$str];
} else {
return false;
}
}
return $ses;
}
}
class qf
{
public static function form($id)
{
require_once(QF3_PLUGIN_DIR . 'classes/buildform.php');
$qf = new QuickForm();
return $qf->getQuickForm($id);
}
public static function cart($headonly)
{
require_once(QF3_PLUGIN_DIR . 'classes/buildform.php');
$qf = new QuickForm();
return $qf->getShopModule($headonly);
}
public static function getUrl()
{
return ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
public static function addScript($type, $file)
{
if ($type == 'css') {
\JHtml::_('stylesheet', 'components/com_qf3/assets/' . $file, array('version' => QF3_VERSION));
} elseif ($type == 'js') {
\JHtml::_('jquery.framework');
\JHtml::_('script', 'components/com_qf3/assets/' . $file, array('version' => QF3_VERSION));
}
}
public static function gettask($var = 'task', $def = '')
{
if (isset($_REQUEST[$var])) {
return preg_replace('/[^a-z.\d\-_]/i', '', $_REQUEST[$var]);
}
return $def;
}
public static function getacs()
{
$acs[''] = 'QF_ACCESS';
$groups = \JHtml::_('access.assetgroups');
foreach ($groups as $group) {
$acs[$group->value] = $group->text;
}
return $acs;
}
public static function getlang()
{
$lang = \JFactory::getLanguage()->getTag();
return str_replace('-', '_', $lang);
}
public static function cmsVersion()
{
$version = new \JVersion;
return 'j'.$version->getShortVersion()[0];
}
}