feat(deployed): add MooTable 1.1.3 (no-source, vetted live)
MooTable system plugin (Roberto Segura); unmapped -> deployed files. Signed-off-by: LÁZÁR Imre <imre@illusion.hu> Assisted-by: claude-code@claude-opus-4-8
This commit is contained in:
parent
0c8f64ffcc
commit
493845f4de
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Plugin
|
||||||
|
* @subpackage System.Mootable
|
||||||
|
*
|
||||||
|
* @author Roberto Segura <roberto@phproberto.com>
|
||||||
|
* @copyright (c) 2012 Roberto Segura. All Rights Reserved.
|
||||||
|
* @license GNU/GPL 2, http://www.gnu.org/licenses/gpl-2.0.htm
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
JLoader::import('joomla.form.formfield');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fake field to display a header in settings
|
||||||
|
*
|
||||||
|
* @package Joomla.Plugin
|
||||||
|
* @subpackage System.Mootable
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
class MootableFormFieldHeader extends JFormField
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The form field type.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
var $type = 'header';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get the field input markup for a generic list.
|
||||||
|
* Use the multiple attribute to enable multiselect.
|
||||||
|
*
|
||||||
|
* @return string The field input markup.
|
||||||
|
*
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
function getInput()
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get the field label markup.
|
||||||
|
*
|
||||||
|
* @return string The field label markup.
|
||||||
|
*
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
function getLabel()
|
||||||
|
{
|
||||||
|
return '<h4 class="settings-header" style="clear: both;">' . JText::_((string) $this->element['label']) . ':</h4>';
|
||||||
|
}
|
||||||
|
}
|
||||||
54
deployed/mootable/plugins/system/mootable/forms/menuitem.xml
Normal file
54
deployed/mootable/plugins/system/mootable/forms/menuitem.xml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<form>
|
||||||
|
<fields name="params" addfieldpath="plugins/system/mootable/forms/fields">
|
||||||
|
<fieldset
|
||||||
|
name="mootable"
|
||||||
|
label="PLG_SYS_MOOTABLE_OPTIONS"
|
||||||
|
>
|
||||||
|
<field type="header" name="header" label="PLG_SYS_MOOTABLE_HEADER_MOOTOOLS" />
|
||||||
|
<field
|
||||||
|
name="mootable"
|
||||||
|
type="radio"
|
||||||
|
label="PLG_SYS_MOOTABLE_ENABLE_MOOTOOLS_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_ENABLE_MOOTOOLS_DESC"
|
||||||
|
default=""
|
||||||
|
class="btn-group"
|
||||||
|
>
|
||||||
|
<option value="">JDEFAULT</option>
|
||||||
|
<option value="1">JENABLED</option>
|
||||||
|
<option value="0">JDISABLED</option>
|
||||||
|
</field>
|
||||||
|
<field
|
||||||
|
name="moreMode"
|
||||||
|
type="radio"
|
||||||
|
label="PLG_SYS_MOOTABLE_ENABLE_MOOTOOLS_MORE_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_ENABLE_MOOTOOLS_MORE_DESC"
|
||||||
|
default=""
|
||||||
|
class="btn-group"
|
||||||
|
>
|
||||||
|
<option value="">JDEFAULT</option>
|
||||||
|
<option value="1">JENABLED</option>
|
||||||
|
<option value="0">JDISABLED</option>
|
||||||
|
</field>
|
||||||
|
<field type="header" name="header1" label="PLG_SYS_MOOTABLE_HEADER_ADDITIONAL_ASSETS" />
|
||||||
|
<field
|
||||||
|
name="disabledScripts"
|
||||||
|
type="textarea"
|
||||||
|
default=""
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_JS_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_JS_DESC"
|
||||||
|
rows="5"
|
||||||
|
cols="30"
|
||||||
|
/>
|
||||||
|
<field
|
||||||
|
name="disabledStylesheets"
|
||||||
|
type="textarea"
|
||||||
|
default=""
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_CSS_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_CSS_DESC"
|
||||||
|
rows="5"
|
||||||
|
cols="30"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
</fields>
|
||||||
|
</form>
|
||||||
1
deployed/mootable/plugins/system/mootable/index.html
Normal file
1
deployed/mootable/plugins/system/mootable/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html><body></body></html>
|
||||||
494
deployed/mootable/plugins/system/mootable/mootable.php
Normal file
494
deployed/mootable/plugins/system/mootable/mootable.php
Normal file
@ -0,0 +1,494 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Plugin
|
||||||
|
* @subpackage System.Mootable
|
||||||
|
*
|
||||||
|
* @author Roberto Segura <roberto@phproberto.com>
|
||||||
|
* @copyright (c) 2012 Roberto Segura. All Rights Reserved.
|
||||||
|
* @license GNU/GPL 2, http://www.gnu.org/licenses/gpl-2.0.htm
|
||||||
|
*/
|
||||||
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
JLoader::import('joomla.plugin.plugin');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main plugin class
|
||||||
|
*
|
||||||
|
* @package Joomla.Plugin
|
||||||
|
* @subpackage System.Mootable
|
||||||
|
* @since 2.5
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class PlgSystemMootable extends JPlugin
|
||||||
|
{
|
||||||
|
// Plugin info constants
|
||||||
|
const TYPE = 'system';
|
||||||
|
const NAME = 'mootable';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin details from DB
|
||||||
|
*
|
||||||
|
* @var object
|
||||||
|
*/
|
||||||
|
private $plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin parameters
|
||||||
|
*
|
||||||
|
* @var JRegistry
|
||||||
|
*/
|
||||||
|
public $params;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Path to the plugin folder
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $pathPlugin = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base Url to the plugin folder
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $urlPlugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Components where the plugin is allowed to be loaded
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $componentsEnabled = array('*');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Views where the plugin is allowed to be loaded
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $viewsEnabled = array('*');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is this plugin enabled in frontend?
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
private $frontendEnabled = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is this plugin enabled on backend?
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
private $backendEnabled = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param mixed &$subject Subject
|
||||||
|
*/
|
||||||
|
function __construct( &$subject )
|
||||||
|
{
|
||||||
|
parent::__construct($subject);
|
||||||
|
|
||||||
|
// Load plugin parameters
|
||||||
|
$this->plugin = JPluginHelper::getPlugin(self::TYPE, self::NAME);
|
||||||
|
$this->params = new JRegistry($this->plugin->params);
|
||||||
|
|
||||||
|
// Init folder structure
|
||||||
|
$this->initFolders();
|
||||||
|
|
||||||
|
// Load plugin language
|
||||||
|
$this->loadLanguage('plg_' . self::TYPE . '_' . self::NAME, JPATH_ADMINISTRATOR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is triggered before the framework creates the Head section of the Document.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
function onBeforeCompileHead()
|
||||||
|
{
|
||||||
|
// Validate view
|
||||||
|
if (!$this->validateUrl())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Required objects
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$doc = JFactory::getDocument();
|
||||||
|
$pageParams = $app->getParams();
|
||||||
|
|
||||||
|
// Check if we have to disable Mootools for this item
|
||||||
|
$mootoolsMode = $pageParams->get('mootable', $this->params->get('defaultMode', 0));
|
||||||
|
$moreMode = $pageParams->get('moreMode', $this->params->get('defaultMoreMode', 0));
|
||||||
|
|
||||||
|
$disableOnDebug = $this->params->get('disableWhenDebug', 1);
|
||||||
|
|
||||||
|
if (!$this->isAutoEnabled() && 0 == $mootoolsMode)
|
||||||
|
{
|
||||||
|
// Function used to replace window.addEvent()
|
||||||
|
$doc->addScriptDeclaration("function do_nothing() { return; }");
|
||||||
|
|
||||||
|
// Disable mootools javascript
|
||||||
|
$this->disableScript('/media/system/js/mootools-core.js');
|
||||||
|
|
||||||
|
// From v3.3 core does not require mootools anymore
|
||||||
|
if (version_compare(JVERSION, '3.3', '<'))
|
||||||
|
{
|
||||||
|
$this->disableScript('/media/system/js/core.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->disableScript('/media/system/js/mootools-more.js');
|
||||||
|
$this->disableScript('/media/system/js/caption.js');
|
||||||
|
$this->disableScript('/media/system/js/modal.js');
|
||||||
|
$this->disableScript('/media/system/js/mootools.js');
|
||||||
|
$this->disableScript('/plugins/system/mtupgrade/mootools.js');
|
||||||
|
|
||||||
|
// Disabled mootools javascript when debugging site
|
||||||
|
if ($disableOnDebug)
|
||||||
|
{
|
||||||
|
$this->disableScript('/media/system/js/mootools-core-uncompressed.js');
|
||||||
|
$this->disableScript('/media/system/js/mootools-core-uncompressed.js');
|
||||||
|
$this->disableScript('/media/system/js/mootools-more-uncompressed.js');
|
||||||
|
$this->disableScript('/media/system/js/core-uncompressed.js');
|
||||||
|
$this->disableScript('/media/system/js/caption-uncompressed.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable css stylesheets
|
||||||
|
$this->disableStylesheet('/media/system/css/modal.css');
|
||||||
|
}
|
||||||
|
elseif (0 == $moreMode)
|
||||||
|
{
|
||||||
|
$this->disableScript('/media/system/js/mootools-more.js');
|
||||||
|
|
||||||
|
if ($disableOnDebug)
|
||||||
|
{
|
||||||
|
$this->disableScript('/media/system/js/mootools-more-uncompressed.js');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable additional assets specified by the user
|
||||||
|
$this->disablePageScripts();
|
||||||
|
$this->disablePageStylesheets();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is triggered after pushing the document buffers into the template placeholders,
|
||||||
|
* retrieving data from the document and pushing it into the into the JResponse buffer.
|
||||||
|
* http://docs.joomla.org/Plugin/Events/System
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
function onAfterRender()
|
||||||
|
{
|
||||||
|
// Validate view
|
||||||
|
if (!$this->validateUrl())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Required objects
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$doc = JFactory::getDocument();
|
||||||
|
$pageParams = $app->getParams();
|
||||||
|
|
||||||
|
// Check if we have to disable Mootools for this item
|
||||||
|
$mode = $pageParams->get('mootable', $this->params->get('defaultMode', 0));
|
||||||
|
|
||||||
|
if (!$this->isAutoEnabled() && !$mode)
|
||||||
|
{
|
||||||
|
// Get the generated content
|
||||||
|
$body = JResponse::getBody();
|
||||||
|
|
||||||
|
// Remove JCaption JS calls
|
||||||
|
$pattern = "/(new JCaption\()(.*)(\);)/isU";
|
||||||
|
$replacement = '';
|
||||||
|
$body = preg_replace($pattern, $replacement, $body);
|
||||||
|
|
||||||
|
// Null window.addEvent( calls
|
||||||
|
$pattern = "/(window.addEvent\()(.*)(,)/isU";
|
||||||
|
$body = preg_replace($pattern, 'do_nothing(', $body);
|
||||||
|
JResponse::setBody($body);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change forms before they are shown to the user
|
||||||
|
*
|
||||||
|
* @param JForm $form JForm object
|
||||||
|
* @param array $data Data array
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function onContentPrepareForm($form, $data)
|
||||||
|
{
|
||||||
|
// Check we have a form
|
||||||
|
if (!($form instanceof JForm))
|
||||||
|
{
|
||||||
|
$this->_subject->setError('JERROR_NOT_A_FORM');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extra parameters for menu edit
|
||||||
|
if ($form->getName() == 'com_menus.item')
|
||||||
|
{
|
||||||
|
$form->loadFile($this->pathPlugin . '/forms/menuitem.xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a javascript file call from header
|
||||||
|
*
|
||||||
|
* @param string $script URL to script (both global/relative should work)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function disableScript($script)
|
||||||
|
{
|
||||||
|
$script = trim($script);
|
||||||
|
|
||||||
|
if (!empty($script))
|
||||||
|
{
|
||||||
|
$doc = JFactory::getDocument();
|
||||||
|
$uri = JUri::getInstance();
|
||||||
|
|
||||||
|
$relativePath = trim(str_replace($uri->getPath(), '', JUri::root()), '/');
|
||||||
|
$relativeScript = trim(str_replace($uri->getPath(), '', $script), '/');
|
||||||
|
$relativeUrl = str_replace($relativePath, '', $script);
|
||||||
|
|
||||||
|
// Try to disable relative and full URLs
|
||||||
|
unset($doc->_scripts[$script]);
|
||||||
|
unset($doc->_scripts[$relativeUrl]);
|
||||||
|
unset($doc->_scripts[JUri::root(true) . $script]);
|
||||||
|
unset($doc->_scripts[$relativeScript]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a stylesheet file call from header
|
||||||
|
*
|
||||||
|
* @param string $stylesheet URL to the stylesheet (both global/relative should work)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function disableStylesheet($stylesheet)
|
||||||
|
{
|
||||||
|
$stylesheet = trim($stylesheet);
|
||||||
|
|
||||||
|
if (!empty($stylesheet))
|
||||||
|
{
|
||||||
|
$doc = JFactory::getDocument();
|
||||||
|
$uri = JUri::getInstance();
|
||||||
|
|
||||||
|
$relativePath = trim(str_replace($uri->getPath(), '', JUri::root()), '/');
|
||||||
|
$relativeStylesheet = trim(str_replace($uri->getPath(), '', $stylesheet), '/');
|
||||||
|
$relativeUrl = str_replace($relativePath, '', $stylesheet);
|
||||||
|
|
||||||
|
// Try to disable relative and full URLs
|
||||||
|
unset($doc->_styleSheets[$stylesheet]);
|
||||||
|
unset($doc->_styleSheets[$relativeUrl]);
|
||||||
|
unset($doc->_styleSheets[JUri::root(true) . $stylesheet]);
|
||||||
|
unset($doc->_styleSheets[$relativeStylesheet]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the page scripts
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function disablePageScripts()
|
||||||
|
{
|
||||||
|
$pageParams = JFactory::getApplication()->getParams();
|
||||||
|
|
||||||
|
// Other scripts disabled
|
||||||
|
$globalDisabled = str_replace("\n", ",", $this->params->get('manualDisable', null));
|
||||||
|
$menuDisabled = str_replace("\n", ",", $pageParams->get('disabledScripts', null));
|
||||||
|
|
||||||
|
$scriptsDisabled = array_unique(array_merge(explode(',', $globalDisabled), explode(',', $menuDisabled)));
|
||||||
|
|
||||||
|
// Disable 3rd party extensions added by the user
|
||||||
|
if (!empty($scriptsDisabled))
|
||||||
|
{
|
||||||
|
foreach ($scriptsDisabled as $script)
|
||||||
|
{
|
||||||
|
$this->disableScript($script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the page stylesheets
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function disablePageStylesheets()
|
||||||
|
{
|
||||||
|
$pageParams = JFactory::getApplication()->getParams();
|
||||||
|
|
||||||
|
// Other scripts disabled
|
||||||
|
$globalDisabled = str_replace("\n", ",", $this->params->get('disabledStylesheets', null));
|
||||||
|
$menuDisabled = str_replace("\n", ",", $pageParams->get('disabledStylesheets', null));
|
||||||
|
|
||||||
|
$stylesheetsDisabled = array_unique(array_merge(explode(',', $globalDisabled), explode(',', $menuDisabled)));
|
||||||
|
|
||||||
|
if (!empty($stylesheetsDisabled))
|
||||||
|
{
|
||||||
|
foreach ($stylesheetsDisabled as $stylesheet)
|
||||||
|
{
|
||||||
|
$this->disableStylesheet($stylesheet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* initialize folder structure
|
||||||
|
*
|
||||||
|
* @return none
|
||||||
|
*/
|
||||||
|
private function initFolders()
|
||||||
|
{
|
||||||
|
// Path
|
||||||
|
$this->pathPlugin = JPATH_PLUGINS . '/' . self::TYPE . '/' . self::NAME;
|
||||||
|
|
||||||
|
// Url
|
||||||
|
$this->urlPlugin = JURI::root(true) . "/plugins/" . self::TYPE . "/" . self::NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detect if the user is editing an article
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function isAutoEnabled()
|
||||||
|
{
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
$jinput = $app->input;
|
||||||
|
$option = $jinput->get('option', null);
|
||||||
|
$view = $jinput->get('view', null);
|
||||||
|
$id = $jinput->get('id', null);
|
||||||
|
$layout = $jinput->get('layout', null);
|
||||||
|
|
||||||
|
// Always enable mootools for given components
|
||||||
|
if ($alwaysEnable = $this->params->get('alwaysEnable', null))
|
||||||
|
{
|
||||||
|
// Allow ENTER separated and remove spaces
|
||||||
|
$components = str_replace(array("\n", " "), array(",", ""), $alwaysEnable);
|
||||||
|
$components = explode(',', $components);
|
||||||
|
|
||||||
|
if (in_array($option, $components))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allways enable for content edition
|
||||||
|
$isContentEdit = $this->params->get('contentEdition', 1);
|
||||||
|
|
||||||
|
if ($app->isSite() && $isContentEdit && $option == 'com_content' && $view == 'form' && $layout == 'edit')
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allways enable for frontend com_users (login, profile edit, etc.)
|
||||||
|
$enableComUsers = $this->params->get('enableComUsers', 1);
|
||||||
|
|
||||||
|
if ($app->isSite() && $enableComUsers && $option == 'com_users')
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* validate if the plugin is enabled for current application (frontend / backend)
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function validateApplication()
|
||||||
|
{
|
||||||
|
$app = JFactory::getApplication();
|
||||||
|
|
||||||
|
if ( ($app->isSite() && $this->frontendEnabled) || ($app->isAdmin() && $this->backendEnabled) )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate option in url
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function validateComponent()
|
||||||
|
{
|
||||||
|
$option = JFactory::getApplication()->input->get('option');
|
||||||
|
|
||||||
|
if ( in_array('*', $this->componentsEnabled) || in_array($option, $this->componentsEnabled) )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom method for extra validations
|
||||||
|
*
|
||||||
|
* @return true
|
||||||
|
*/
|
||||||
|
private function validateExtra()
|
||||||
|
{
|
||||||
|
return $this->validateApplication();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the plugin enabled for this url?
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function validateUrl()
|
||||||
|
{
|
||||||
|
if ( $this->validateComponent() && $this->validateView())
|
||||||
|
{
|
||||||
|
if (method_exists($this, 'validateExtra'))
|
||||||
|
{
|
||||||
|
return $this->validateExtra();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* validate view parameter in url
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private function validateView()
|
||||||
|
{
|
||||||
|
$view = JFactory::getApplication()->input->get('view');
|
||||||
|
|
||||||
|
if ( in_array('*', $this->viewsEnabled) || in_array($view, $this->viewsEnabled))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
117
deployed/mootable/plugins/system/mootable/mootable.xml
Normal file
117
deployed/mootable/plugins/system/mootable/mootable.xml
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<extension version="2.5" type="plugin" group="system" method="upgrade">
|
||||||
|
<name>PLG_SYS_MOOTABLE</name>
|
||||||
|
<author>Roberto Segura</author>
|
||||||
|
<creationDate>June 2015</creationDate>
|
||||||
|
<copyright>Copyright (C) 2012-2013 Roberto Segura. All rights reserved.</copyright>
|
||||||
|
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
|
||||||
|
<authorEmail>roberto@phproberto.com</authorEmail>
|
||||||
|
<authorUrl>http://digitaldisseny.com/en/extensions/showtags-content-tags-joomla-plugin</authorUrl>
|
||||||
|
<version>1.1.3</version>
|
||||||
|
<description>PLG_SYS_MOOTABLE_XML_DESC</description>
|
||||||
|
<files>
|
||||||
|
<folder>forms</folder>
|
||||||
|
<filename plugin="mootable">mootable.php</filename>
|
||||||
|
<filename>index.html</filename>
|
||||||
|
</files>
|
||||||
|
<languages>
|
||||||
|
<!-- en-GB -->
|
||||||
|
<language tag="en-GB">language/en-GB/en-GB.plg_system_mootable.ini</language>
|
||||||
|
<language tag="en-GB">language/en-GB/en-GB.plg_system_mootable.sys.ini</language>
|
||||||
|
<!-- es-ES -->
|
||||||
|
<language tag="es-ES">language/es-ES/es-ES.plg_system_mootable.ini</language>
|
||||||
|
<language tag="es-ES">language/es-ES/es-ES.plg_system_mootable.sys.ini</language>
|
||||||
|
</languages>
|
||||||
|
<updateservers>
|
||||||
|
<server type="extension" priority="1" name="Mootools enabler/Disabler">https://raw.github.com/phproberto/joomla-updates/master/plg_sys_mootable/updates.xml</server>
|
||||||
|
</updateservers>
|
||||||
|
<config>
|
||||||
|
<fields name="params" addfieldpath="plugins/system/mootable/forms/fields">
|
||||||
|
<fieldset name="basic">
|
||||||
|
<field type="mootable.header" name="header" label="PLG_SYS_MOOTABLE_HEADER_DEFAULTS" />
|
||||||
|
<field
|
||||||
|
name="defaultMode"
|
||||||
|
type="radio"
|
||||||
|
default="0"
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_DEFAULT_MODE_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_DEFAULT_MODE_DESC"
|
||||||
|
class="btn-group"
|
||||||
|
>
|
||||||
|
<option value="1">JENABLED</option>
|
||||||
|
<option value="0">JDISABLED</option>
|
||||||
|
</field>
|
||||||
|
<field
|
||||||
|
name="defaultMoreMode"
|
||||||
|
type="radio"
|
||||||
|
default="0"
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_DEFAULT_MOOTOOLS_MORE_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_DEFAULT_MOOTOOLS_MORE_DESC"
|
||||||
|
class="btn-group"
|
||||||
|
>
|
||||||
|
<option value="1">JENABLED</option>
|
||||||
|
<option value="0">JDISABLED</option>
|
||||||
|
</field>
|
||||||
|
<field type="mootable.header" name="header1" label="PLG_SYS_MOOTABLE_HEADER_ADDITIONAL_ASSETS" />
|
||||||
|
<field
|
||||||
|
name="manualDisable"
|
||||||
|
type="textarea"
|
||||||
|
default=""
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_JS_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_JS_DESC"
|
||||||
|
rows="5"
|
||||||
|
cols="30"
|
||||||
|
/>
|
||||||
|
<field
|
||||||
|
name="disabledStylesheets"
|
||||||
|
type="textarea"
|
||||||
|
default=""
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_CSS_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_MANUAL_DISABLED_CSS_DESC"
|
||||||
|
rows="5"
|
||||||
|
cols="30"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset name="autoenable">
|
||||||
|
<field name="contentEdition" type="radio"
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_CONTENT_EDITION_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_CONTENT_EDITION_DESC"
|
||||||
|
class="btn-group"
|
||||||
|
default="1"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
<field name="enableComUsers" type="radio"
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_ENABLE_COM_USERS_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_ENABLE_COM_USERS_DESC"
|
||||||
|
default="1"
|
||||||
|
class="btn-group"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
<field
|
||||||
|
name="alwaysEnable"
|
||||||
|
type="textarea"
|
||||||
|
default=""
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_COMPONENTS_ENABLE_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_COMPONENTS_ENABLE_DESC"
|
||||||
|
rows="5"
|
||||||
|
cols="30"
|
||||||
|
/>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset name="advanced">
|
||||||
|
<field name="disableWhenDebug"
|
||||||
|
type="radio"
|
||||||
|
label="PLG_SYS_MOOTABLE_FIELD_DISABLE_WHEN_DEBUG_LABEL"
|
||||||
|
description="PLG_SYS_MOOTABLE_FIELD_DISABLE_WHEN_DEBUG_DESC"
|
||||||
|
default="1"
|
||||||
|
class="btn-group"
|
||||||
|
>
|
||||||
|
<option value="1">JYES</option>
|
||||||
|
<option value="0">JNO</option>
|
||||||
|
</field>
|
||||||
|
</fieldset>
|
||||||
|
</fields>
|
||||||
|
</config>
|
||||||
|
</extension>
|
||||||
Loading…
Reference in New Issue
Block a user