File manager - Edit - /home/opticamezl/www/newok/Tag.php.tar
Back
home/opticamezl/www/newok/plugins/system/rereplacer/src/Tag.php 0000604 00000007772 15175012424 0020770 0 ustar 00 <?php /** * @package ReReplacer * @version 14.4.1 * * @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\ReReplacer; defined('_JEXEC') or die; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\RegEx as RL_RegEx; class Tag { public static function getAreaByType(&$string, $area_type = '') { if ( ! $string || ! $area_type) { return []; } self::tagAreaByType($string, $area_type); $start = '<!-- START: RR_' . strtoupper($area_type) . ' -->'; $end = '<!-- END: RR_' . strtoupper($area_type) . ' -->'; $matches = explode($start, $string); array_shift($matches); foreach ($matches as $i => $match) { $orig = $start . $match; $text = $match; if (str_contains($text, $end)) { $text = substr($text, 0, strrpos($text, $end)); $orig = $start . $text . $end; } $matches[$i] = [$orig, $text]; } return $matches; } public static function tagArea(&$string, $area_type = '') { if ( ! $string || ! $area_type) { return false; } $start = '<!-- START: RR_' . strtoupper($area_type) . ' -->'; $end = '<!-- END: RR_' . strtoupper($area_type) . ' -->'; $string = $start . $string . $end; if ($area_type == 'article_text') { $string = RL_RegEx::replace('(<hr class="system-pagebreak".*?>)', $end . '\1' . $start, $string); } return true; } private static function tagAreaByType(&$string, $area_type) { switch ($area_type) { case 'component': self::tagComponent($string); break; case 'body': self::tagBody($string); break; case 'head': self::tagHead($string); break; default: break; } } private static function tagBody(&$string) { if ( ! $string) { return; } $start = '<!-- START: RR_BODY -->'; if (str_contains($string, $start)) { return; } if (str_contains($string, '<body') && str_contains($string, '</body>')) { self::tagByTagType($string, 'body', 'body'); return; } if (str_contains($string, '<item') && str_contains($string, '</item>')) { self::tagByTagType($string, 'item', 'body'); return; } self::tagArea($string, 'body'); } private static function tagByTagType(&$string, $tag, $area_type) { if ( ! $string) { return; } $start = '<!-- START: RR_' . strtoupper($area_type) . ' -->'; $end = '<!-- END: RR_' . strtoupper($area_type) . ' -->'; $string = RL_RegEx::replace('(<' . $tag . '(\s[^>]*)?>)', '\1' . $start, $string); $string = str_replace('</' . $tag . '>', $end . '</' . $tag . '>', $string); } private static function tagComponent(&$string) { if ( ! $string) { return; } $start = '<!-- START: RR_COMPONENT -->'; if (RL_Document::isFeed()) { self::tagByTagType($string, 'item', 'component'); } if ( ! str_contains($string, $start)) { self::tagArea($string, 'component'); } } private static function tagHead(&$string) { if ( ! $string) { return; } if ( ! str_contains($string, '</head>')) { return; } self::tagByTagType($string, 'head', 'head'); } } home/opticamezl/www/newok/libraries/src/HTML/Helpers/Tag.php 0000644 00000016616 15175067614 0017775 0 ustar 00 <?php /** * Joomla! Content Management System * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\HTML\Helpers; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; use Joomla\Database\ParameterType; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects \defined('JPATH_PLATFORM') or die; // phpcs:enable PSR1.Files.SideEffects /** * Utility class for tags * * @since 3.1 */ abstract class Tag { /** * Cached array of the tag items. * * @var array * @since 3.1 */ protected static $items = []; /** * Returns an array of tags. * * @param array $config An array of configuration options. By default, only * published and unpublished categories are returned. * * @return array * * @since 3.1 */ public static function options($config = ['filter.published' => [0, 1]]) { $hash = md5(serialize($config)); if (!isset(static::$items[$hash])) { $config = (array) $config; $db = Factory::getDbo(); $query = $db->getQuery(true) ->select( [ $db->quoteName('a.id'), $db->quoteName('a.title'), $db->quoteName('a.level'), ] ) ->from($db->quoteName('#__tags', 'a')) ->where($db->quoteName('a.parent_id') . ' > 0'); // Filter on the published state if (isset($config['filter.published'])) { if (is_numeric($config['filter.published'])) { $query->where('a.published = :published') ->bind(':published', $config['filter.published'], ParameterType::INTEGER); } elseif (is_array($config['filter.published'])) { $config['filter.published'] = ArrayHelper::toInteger($config['filter.published']); $query->whereIn($db->quoteName('a.published'), $config['filter.published']); } } // Filter on the language if (isset($config['filter.language'])) { if (is_string($config['filter.language'])) { $query->where($db->quoteName('a.language') . ' = :language') ->bind(':language', $config['filter.language']); } elseif (is_array($config['filter.language'])) { $query->whereIn($db->quoteName('a.language'), $config['filter.language'], ParameterType::STRING); } } $query->order($db->quoteName('a.lft')); $db->setQuery($query); $items = $db->loadObjectList(); // Assemble the list options. static::$items[$hash] = []; foreach ($items as &$item) { $repeat = ($item->level - 1 >= 0) ? $item->level - 1 : 0; $item->title = str_repeat('- ', $repeat) . $item->title; static::$items[$hash][] = HTMLHelper::_('select.option', $item->id, $item->title); } } return static::$items[$hash]; } /** * Returns an array of tags. * * @param array $config An array of configuration options. By default, only published and unpublished tags are returned. * * @return array Tag data * * @since 3.1 */ public static function tags($config = ['filter.published' => [0, 1]]) { $hash = md5(serialize($config)); $config = (array) $config; $db = Factory::getDbo(); $query = $db->getQuery(true) ->select( [ $db->quoteName('a.id'), $db->quoteName('a.title'), $db->quoteName('a.level'), $db->quoteName('a.parent_id'), ] ) ->from($db->quoteName('#__tags', 'a')) ->where($db->quoteName('a.parent_id') . ' > 0'); // Filter on the published state if (isset($config['filter.published'])) { if (is_numeric($config['filter.published'])) { $query->where($db->quoteName('a.published') . ' = :published') ->bind(':published', $config['filter.published'], ParameterType::INTEGER); } elseif (is_array($config['filter.published'])) { $config['filter.published'] = ArrayHelper::toInteger($config['filter.published']); $query->whereIn($db->quoteName('a.published'), $config['filter.published']); } } $query->order($db->quoteName('a.lft')); $db->setQuery($query); $items = $db->loadObjectList(); // Assemble the list options. static::$items[$hash] = []; foreach ($items as &$item) { $repeat = ($item->level - 1 >= 0) ? $item->level - 1 : 0; $item->title = str_repeat('- ', $repeat) . $item->title; static::$items[$hash][] = HTMLHelper::_('select.option', $item->id, $item->title); } return static::$items[$hash]; } /** * This is just a proxy for the formbehavior.ajaxchosen method * * @param string $selector DOM id of the tag field * @param boolean $allowCustom Flag to allow custom values * * @return void * * @since 3.1 * * @deprecated 4.0 will be removed in 6.0 * Will be removed without replacement */ public static function ajaxfield($selector = '#jform_tags', $allowCustom = true) { // Get the component parameters $params = ComponentHelper::getParams('com_tags'); $minTermLength = (int) $params->get('min_term_length', 3); Text::script('JGLOBAL_KEEP_TYPING'); Text::script('JGLOBAL_LOOKING_FOR'); // Include scripts HTMLHelper::_('behavior.core'); HTMLHelper::_('jquery.framework'); HTMLHelper::_('formbehavior.chosen'); HTMLHelper::_('script', 'legacy/ajax-chosen.min.js', ['version' => 'auto', 'relative' => true]); Factory::getDocument()->addScriptOptions( 'ajax-chosen', [ 'url' => Uri::root() . 'index.php?option=com_tags&task=tags.searchAjax', 'debug' => JDEBUG, 'selector' => $selector, 'type' => 'GET', 'dataType' => 'json', 'jsonTermKey' => 'like', 'afterTypeDelay' => 500, 'minTermLength' => $minTermLength, ] ); // Allow custom values ? if ($allowCustom) { HTMLHelper::_('script', 'system/fields/tag.min.js', ['version' => 'auto', 'relative' => true]); Factory::getDocument()->addScriptOptions( 'field-tag-custom', [ 'minTermLength' => $minTermLength, 'selector' => $selector, 'allowCustom' => Factory::getUser()->authorise('core.create', 'com_tags') ? $allowCustom : false, ] ); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Generation time: 0 |
proxy
|
phpinfo
|
Settings