first commit
This commit is contained in:
115
plugins/system/quantummenus/quantummenus.php
Normal file
115
plugins/system/quantummenus/quantummenus.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/**
|
||||
* @package quantummenus
|
||||
* @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\Component\ComponentHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Menu\AdministratorMenuItem;
|
||||
use Joomla\CMS\Plugin\CMSPlugin;
|
||||
use Joomla\Database\DatabaseDriver;
|
||||
|
||||
/**
|
||||
* Quantummenus plugin.
|
||||
*
|
||||
* @package quantummanagermedia
|
||||
* @since 1.0
|
||||
*/
|
||||
class plgSystemQuantummenus extends CMSPlugin
|
||||
{
|
||||
|
||||
protected $app;
|
||||
|
||||
|
||||
protected $db;
|
||||
|
||||
|
||||
protected $autoloadLanguage = true;
|
||||
|
||||
|
||||
protected $loadAdminMenu = false;
|
||||
|
||||
|
||||
protected $removeAdminMenu = false;
|
||||
|
||||
|
||||
protected $install_quantummanager = false;
|
||||
|
||||
|
||||
public function __construct(&$subject, $config = array())
|
||||
{
|
||||
parent::__construct($subject, $config);
|
||||
|
||||
if(file_exists(JPATH_SITE . '/administrator/components/com_quantummanager/quantummanager.php'))
|
||||
{
|
||||
$this->install_quantummanager = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function onPreprocessMenuItems($context, $children)
|
||||
{
|
||||
if(!$this->install_quantummanager)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
JLoader::register('QuantummanagerHelper', JPATH_ADMINISTRATOR . '/components/com_quantummanager/helpers/quantummanager.php');
|
||||
|
||||
if (
|
||||
QuantummanagerHelper::isJoomla4() &&
|
||||
QuantummanagerHelper::getParamsComponentValue('itemmenumove', false) &&
|
||||
$this->app->isClient('administrator') &&
|
||||
$context === 'com_menus.administrator.module' &&
|
||||
Factory::getUser()->authorise('core.create', 'com_quantummanager')
|
||||
)
|
||||
{
|
||||
if ($this->loadAdminMenu === false)
|
||||
{
|
||||
QuantummanagerHelper::loadLang();
|
||||
|
||||
$const = 'COM_QUANTUMMANAGER';
|
||||
|
||||
if (QuantummanagerHelper::getParamsComponentValue('itemmenumovefiles', false))
|
||||
{
|
||||
$const = 'COM_QUANTUMMANAGER_MENUS_FILES';
|
||||
}
|
||||
|
||||
$parent = new AdministratorMenuItem ([
|
||||
'title' => $const,
|
||||
'type' => 'component',
|
||||
'link' => 'index.php?option=com_quantummanager',
|
||||
'element' => 'com_quantummanager',
|
||||
'class' => 'class:folder-open',
|
||||
'ajaxbadge' => null,
|
||||
'dashboard' => false
|
||||
]);
|
||||
|
||||
/* @var $root AdministratorMenuItem */
|
||||
$root = $children[0]->getParent();
|
||||
$root->addChild($parent);
|
||||
$this->loadAdminMenu = true;
|
||||
|
||||
}
|
||||
elseif ($this->removeAdminMenu === false)
|
||||
{
|
||||
foreach ($children as $child)
|
||||
{
|
||||
if ($child->type === 'component'
|
||||
&& (int) $child->component_id === ComponentHelper::getComponent('com_quantummanager')->id)
|
||||
{
|
||||
$child->getParent()->removeChild($child);
|
||||
$this->removeAdminMenu = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user