uawdijnntqw1x1x1
IP : 216.73.216.84
Hostname : webm003.cluster107.gra.hosting.ovh.net
Kernel : Linux webm003.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
opticamezl
/
www
/
newok
/
07d6c
/
..
/
cli
/
..
/
c610a
/
..
/
.
/
logs
/
..
/
images
/
..
/
editors-xtd.tar
/
/
fields/src/Extension/Fields.php000064400000006226151664164040012511 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.fields * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Fields\Extension; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Fields button * * @since 3.7.0 */ final class Fields extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.7.0 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @return CMSObject|void The button options as CMSObject * * @since 3.7.0 */ public function onDisplay($name) { // Check if com_fields is enabled if (!ComponentHelper::isEnabled('com_fields')) { return; } // Guess the field context based on view. $jinput = $this->getApplication()->getInput(); $context = $jinput->get('option') . '.' . $jinput->get('view'); // Special context for com_categories if ($context === 'com_categories.category') { $context = $jinput->get('extension', 'com_content') . '.categories'; } $link = 'index.php?option=com_fields&view=fields&layout=modal&tmpl=component&context=' . $context . '&editor=' . $name . '&' . Session::getFormToken() . '=1'; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_EDITORS-XTD_FIELDS_BUTTON_FIELD'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'puzzle'; $button->iconSVG = '<svg viewBox="0 0 576 512" width="24" height="24"><path d="M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.' . '409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.' . '539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758' . 'v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61' . '.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.1' . '01 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56' . '.558-65.792z"></path></svg>'; $button->options = [ 'height' => '300px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } fields/services/provider.php000064400000002456151664164040012216 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.fields * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Fields\Extension\Fields; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Fields( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'fields') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; fields/fields.xml000064400000001561151664164040010014 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_fields</name> <author>Joomla! Project</author> <creationDate>2017-02</creationDate> <copyright>(C) 2017 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.7.0</version> <description>PLG_EDITORS-XTD_FIELDS_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Fields</namespace> <files> <folder plugin="fields">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_fields.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_fields.sys.ini</language> </languages> </extension> sourcerer/sourcerer.xml000060400000003452151664164040011317 0ustar00<?xml version="1.0" encoding="utf-8"?> <extension version="4" type="plugin" group="editors-xtd" method="upgrade"> <name>PLG_EDITORS-XTD_SOURCERER</name> <description>PLG_EDITORS-XTD_SOURCERER_DESC</description> <version>12.1.0</version> <creationDate>June 2025</creationDate> <author>Regular Labs (Peter van Westen)</author> <authorEmail>info@regularlabs.com</authorEmail> <authorUrl>https://regularlabs.com</authorUrl> <copyright>Copyright © 2025 Regular Labs - All Rights Reserved</copyright> <license>GNU General Public License version 2 or later</license> <namespace path="src">RegularLabs\Plugin\EditorButton\Sourcerer</namespace> <scriptfile>script.install.php</scriptfile> <files> <file plugin="sourcerer">sourcerer.php</file> <folder>forms</folder> <folder>language</folder> <folder>src</folder> <folder>tmpl</folder> </files> <config> <fields name="params" addfieldprefix="RegularLabs\Library\Form\Field"> <fieldset name="basic"> <field name="@load_language_regularlabs" type="LoadLanguage" extension="plg_system_regularlabs"/> <field name="@license" type="License" extension="SOURCERER"/> <field name="@version" type="Version" extension="SOURCERER"/> <field name="@dependency" type="Dependency" label="SRC_THE_SYSTEM_PLUGIN" file="/plugins/system/sourcerer/sourcerer.xml"/> <field name="@header" type="Header" label="SOURCERER" description="SOURCERER_DESC" url="https://regularlabs.com/sourcerer"/> <field name="@note__settings" type="Note" class="rl-alert alert alert-info rl-alert-light" text="SRC_SETTINGS,<a href="index.php?option=com_plugins&filter[folder]=system&filter[search]=sourcerer" target="_blank">,</a>"/> </fieldset> </fields> </config> </extension> sourcerer/sourcerer.php000060400000003372151664164040011307 0ustar00<?php /** * @package Sourcerer * @version 12.1.0 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ use Joomla\CMS\Uri\Uri as JUri; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\EditorButtonPlugin as RL_EditorButtonPlugin; use RegularLabs\Library\Extension as RL_Extension; defined('_JEXEC') or die; if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/regularlabs.xml') || ! class_exists('RegularLabs\Library\Parameters') || ! class_exists('RegularLabs\Library\DownloadKey') || ! class_exists('RegularLabs\Library\EditorButtonPlugin') ) { return; } if ( ! RL_Document::isJoomlaVersion(4)) { RL_Extension::disable('sourcerer', 'plugin', 'editors-xtd'); return; } if (true) { class PlgButtonSourcerer extends RL_EditorButtonPlugin { protected $button_icon = '<svg viewBox="0 0 24 24" style="fill:none;" width="24" height="24" fill="none" stroke="currentColor">' . '<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />' . '</svg>'; protected function loadScripts() { $params = $this->getParams(); RL_Document::scriptOptions([ 'syntax_word' => $params->syntax_word, 'tag_characters' => explode('.', $params->tag_characters), 'color_code' => (bool) $params->color_code, 'root' => JUri::root(true), ], 'sourcerer_button'); RL_Document::script('sourcerer.button'); } } } sourcerer/language/pt-PT/pt-PT.plg_editors-xtd_sourcerer.sys.ini000060400000001063151664164040020771 0ustar00;; @package Sourcerer ;; @version 12.1.0 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_EDITORS-XTD_SOURCERER="Botão - Regular Labs - Sourcerer" PLG_EDITORS-XTD_SOURCERER_DESC="Sourcerer - colocar qualquer código em Joomla!" SOURCERER="Sourcerer" sourcerer/language/pt-PT/pt-PT.plg_editors-xtd_sourcerer.ini000060400000001574151664164040020163 0ustar00;; @package Sourcerer ;; @version 12.1.0 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_EDITORS-XTD_SOURCERER="Botão - Regular Labs - Sourcerer" PLG_EDITORS-XTD_SOURCERER_DESC="Sourcerer - colocar qualquer código em Joomla!" SOURCERER="Sourcerer" CODE="Código" SOURCERER_DESC="Com o botão de editor do Sourcerer pode facilmente colocar um código (com as etiquetas e estilos Sourcerer) no seu texto." SRC_SETTINGS="Por favor, veja o [[%1:start link%]]sistema de plugin Sourcerer[[%2:end link%]] para configurações." SRC_THE_SYSTEM_PLUGIN="o sistema de plugin Sourcerer" sourcerer/language/en-GB/en-GB.plg_editors-xtd_sourcerer.sys.ini000060400000001051151664164040020636 0ustar00;; @package Sourcerer ;; @version 12.1.0 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_EDITORS-XTD_SOURCERER="Button - Regular Labs - Sourcerer" PLG_EDITORS-XTD_SOURCERER_DESC="Sourcerer - place any code in Joomla!" SOURCERER="Sourcerer" sourcerer/language/en-GB/en-GB.plg_editors-xtd_sourcerer.ini000060400000001524151664164040020026 0ustar00;; @package Sourcerer ;; @version 12.1.0 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_EDITORS-XTD_SOURCERER="Button - Regular Labs - Sourcerer" PLG_EDITORS-XTD_SOURCERER_DESC="Sourcerer - place any code in Joomla!" SOURCERER="Sourcerer" CODE="Code" SOURCERER_DESC="With the Sourcerer editor button you can easily place your code (with Sourcerer tags and styling) into your text." SRC_SETTINGS="Please see the [[%1:start link%]]Sourcerer system plugin[[%2:end link%]] for settings." SRC_THE_SYSTEM_PLUGIN="the Sourcerer system plugin" sourcerer/script.install.php000060400000002750151664164040012246 0ustar00<?php /** * @package Sourcerer * @version 12.1.0 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ defined('_JEXEC') or die; use Joomla\Filesystem\File as JFile; use Joomla\Filesystem\Folder as JFolder; class PlgEditorsXtdSourcererInstallerScript { public function postflight($install_type, $adapter) { if ( ! in_array($install_type, ['install', 'update'])) { return true; } self::deleteJoomla3Files(); return true; } private static function delete($files = []) { foreach ($files as $file) { if (is_dir($file)) { JFolder::delete($file); } if (is_file($file)) { JFile::delete($file); } } } private static function deleteJoomla3Files() { self::delete( [ JPATH_SITE . '/plugins/editors-xtd/sourcerer/layouts', JPATH_SITE . '/plugins/editors-xtd/sourcerer/fields.xml', JPATH_SITE . '/plugins/editors-xtd/sourcerer/helper.php', JPATH_SITE . '/plugins/editors-xtd/sourcerer/popup.php', JPATH_SITE . '/plugins/editors-xtd/sourcerer/popup.tmpl.php', ] ); } } sourcerer/src/Popup.php000060400000002362151664164040011166 0ustar00<?php /** * @package Sourcerer * @version 12.1.0 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Plugin\EditorButton\Sourcerer; defined('_JEXEC') or die; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\EditorButtonPopup as RL_EditorButtonPopup; use RegularLabs\Library\Input as RL_Input; use RegularLabs\Library\RegEx as RL_RegEx; class Popup extends RL_EditorButtonPopup { protected $extension = 'sourcerer'; protected $require_core_auth = false; protected function loadScripts() { $editor_name = RL_Input::getString('editor', 'text'); // Remove any dangerous character to prevent cross site scripting $editor_name = RL_RegEx::replace('[\'\";\s]', '', $editor_name); RL_Document::script('sourcerer.popup'); $script = "document.addEventListener('DOMContentLoaded', function(){RegularLabs.SourcererPopup.init('" . $editor_name . "')});"; RL_Document::scriptDeclaration($script, 'Sourcerer Button', true, 'after'); } } sourcerer/tmpl/popup.php000060400000005017151664164040011413 0ustar00<?php /** * @package Sourcerer * @version 12.1.0 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ defined('_JEXEC') or die; use Joomla\CMS\Editor\Editor as JEditor; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Form\Form as JForm; use Joomla\CMS\HTML\HTMLHelper as JHtml; use Joomla\CMS\Language\Text as JText; use Joomla\CMS\Plugin\PluginHelper as JPluginHelper; use RegularLabs\Library\Input as RL_Input; $xmlfile = dirname(__FILE__, 2) . '/forms/popup.xml'; $form = new JForm('sourcerer'); $form->loadFile($xmlfile, 1, '//config'); $editor_plugin = JPluginHelper::getPlugin('editors', 'codemirror'); if (empty($editor_plugin)) { JFactory::getApplication()->enqueueMessage(JText::sprintf('RL_ERROR_CODEMIRROR_DISABLED', JText::_('SOURCERER'), '<a href="index.php?option=com_plugins&filter[folder]=editors&filter[search]=codemirror" target="_blank">', '</a>'), 'error'); return ''; } $user = JFactory::getApplication()->getIdentity() ?: JFactory::getUser(); $editor = JEditor::getInstance('codemirror'); ?> <div class="container-fluid container-main"> <div class="row"> <div class="fixed-top"> <button type="button" class="btn btn-success w-100" onclick="parent.RegularLabs.SourcererButton.insertText('<?php echo RL_Input::getCmd('editor'); ?>');window.parent.Joomla.Modal.getCurrent().close();"> <span class="icon-file-import" aria-hidden="true"></span> <?php echo JText::_('RL_INSERT'); ?> </button> </div> <div class="pt-5"></div> </div> <form action="index.php" id="sourcererForm" method="post" style="width:99%"> <input type="hidden" name="type" id="type" value="url"> <?php echo JHtml::_('uitab.startTabSet', 'main', ['active' => 'code']); ?> <?php $tabs = [ 'code' => 'SRC_CODE', 'css' => 'SRC_CSS', 'js' => 'SRC_JAVASCRIPT', 'php' => 'SRC_PHP', 'settings' => 'SRC_TAG_SETTINGS', ]; foreach ($tabs as $id => $title) { echo JHtml::_('uitab.addTab', 'main', $id, JText::_($title)); echo $form->renderFieldset($id); echo JHtml::_('uitab.endTab'); } ?> <?php echo JHtml::_('uitab.endTabSet'); ?> </form> </div> sourcerer/forms/popup.xml000060400000004650151664164040011600 0ustar00<?xml version="1.0" encoding="utf-8"?> <config addfieldprefix="RegularLabs\Library\Form\Field"> <fieldset name="code"> <field name="@code" type="Note" class="rl-alert alert alert-info rl-alert-light" text="SRC_CODE_DESC"/> <field name="@code__a" type="Block" start="1" label="SRC_CODE"/> <field name="code" type="Editor" editor="codemirror" syntax="php" label=""/> <field name="@code__b" type="Block" end="1"/> </fieldset> <fieldset name="css"> <field name="@css_file__a" type="Block" start="1" label="SRC_FILE"/> <field name="@css_file" type="Note" text="SRC_CSS_FILE_DESC"/> <field name="@note__css_file" type="OnlyPro" label=""/> <field name="@css_file__b" type="Block" end="1"/> <field name="@css_code__a" type="Block" start="1" label="SRC_CODE"/> <field name="@css_code" type="Note" text="SRC_CSS_CODE_DESC"/> <field name="@note__css_code" type="OnlyPro" label=""/> <field name="@css_code__b" type="Block" end="1"/> </fieldset> <fieldset name="js"> <field name="@js_file__a" type="Block" start="1" label="SRC_FILE"/> <field name="@js_file" type="Note" text="SRC_JS_FILE_DESC"/> <field name="@note__js_file" type="OnlyPro" label=""/> <field name="@js_file__b" type="Block" end="1"/> <field name="@js_code__a" type="Block" start="1" label="SRC_CODE"/> <field name="@note__js_code" type="OnlyPro" label=""/> <field name="@js_code__b" type="Block" end="1"/> </fieldset> <fieldset name="php"> <field name="@php_file__a" type="Block" start="1" label="SRC_FILE"/> <field name="@note__php_file" type="OnlyPro" label=""/> <field name="@php_file__b" type="Block" end="1"/> <field name="@php_code__a" type="Block" start="1" label="SRC_CODE"/> <field name="@php_code" type="Note" text="SRC_PHP_CODE_DESC"/> <field name="@note__php_code" type="OnlyPro" label=""/> <field name="@php_code__b" type="Block" end="1"/> </fieldset> <fieldset name="settings"> <field name="trim" type="Radio" default="0" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_TRIM" description="SRC_TRIM_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="raw" type="Radio" default="0" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_RAW" description="SRC_RAW_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> </fieldset> </config> index.html000060400000000037151664164040006544 0ustar00<!DOCTYPE html><title></title> readmore/services/provider.php000064400000002467151664164040012550 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.article * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\ReadMore\Extension\ReadMore; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new ReadMore( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'readmore') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; readmore/index.html000060400000000037151664164040010342 0ustar00<!DOCTYPE html><title></title> readmore/readmore.xml000064400000001561151664164040010674 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_readmore</name> <author>Joomla! Project</author> <creationDate>2006-03</creationDate> <copyright>(C) 2006 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.0.0</version> <description>PLG_READMORE_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\ReadMore</namespace> <files> <folder plugin="readmore">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_readmore.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_readmore.sys.ini</language> </languages> </extension> readmore/src/Extension/ReadMore.php000064400000003723151664164040013330 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.readmore * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\ReadMore\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Readmore button * * @since 1.5 */ final class ReadMore extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.1 */ protected $autoloadLanguage = true; /** * Readmore button * * @param string $name The name of the button to add * * @return CMSObject $button A two element array of (imageName, textToInsert) * * @since 1.5 */ public function onDisplay($name) { $doc = $this->getApplication()->getDocument(); $doc->getWebAssetManager() ->registerAndUseScript('com_content.admin-article-readmore', 'com_content/admin-article-readmore.min.js', [], ['defer' => true], ['core']); // Pass some data to javascript $doc->addScriptOptions( 'xtd-readmore', [ 'exists' => Text::_('PLG_READMORE_ALREADY_EXISTS', true), ] ); $button = new CMSObject(); $button->modal = false; $button->onclick = 'insertReadmore(\'' . $name . '\');return false;'; $button->text = Text::_('PLG_READMORE_BUTTON_READMORE'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'arrow-down'; $button->iconSVG = '<svg viewBox="0 0 32 32" width="24" height="24"><path d="M32 12l-6-6-10 10-10-10-6 6 16 16z"></path></svg>'; $button->link = '#'; return $button; } } image/src/Extension/Image.php000064400000015672151664164040012146 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.image * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Image\Extension; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Uri\Uri; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Image button * * @since 1.5 */ final class Image extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.1 */ protected $autoloadLanguage = 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 CMSObject|false * * @since 1.5 */ public function onDisplay($name, $asset, $author) { $doc = $this->getApplication()->getDocument(); $user = $this->getApplication()->getIdentity(); $extension = $this->getApplication()->getInput()->get('option'); // For categories we check the extension (ex: component.section) if ($extension === 'com_categories') { $parts = explode('.', $this->getApplication()->getInput()->get('extension', 'com_content')); $extension = $parts[0]; } $asset = $asset !== '' ? $asset : $extension; if ( $user->authorise('core.edit', $asset) || $user->authorise('core.create', $asset) || (count($user->getAuthorisedCategories($asset, 'core.create')) > 0) || ($user->authorise('core.edit.own', $asset) && $author === $user->id) || (count($user->getAuthorisedCategories($extension, 'core.edit')) > 0) || (count($user->getAuthorisedCategories($extension, 'core.edit.own')) > 0 && $author === $user->id) ) { $doc->getWebAssetManager() ->useScript('webcomponent.media-select') ->useScript('webcomponent.field-media') ->useStyle('webcomponent.media-select'); $doc->addScriptOptions('xtdImageModal', [$name . '_ImageModal']); $doc->addScriptOptions('media-picker-api', ['apiBaseUrl' => Uri::base() . 'index.php?option=com_media&format=json']); if (count($doc->getScriptOptions('media-picker')) === 0) { $imagesExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'image_extensions', 'bmp,gif,jpg,jpeg,png,webp' ) ) ); $audiosExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'audio_extensions', 'mp3,m4a,mp4a,ogg' ) ) ); $videosExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'video_extensions', 'mp4,mp4v,mpeg,mov,webm' ) ) ); $documentsExt = array_map( 'trim', explode( ',', ComponentHelper::getParams('com_media')->get( 'doc_extensions', 'doc,odg,odp,ods,odt,pdf,ppt,txt,xcf,xls,csv' ) ) ); $doc->addScriptOptions('media-picker', [ 'images' => $imagesExt, 'audios' => $audiosExt, 'videos' => $videosExt, 'documents' => $documentsExt, ]); } Text::script('JFIELD_MEDIA_LAZY_LABEL'); Text::script('JFIELD_MEDIA_ALT_LABEL'); Text::script('JFIELD_MEDIA_ALT_CHECK_LABEL'); Text::script('JFIELD_MEDIA_ALT_CHECK_DESC_LABEL'); Text::script('JFIELD_MEDIA_CLASS_LABEL'); Text::script('JFIELD_MEDIA_FIGURE_CLASS_LABEL'); Text::script('JFIELD_MEDIA_FIGURE_CAPTION_LABEL'); Text::script('JFIELD_MEDIA_LAZY_LABEL'); Text::script('JFIELD_MEDIA_SUMMARY_LABEL'); Text::script('JFIELD_MEDIA_EMBED_CHECK_DESC_LABEL'); Text::script('JFIELD_MEDIA_DOWNLOAD_CHECK_DESC_LABEL'); Text::script('JFIELD_MEDIA_DOWNLOAD_CHECK_LABEL'); Text::script('JFIELD_MEDIA_EMBED_CHECK_LABEL'); Text::script('JFIELD_MEDIA_WIDTH_LABEL'); Text::script('JFIELD_MEDIA_TITLE_LABEL'); Text::script('JFIELD_MEDIA_HEIGHT_LABEL'); Text::script('JFIELD_MEDIA_UNSUPPORTED'); Text::script('JFIELD_MEDIA_DOWNLOAD_FILE'); $link = 'index.php?option=com_media&view=media&tmpl=component&e_name=' . $name . '&asset=' . $asset . '&mediatypes=0,1,2,3' . '&author=' . $author; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_IMAGE_BUTTON_IMAGE'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'pictures'; $button->iconSVG = '<svg width="24" height="24" viewBox="0 0 512 512"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48' . ' 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6' . ' 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40' . 'zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4' . '.686-16.971 0L96 304v48z"></path></svg>'; $button->options = [ 'height' => '400px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', 'tinyPath' => $link, 'confirmCallback' => 'Joomla.getImage(Joomla.selectedMediaFile, \'' . $name . '\', this)', 'confirmText' => Text::_('PLG_IMAGE_BUTTON_INSERT'), ]; return $button; } return false; } } image/services/provider.php000064400000002451151664164040012025 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.image * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Image\Extension\Image; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Image( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'image') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; image/index.html000060400000000037151664164040007626 0ustar00<!DOCTYPE html><title></title> image/image.xml000064400000001537151664164040007447 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_image</name> <author>Joomla! Project</author> <creationDate>2004-08</creationDate> <copyright>(C) 2005 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.0.0</version> <description>PLG_IMAGE_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Image</namespace> <files> <folder plugin="image">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_image.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_image.sys.ini</language> </languages> </extension> weblink/src/Extension/Weblink.php000064400000010321151664164040013052 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.weblink * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Weblink\Extension; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects use Joomla\CMS\Application\CMSApplicationInterface; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; use Joomla\Database\DatabaseInterface; use Joomla\Event\DispatcherInterface; /** * Editor Web Link button * * @since __DEPLOY_VERSION__ */ final class Weblink extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since __DEPLOY_VERSION__ */ protected $autoloadLanguage = true; /** * Constructor * * @param DispatcherInterface $dispatcher * @param array $config * @param DatabaseInterface $database */ public function __construct(DispatcherInterface $dispatcher, array $config, CMSApplicationInterface $application) { parent::__construct($dispatcher, $config); $this->setApplication($application); } /** * Display the button * * @param string $name The name of the button to add * * @return CMSObject The button options as JObject * * @since __DEPLOY_VERSION__ */ public function onDisplay($name) { $user = $this->getApplication()->getIdentity(); if ( $user->authorise('core.create', 'com_weblinks') || $user->authorise('core.edit', 'com_weblinks') || $user->authorise('core.edit.own', 'com_weblinks') ) { // The URL for the weblinks list $link = 'index.php?option=com_weblinks&view=weblinks&layout=modal&tmpl=component&' . Session::getFormToken() . '=1&editor=' . $name; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_EDITORS-XTD_WEBLINK_BUTTON_WEBLINK'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'globe'; // phpcs:disable Generic.Files.LineLength $button->iconSVG = '<svg xmlns="http://www.w3.org/2000/svg" width="24 height="24" fill="currentColor" class="bi bi-globe" viewBox="0 0 16 16"> <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm7.5-6.923c-.67.204-1.335.82-1.887 1.855A7.97 7.97 0 0 0 5.145 4H7.5V1.077zM4.09 4a9.267 9.267 0 0 1 .64-1.539 6.7 6.7 0 0 1 .597-.933A7.025 7.025 0 0 0 2.255 4H4.09zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a6.958 6.958 0 0 0-.656 2.5h2.49zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5H4.847zM8.5 5v2.5h2.99a12.495 12.495 0 0 0-.337-2.5H8.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5H4.51zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5H8.5zM5.145 12c.138.386.295.744.468 1.068.552 1.035 1.218 1.65 1.887 1.855V12H5.145zm.182 2.472a6.696 6.696 0 0 1-.597-.933A9.268 9.268 0 0 1 4.09 12H2.255a7.024 7.024 0 0 0 3.072 2.472zM3.82 11a13.652 13.652 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5H3.82zm6.853 3.472A7.024 7.024 0 0 0 13.745 12H11.91a9.27 9.27 0 0 1-.64 1.539 6.688 6.688 0 0 1-.597.933zM8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855.173-.324.33-.682.468-1.068H8.5zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.65 13.65 0 0 1-.312 2.5zm2.802-3.5a6.959 6.959 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5h2.49zM11.27 2.461c.247.464.462.98.64 1.539h1.835a7.024 7.024 0 0 0-3.072-2.472c.218.284.418.598.597.933zM10.855 4a7.966 7.966 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4h2.355z"/> </svg>'; // phpcs:enable Generic.Files.LineLength $button->options = [ 'height' => '300px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } } weblink/language/en-GB/plg_editors-xtd_weblink.ini000064400000000765151664164040016215 0ustar00; Joomla! Project ; Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved. ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php ; Note : All ini files need to be saved as UTF-8 PLG_EDITORS-XTD_WEBLINK="Button - Web Link" PLG_EDITORS-XTD_WEBLINK_BUTTON_WEBLINK="Web Link" PLG_EDITORS-XTD_WEBLINK_XML_DESCRIPTION="Displays a button to make it possible to insert web links into an Article. Displays a popup allowing you to choose the web link." weblink/language/en-GB/en-GB.plg_editors-xtd_weblink.ini000060400000000765151664164040017100 0ustar00; Joomla! Project ; Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved. ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php ; Note : All ini files need to be saved as UTF-8 PLG_EDITORS-XTD_WEBLINK="Button - Web Link" PLG_EDITORS-XTD_WEBLINK_BUTTON_WEBLINK="Web Link" PLG_EDITORS-XTD_WEBLINK_XML_DESCRIPTION="Displays a button to make it possible to insert web links into an Article. Displays a popup allowing you to choose the web link." weblink/language/en-GB/plg_editors-xtd_weblink.sys.ini000064400000000702151664164040017021 0ustar00; Joomla! Project ; Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved. ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php ; Note : All ini files need to be saved as UTF-8 PLG_EDITORS-XTD_WEBLINK="Button - Web Link" PLG_EDITORS-XTD_WEBLINK_XML_DESCRIPTION="Displays a button to make it possible to insert web links into an Article. Displays a popup allowing you to choose the web link." weblink/language/en-GB/en-GB.plg_editors-xtd_weblink.sys.ini000060400000000702151664164040017704 0ustar00; Joomla! Project ; Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved. ; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php ; Note : All ini files need to be saved as UTF-8 PLG_EDITORS-XTD_WEBLINK="Button - Web Link" PLG_EDITORS-XTD_WEBLINK_XML_DESCRIPTION="Displays a button to make it possible to insert web links into an Article. Displays a popup allowing you to choose the web link." weblink/weblink.xml000060400000001542151664164040010361 0ustar00<?xml version="1.0" encoding="utf-8"?> <extension version="3.7" type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_weblink</name> <author>Joomla! Project</author> <creationDate>2025-04-02</creationDate> <copyright>Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>4.4.0</version> <description>PLG_EDITORS-XTD_WEBLINK_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Weblink</namespace> <files> <folder>language</folder> <folder plugin="weblink">services</folder> <folder>src</folder> <file>weblink.xml</file> </files> <languages folder="language"> </languages> </extension> weblink/services/provider.php000064400000002664151664164040012404 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.article * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Weblink\Extension\Weblink; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since __DEPLOY_VERSION__ */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $app = Factory::getApplication(); $dispatcher = $container->get(DispatcherInterface::class); return new Weblink( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'weblink'), $app ); } ); } }; article/services/provider.php000064400000002463151664164040012371 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.article * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Article\Extension\Article; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Article( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'article') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; article/article.xml000064400000001553151664164040010347 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_article</name> <author>Joomla! Project</author> <creationDate>2009-10</creationDate> <copyright>(C) 2009 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.0.0</version> <description>PLG_ARTICLE_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Article</namespace> <files> <folder plugin="article">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_article.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_article.sys.ini</language> </languages> </extension> article/src/Extension/Article.php000064400000005202151664164040013034 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.article * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Article\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Article button * * @since 1.5 */ final class Article extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.1 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @return CMSObject|void The button options as CMSObject, void if ACL check fails. * * @since 1.5 */ public function onDisplay($name) { $user = $this->getApplication()->getIdentity(); // Can create in any category (component permission) or at least in one category $canCreateRecords = $user->authorise('core.create', 'com_content') || count($user->getAuthorisedCategories('com_content', 'core.create')) > 0; // Instead of checking edit on all records, we can use **same** check as the form editing view $values = (array) $this->getApplication()->getUserState('com_content.edit.article.id'); $isEditingRecords = count($values); // This ACL check is probably a double-check (form view already performed checks) $hasAccess = $canCreateRecords || $isEditingRecords; if (!$hasAccess) { return; } $link = 'index.php?option=com_content&view=articles&layout=modal&tmpl=component&' . Session::getFormToken() . '=1&editor=' . $name; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_ARTICLE_BUTTON_ARTICLE'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'file-add'; $button->iconSVG = '<svg viewBox="0 0 32 32" width="24" height="24"><path d="M28 24v-4h-4v4h-4v4h4v4h4v-4h4v-4zM2 2h18v6h6v10h2v-10l-8-' . '8h-20v32h18v-2h-16z"></path></svg>'; $button->options = [ 'height' => '300px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } article/index.html000060400000000037151664164040010167 0ustar00<!DOCTYPE html><title></title> module/src/Extension/Module.php000064400000005071151664164040012544 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.module * * @copyright (C) 2015 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Module\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Module button * * @since 3.5 */ final class Module extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.5 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @return CMSObject|void The button options as CMSObject * * @since 3.5 */ public function onDisplay($name) { /* * Use the built-in element view to select the module. * Currently uses blank class. */ $user = $this->getApplication()->getIdentity(); if ( $user->authorise('core.create', 'com_modules') || $user->authorise('core.edit', 'com_modules') || $user->authorise('core.edit.own', 'com_modules') ) { $link = 'index.php?option=com_modules&view=modules&layout=modal&tmpl=component&editor=' . $name . '&' . Session::getFormToken() . '=1'; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_MODULE_BUTTON_MODULE'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'cube'; $button->iconSVG = '<svg viewBox="0 0 512 512" width="24" height="24"><path d="M239.1 6.3l-208 78c-18.7 7-31.1 ' . '25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 ' . '26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 ' . '78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"></path></svg>'; $button->options = [ 'height' => '300px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } } module/services/provider.php000064400000002457151664164040012236 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.article * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Module\Extension\Module; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Module( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'module') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; module/module.xml000064400000001545151664164040010054 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_module</name> <author>Joomla! Project</author> <creationDate>2015-10</creationDate> <copyright>(C) 2015 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.5.0</version> <description>PLG_MODULE_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Module</namespace> <files> <folder plugin="module">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_module.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_module.sys.ini</language> </languages> </extension> contact/services/provider.php000064400000002463151664164040012401 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.contact * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Contact\Extension\Contact; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Contact( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'contact') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; contact/src/Extension/Contact.php000064400000005457151664164040013070 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.contact * * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Contact\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Contact button * * @since 3.7.0 */ final class Contact extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.7.0 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @return CMSObject|void The button options as CMSObject * * @since 3.7.0 */ public function onDisplay($name) { $user = $this->getApplication()->getIdentity(); if ( $user->authorise('core.create', 'com_contact') || $user->authorise('core.edit', 'com_contact') || $user->authorise('core.edit.own', 'com_contact') ) { // The URL for the contacts list $link = 'index.php?option=com_contact&view=contacts&layout=modal&tmpl=component&' . Session::getFormToken() . '=1&editor=' . $name; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_EDITORS-XTD_CONTACT_BUTTON_CONTACT'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'address'; $button->iconSVG = '<svg viewBox="0 0 448 512" width="24" height="24"><path d="M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c' . '0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 1' . '2-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7' . ' 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.' . '8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z">' . '</path></svg>'; $button->options = [ 'height' => '300px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } } contact/contact.xml000064400000001567151664164040010374 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_contact</name> <author>Joomla! Project</author> <creationDate>2016-10</creationDate> <copyright>(C) 2016 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.7.0</version> <description>PLG_EDITORS-XTD_CONTACT_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Contact</namespace> <files> <folder plugin="contact">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_contact.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_contact.sys.ini</language> </languages> </extension> menu/menu.xml000064400000001545151664164040007212 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_menu</name> <author>Joomla! Project</author> <creationDate>2016-08</creationDate> <copyright>(C) 2016 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.7.0</version> <description>PLG_EDITORS-XTD_MENU_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\Menu</namespace> <files> <folder plugin="menu">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_menu.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_menu.sys.ini</language> </languages> </extension> menu/services/provider.php000064400000002447151664164040011714 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.article * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\Menu\Extension\Menu; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Menu( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'menu') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; menu/src/Extension/Menu.php000064400000005437151664164040011710 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.menu * * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\Menu\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor menu button * * @since 3.7.0 */ final class Menu extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.7.0 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @since 3.7.0 * @return CMSObject */ public function onDisplay($name) { /* * Use the built-in element view to select the menu item. * Currently uses blank class. */ $user = $this->getApplication()->getIdentity(); if ( $user->authorise('core.create', 'com_menus') || $user->authorise('core.edit', 'com_menus') ) { $link = 'index.php?option=com_menus&view=items&layout=modal&tmpl=component&' . Session::getFormToken() . '=1&editor=' . $name; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = Text::_('PLG_EDITORS-XTD_MENU_BUTTON_MENU'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'list'; $button->iconSVG = '<svg viewBox="0 0 512 512" width="24" height="24"><path d="M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 1' . '6 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 ' . '0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H1' . '76a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16' . 'v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16' . 'h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"></path></svg>'; $button->options = [ 'height' => '300px', 'width' => '800px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } } pagebreak/pagebreak.xml000064400000001602151664164040011136 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="editors-xtd" method="upgrade"> <name>plg_editors-xtd_pagebreak</name> <author>Joomla! Project</author> <creationDate>2004-08</creationDate> <copyright>(C) 2005 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.0.0</version> <description>PLG_EDITORSXTD_PAGEBREAK_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\EditorsXtd\PageBreak</namespace> <files> <folder plugin="pagebreak">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_editors-xtd_pagebreak.ini</language> <language tag="en-GB">language/en-GB/plg_editors-xtd_pagebreak.sys.ini</language> </languages> </extension> pagebreak/index.html000060400000000037151664164040010465 0ustar00<!DOCTYPE html><title></title> pagebreak/src/Extension/PageBreak.php000064400000005617151664164040013602 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.pagebreak * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\EditorsXtd\PageBreak\Extension; use Joomla\CMS\Application\CMSWebApplicationInterface; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Editor Pagebreak button * * @since 1.5 */ final class PageBreak extends CMSPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.1 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @return CMSObject|void The button options as CMSObject * * @since 1.5 */ public function onDisplay($name) { $app = $this->getApplication(); if (!$app instanceof CMSWebApplicationInterface) { return; } $user = $app->getIdentity(); // Can create in any category (component permission) or at least in one category $canCreateRecords = $user->authorise('core.create', 'com_content') || count($user->getAuthorisedCategories('com_content', 'core.create')) > 0; // Instead of checking edit on all records, we can use **same** check as the form editing view $values = (array) $app->getUserState('com_content.edit.article.id'); $isEditingRecords = count($values); // This ACL check is probably a double-check (form view already performed checks) $hasAccess = $canCreateRecords || $isEditingRecords; if (!$hasAccess) { return; } $app->getDocument()->addScriptOptions('xtd-pagebreak', ['editor' => $name]); $link = 'index.php?option=com_content&view=article&layout=pagebreak&tmpl=component&e_name=' . $name; $button = new CMSObject(); $button->modal = true; $button->link = $link; $button->text = $app->getLanguage()->_('PLG_EDITORSXTD_PAGEBREAK_BUTTON_PAGEBREAK'); $button->name = $this->_type . '_' . $this->_name; $button->icon = 'copy'; $button->iconSVG = '<svg viewBox="0 0 32 32" width="24" height="24"><path d="M26 8h-6v-2l-6-6h-14v24h12v8h20v-18l-6-6zM26 10.828l3.172 3' . '.172h-3.172v-3.172zM14 2.828l3.172 3.172h-3.172v-3.172zM2 2h10v6h6v14h-16v-20zM30 30h-16v-6h6v-14h4v6h6v14z"></pa' . 'th></svg>'; $button->options = [ 'height' => '200px', 'width' => '400px', 'bodyHeight' => '70', 'modalWidth' => '80', ]; return $button; } } pagebreak/services/provider.php000064400000002475151664164040012672 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.pagebreak * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\EditorsXtd\PageBreak\Extension\PageBreak; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.4.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new PageBreak( $dispatcher, (array) PluginHelper::getPlugin('editors-xtd', 'pagebreak') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } };
/home/opticamezl/www/newok/07d6c/../cli/../c610a/.././logs/../images/../editors-xtd.tar