first commit
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
/**
|
||||
* @package quantummanager
|
||||
* @author Dmitry Tsymbal <cymbal@delo-design.ru>
|
||||
* @copyright Copyright © 2019 Delo Design & NorrNext. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see license.txt
|
||||
* @link https://www.norrnext.com
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
|
||||
/**
|
||||
* Class JFormFieldQuantumbase
|
||||
*/
|
||||
class JFormFieldQuantumbase extends JFormField
|
||||
{
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @since version
|
||||
*/
|
||||
private $addLayouts = [];
|
||||
|
||||
|
||||
/**
|
||||
* JFormFieldQuantumbase constructor.
|
||||
*
|
||||
* @param null $form
|
||||
*/
|
||||
public function __construct($form = null)
|
||||
{
|
||||
JLoader::register('QuantummanagerHelper', JPATH_SITE . '/administrator/components/com_quantummanager/helpers/quantummanager.php');
|
||||
JLoader::register('QuantummanagerLibs', JPATH_SITE . '/administrator/components/com_quantummanager/helpers/quantumlibs.php');
|
||||
|
||||
parent::__construct($form);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function getLayoutData()
|
||||
{
|
||||
$scopes = QuantummanagerHelper::getAllScope();
|
||||
|
||||
if (empty($this->element))
|
||||
{
|
||||
$this->element = [
|
||||
'name' => '',
|
||||
'label' => ''
|
||||
];
|
||||
}
|
||||
|
||||
$urlFull = Uri::root(false);
|
||||
$urlBase = Uri::root(true);
|
||||
$urlRoot = $urlMedia = $urlFull;
|
||||
|
||||
if (substr($urlBase, -1) !== '/')
|
||||
{
|
||||
$urlBase .= '/';
|
||||
}
|
||||
|
||||
if (Factory::getApplication()->isClient('administrator'))
|
||||
{
|
||||
$urlFull .= 'administrator/';
|
||||
$urlBase .= 'administrator/';
|
||||
}
|
||||
|
||||
return array_merge(parent::getLayoutData(),
|
||||
[
|
||||
'cssClass' => $this->cssClass,
|
||||
'urlFull' => $urlFull,
|
||||
'urlBase' => $urlBase,
|
||||
'urlRoot' => $urlRoot,
|
||||
'urlMedia' => $urlMedia,
|
||||
'scopes' => $scopes,
|
||||
'isJoomla4' => QuantummanagerHelper::isJoomla4() ? '1' : '0',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allow to override renderer include paths in child fields
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
protected function getLayoutPaths()
|
||||
{
|
||||
return array_merge(parent::getLayoutPaths(), $this->addLayouts, [
|
||||
JPATH_ROOT . '/administrator/components/com_quantummanager/layouts/fields',
|
||||
JPATH_ROOT . '/layouts/joomla/form',
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function addCustomLayoutsPath($layouts)
|
||||
{
|
||||
$this->addLayouts = array_merge($this->addLayouts, $layouts);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user