__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php /** * @package Regular Labs Library * @version 25.6.10828 * * @author Peter van Westen <[email protected]> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Library; defined('_JEXEC') or die; use Joomla\CMS\Language\Text as JText; use Joomla\CMS\Object\CMSObject as JObject; use Joomla\CMS\Plugin\CMSPlugin as JCMSPlugin; use Joomla\CMS\Session\Session; use Joomla\Event\DispatcherInterface as JDispatcherInterface; use ReflectionClass; class EditorButtonPlugin extends JCMSPlugin { protected $asset; protected $author; protected $button_icon = ''; protected $check_installed; protected $editor_name = ''; protected $enable_on_acymailing = \false; protected $folder; protected $main_type = 'plugin'; protected $popup_class = ''; protected $require_core_auth = \true; private $_params; private $_pass; public function __construct(JDispatcherInterface &$subject, array $config = []) { parent::__construct($subject, $config); $this->popup_class = $this->popup_class ?: 'Plugin.EditorButton.' . $this->getShortName() . '.Popup'; } public function extraChecks($params) { return \true; } /** * Display the button * * @param string $name The name of the button to display. * @param string $asset The name of the asset being edited. * @param integer $author The id of the author owning the asset being edited. * * @return JObject|false */ public function onDisplay($editor_name, $asset, $author) { $this->editor_name = $editor_name; $this->asset = $asset; $this->author = $author; if (!$this->passChecks()) { return \false; } return $this->render(); } protected function getButtonText() { $params = $this->getParams(); $text_ini = strtoupper(str_replace(' ', '_', $params->button_text ?? $this->_name)); $text = JText::_($text_ini); if ($text == $text_ini) { $text = JText::_($params->button_text ?? $this->_name); } return trim($text); } protected function getParams() { if (!is_null($this->_params)) { return $this->_params; } switch ($this->main_type) { case 'component': if (\RegularLabs\Library\Protect::isComponentInstalled($this->_name)) { // Load component parameters $this->_params = \RegularLabs\Library\Parameters::getComponent($this->_name); } break; case 'plugin': default: if (\RegularLabs\Library\Protect::isSystemPluginInstalled($this->_name)) { // Load plugin parameters $this->_params = \RegularLabs\Library\Parameters::getPlugin($this->_name); } break; } return $this->_params; } protected function getPopupLink() { return 'index.php?rl_qp=1' . '&class=' . $this->popup_class . '&editor=' . $this->editor_name . '&tmpl=component' . '&' . Session::getFormToken() . '=1'; } protected function getPopupOptions() { return ['popupType' => 'iframe', 'height' => '1600px', 'width' => '1200px', 'bodyHeight' => '70', 'modalWidth' => '80']; } protected function loadScripts() { } protected function loadStyles() { } protected function render() { $this->loadScripts(); $this->loadStyles(); return $this->renderPopupButton(); } protected function renderPopupButton() { $button = new JObject(); $button->setProperties(['modal' => \true, 'action' => 'modal', 'name' => $this->_name, 'text' => $this->getButtonText(), 'icon' => $this->_name . '" aria-hidden="true">' . $this->button_icon . '<span></span class="hidden', 'iconSVG' => $this->button_icon, 'link' => $this->getPopupLink(), 'options' => $this->getPopupOptions()]); return $button; } /** * Get the short name of the field class * PlgButtonFoobar => Foobar */ private function getShortName(): string { return substr((new ReflectionClass($this))->getShortName(), strlen('PlgButton')); } private function isInstalled(): bool { $extensions = !is_null($this->check_installed) ? $this->check_installed : [$this->main_type]; return \RegularLabs\Library\Extension::areInstalled($this->_name, $extensions); } private function passChecks(): bool { if (!is_null($this->_pass)) { return $this->_pass; } $this->_pass = \false; if (!\RegularLabs\Library\Extension::isFrameworkEnabled()) { return \false; } if (!\RegularLabs\Library\Extension::isAuthorised($this->require_core_auth)) { return \false; } if (!$this->isInstalled()) { return \false; } if (!$this->enable_on_acymailing && \RegularLabs\Library\Input::get('option', '') == 'com_acymailing') { return \false; } $params = $this->getParams(); if (!\RegularLabs\Library\Extension::isEnabledInComponent($params)) { return \false; } if (!\RegularLabs\Library\Extension::isEnabledInArea($params)) { return \false; } if (!$this->extraChecks($params)) { return \false; } $this->_pass = \true; return \true; } }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Form | Folder | 0775 |
|
|
| ActionLogPlugin.php | File | 7.65 KB | 0664 |
|
| Alias.php | File | 3.38 KB | 0664 |
|
| ArrayHelper.php | File | 13.01 KB | 0664 |
|
| Article.php | File | 10.96 KB | 0664 |
|
| Cache.php | File | 4.74 KB | 0664 |
|
| Color.php | File | 1.9 KB | 0664 |
|
| DB.php | File | 16.24 KB | 0664 |
|
| Date.php | File | 5.18 KB | 0664 |
|
| Document.php | File | 13.34 KB | 0664 |
|
| DownloadKey.php | File | 3.93 KB | 0664 |
|
| EditorButtonPlugin.php | File | 5.61 KB | 0664 |
|
| EditorButtonPopup.php | File | 5.76 KB | 0664 |
|
| Extension.php | File | 14.38 KB | 0664 |
|
| FieldHelper.php | File | 1.92 KB | 0664 |
|
| FieldsPlugin.php | File | 979 B | 0664 |
|
| File.php | File | 12.96 KB | 0664 |
|
| Html.php | File | 24.53 KB | 0664 |
|
| HtmlTag.php | File | 4.53 KB | 0664 |
|
| Http.php | File | 4.33 KB | 0664 |
|
| Image.php | File | 28.24 KB | 0664 |
|
| Input.php | File | 5.28 KB | 0664 |
|
| Language.php | File | 999 B | 0664 |
|
| Layout.php | File | 1.08 KB | 0664 |
|
| License.php | File | 1.72 KB | 0664 |
|
| MobileDetect.php | File | 763 B | 0664 |
|
| ObjectHelper.php | File | 2.57 KB | 0664 |
|
| Parameters.php | File | 6.37 KB | 0664 |
|
| Php.php | File | 6.33 KB | 0664 |
|
| PluginTag.php | File | 15.52 KB | 0664 |
|
| Protect.php | File | 26.27 KB | 0664 |
|
| RegEx.php | File | 6.33 KB | 0664 |
|
| ShowOn.php | File | 1.32 KB | 0664 |
|
| SimpleCategory.php | File | 1.73 KB | 0664 |
|
| StringHelper.php | File | 22.05 KB | 0664 |
|
| StringReplacer.php | File | 13.25 KB | 0664 |
|
| SystemPlugin.php | File | 15.73 KB | 0664 |
|
| Text.php | File | 20.17 KB | 0664 |
|
| Title.php | File | 2.86 KB | 0664 |
|
| Uri.php | File | 5.76 KB | 0664 |
|
| User.php | File | 3.35 KB | 0664 |
|
| Variables.php | File | 11.06 KB | 0664 |
|
| Version.php | File | 7.88 KB | 0664 |
|
| Xml.php | File | 1.47 KB | 0664 |
|