NexusLeads Webshell
NexusLeads


Server : LiteSpeed
System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : alsaif ( 1057)
PHP Version : 7.4.33
Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/alsaif/domains/alsaif.group/public_html/libraries/regularlabs/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/alsaif/domains/alsaif.group/public_html/libraries/regularlabs/src/EditorButtonPlugin.php
<?php
/**
 * @package         Regular Labs Library
 * @version         23.9.3039
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

namespace RegularLabs\Library;

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Object\CMSObject as JObject;
use Joomla\CMS\Plugin\CMSPlugin as JCMSPlugin;
use ReflectionClass;
use RegularLabs\Library\ParametersNew as Parameters;

/**
 * Class EditorButtonPlugin
 *
 * @package RegularLabs\Library
 */
class EditorButtonPlugin extends JCMSPlugin
{
    var          $check_installed      = null;
    var          $enable_on_acymailing = false;
    var          $folder               = null; // The type of extension that holds the parameters
    var          $main_type            = 'plugin'; // The types of extensions that need to be checked (will default to main_type)
    var          $require_core_auth    = true; // Whether or not the core content create/edit permissions are required
    private      $_helper              = null; // The path to the original caller file
    private bool $_init                = false; // Whether or not to enable the editor button on AcyMailing

    public function extraChecks($params)
    {
        return true;
    }

    /*
     * Below methods are general functions used in most of the Regular Labs extensions
     * The reason these are not placed in the Regular Labs Library files is that they also
     * need to be used when the Regular Labs Library is not installed
     */

    /**
     * Display the button
     *
     * @param string $editor_name
     *
     * @return JObject|null A button object
     */
    public function onDisplay($editor_name)
    {
        if ( ! $this->getHelper())
        {
            return null;
        }

        return $this->_helper->render($editor_name, $this->_subject);
    }

    private function getDir()
    {
        // use static::class instead of get_class($this) after php 5.4 support is dropped
        $rc = new ReflectionClass(get_class($this));

        return dirname($rc->getFileName());
    }

    /**
     * Create the helper object
     *
     * @return object|null The plugins helper object
     */
    private function getHelper()
    {
        // Already initialized, so return
        if ($this->_init)
        {
            return $this->_helper;
        }

        $this->_init = true;

        if ( ! Extension::isFrameworkEnabled())
        {
            return null;
        }

        if ( ! Extension::isAuthorised($this->require_core_auth))
        {
            return null;
        }

        if ( ! $this->isInstalled())
        {
            return null;
        }

        if ( ! $this->enable_on_acymailing && JFactory::getApplication()->input->get('option') == 'com_acymailing')
        {
            return null;
        }

        $params = $this->getParams();

        if ( ! Extension::isEnabledInComponent($params))
        {
            return null;
        }

        if ( ! Extension::isEnabledInArea($params))
        {
            return null;
        }

        if ( ! $this->extraChecks($params))
        {
            return null;
        }

        require_once $this->getDir() . '/helper.php';
        $class_name    = 'PlgButton' . ucfirst($this->_name) . 'Helper';
        $this->_helper = new $class_name($this->_name, $params);

        return $this->_helper;
    }

    private function getParams()
    {
        switch ($this->main_type)
        {
            case 'component':
                if ( ! Protect::isComponentInstalled($this->_name))
                {
                    return null;
                }

                // Load component parameters
                return Parameters::getComponent($this->_name);

            case 'plugin':
            default:
                if ( ! Protect::isSystemPluginInstalled($this->_name))
                {
                    return null;
                }

                // Load plugin parameters
                return Parameters::getPlugin($this->_name);
        }
    }

    private function isInstalled()
    {
        $extensions = ! is_null($this->check_installed)
            ? $this->check_installed
            : [$this->main_type];

        return Extension::areInstalled($this->_name, $extensions);
    }
}

NexusLeads