Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
home/lmsyaran/public_html/j3/plugins/system/regularlabs/regularlabs.php000064400000012151151162065500022465
0ustar00<?php
/**
* @package Regular Labs Library
* @version 21.2.19653
*
* @author Peter van Westen <info@regularlabs.com>
* @link http://www.regularlabs.com
* @copyright Copyright © 2021 Regular Labs All Rights Reserved
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Plugin\CMSPlugin as JPlugin;
use Joomla\CMS\Uri\Uri as JUri;
use Joomla\Registry\Registry;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\Extension as RL_Extension;
use RegularLabs\Library\Parameters as RL_Parameters;
use RegularLabs\Library\Uri as RL_Uri;
use RegularLabs\Plugin\System\RegularLabs\AdminMenu as RL_AdminMenu;
use RegularLabs\Plugin\System\RegularLabs\DownloadKey as RL_DownloadKey;
use RegularLabs\Plugin\System\RegularLabs\QuickPage as RL_QuickPage;
use RegularLabs\Plugin\System\RegularLabs\SearchHelper as RL_SearchHelper;
if ( ! is_file(__DIR__ . '/vendor/autoload.php'))
{
return;
}
require_once __DIR__ . '/vendor/autoload.php';
if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';
}
JFactory::getLanguage()->load('plg_system_regularlabs',
__DIR__);
$config = new JConfig;
$input = JFactory::getApplication()->input;
// Deal with error reporting when loading pages we don't want to break
due to php warnings
if ( ! in_array($config->error_reporting, ['none',
'0'])
&& (
($input->get('option') == 'com_regularlabsmanager'
&& ($input->get('task') == 'update' ||
$input->get('view') == 'process')
)
||
($input->getInt('rl_qp') == 1 &&
$input->get('url') != '')
)
)
{
RL_Extension::orderPluginFirst('regularlabs');
error_reporting(E_ERROR);
}
class PlgSystemRegularLabs extends JPlugin
{
public function onAfterRoute()
{
if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
if (JFactory::getApplication()->isClient('administrator'))
{
JFactory::getApplication()->enqueueMessage('The Regular Labs
Library folder is missing or incomplete: ' . JPATH_LIBRARIES .
'/regularlabs', 'error');
}
return;
}
RL_DownloadKey::update();
RL_SearchHelper::load();
RL_QuickPage::render();
}
public function onAfterDispatch()
{
if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
return;
}
if ( ! RL_Document::isAdmin(true) || ! RL_Document::isHtml()
)
{
return;
}
RL_Document::loadMainDependencies();
}
public function onAfterRender()
{
if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
return;
}
if ( ! RL_Document::isAdmin(true) || ! RL_Document::isHtml()
)
{
return;
}
$this->fixQuotesInTooltips();
RL_AdminMenu::combine();
RL_AdminMenu::addHelpItem();
}
private function fixQuotesInTooltips()
{
$html = JFactory::getApplication()->getBody();
if ($html == '')
{
return;
}
if (strpos($html, '&quot;rl_code&quot;') ===
false)
{
return;
}
$html = str_replace('&quot;rl_code&quot;',
'"rl_code"', $html);
JFactory::getApplication()->setBody($html);
}
public function onInstallerBeforePackageDownload(&$url, &$headers)
{
$uri = JUri::getInstance($url);
$host = $uri->getHost();
if (
strpos($host, 'regularlabs.com') === false
&& strpos($host, 'nonumber.nl') === false
)
{
return true;
}
$uri->setScheme('https');
$uri->setHost('download.regularlabs.com');
$uri->delVar('pro');
$url = $uri->toString();
$params =
RL_Parameters::getInstance()->getComponentParams('regularlabsmanager');
if (empty($params) || empty($params->key))
{
return true;
}
$uri->setVar('k', $params->key);
$url = $uri->toString();
return true;
}
public function onAjaxRegularLabs()
{
$input = JFactory::getApplication()->input;
$format = $input->getString('format', 'json');
$attributes = RL_Uri::getCompressedAttributes();
$attributes = new Registry($attributes);
$field = $attributes->get('field');
$field_type = $attributes->get('fieldtype');
$class = $this->getAjaxClass($field, $field_type);
if (empty($class) || ! class_exists($class))
{
return false;
}
$type = isset($attributes->type) ? $attributes->type :
'';
$method = 'getAjax' . ucfirst($format) . ucfirst($type);
$class = new $class;
if ( ! method_exists($class, $method))
{
return false;
}
echo $class->$method($attributes);
}
public function getAjaxClass($field, $field_type = '')
{
if (empty($field))
{
return false;
}
if ($field_type)
{
return $this->getFieldClass($field, $field_type);
}
$file = JPATH_LIBRARIES . '/regularlabs/fields/' .
strtolower($field) . '.php';
if ( ! file_exists($file))
{
return $this->getFieldClass($field, $field);
}
require_once $file;
return 'JFormFieldRL_' . ucfirst($field);
}
public function getFieldClass($field, $field_type)
{
$file = JPATH_PLUGINS . '/fields/' . strtolower($field_type) .
'/fields/' . strtolower($field) . '.php';
if ( ! file_exists($file))
{
return false;
}
require_once $file;
return 'JFormField' . ucfirst($field);
}
}