Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/helpers.zip
Назад
PK �X!]Y��$2 2 legacyrouter.phpnu &1i� <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Legacy routing rules class from com_contact * * @since 3.6 * @deprecated 4.0 */ class ContactRouterRulesLegacy implements JComponentRouterRulesInterface { /** * Constructor for this legacy router * * @param JComponentRouterAdvanced $router The router this rule belongs to * * @since 3.6 * @deprecated 4.0 */ public function __construct($router) { $this->router = $router; } /** * Preprocess the route for the com_contact component * * @param array &$query An array of URL arguments * * @return void * * @since 3.6 * @deprecated 4.0 */ public function preprocess(&$query) { } /** * Build the route for the com_contact component * * @param array &$query An array of URL arguments * @param array &$segments The URL arguments to use to assemble the subsequent URL. * * @return void * * @since 3.6 * @deprecated 4.0 */ public function build(&$query, &$segments) { // Get a menu item based on Itemid or currently active $params = JComponentHelper::getParams('com_contact'); $advanced = $params->get('sef_advanced_link', 0); if (empty($query['Itemid'])) { $menuItem = $this->router->menu->getActive(); } else { $menuItem = $this->router->menu->getItem($query['Itemid']); } $mView = empty($menuItem->query['view']) ? null : $menuItem->query['view']; $mId = empty($menuItem->query['id']) ? null : $menuItem->query['id']; if (isset($query['view'])) { $view = $query['view']; if (empty($query['Itemid']) || empty($menuItem) || $menuItem->component != 'com_contact') { $segments[] = $query['view']; } unset($query['view']); } // Are we dealing with a contact that is attached to a menu item? if (isset($view) && ($mView == $view) && isset($query['id']) && ($mId == (int) $query['id'])) { unset($query['view'], $query['catid'], $query['id']); return; } if (isset($view) && ($view == 'category' || $view == 'contact')) { if ($mId != (int) $query['id'] || $mView != $view) { if ($view == 'contact' && isset($query['catid'])) { $catid = $query['catid']; } elseif (isset($query['id'])) { $catid = $query['id']; } $menuCatid = $mId; $categories = JCategories::getInstance('Contact'); $category = $categories->get($catid); if ($category) { // TODO Throw error that the category either not exists or is unpublished $path = array_reverse($category->getPath()); $array = array(); foreach ($path as $id) { if ((int) $id == (int) $menuCatid) { break; } if ($advanced) { list($tmp, $id) = explode(':', $id, 2); } $array[] = $id; } $segments = array_merge($segments, array_reverse($array)); } if ($view == 'contact') { if ($advanced) { list($tmp, $id) = explode(':', $query['id'], 2); } else { $id = $query['id']; } $segments[] = $id; } } unset($query['id'], $query['catid']); } if (isset($query['layout'])) { if (!empty($query['Itemid']) && isset($menuItem->query['layout'])) { if ($query['layout'] == $menuItem->query['layout']) { unset($query['layout']); } } else { if ($query['layout'] == 'default') { unset($query['layout']); } } } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); } } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * @param array &$vars The URL attributes to be used by the application. * * @return void * * @since 3.6 * @deprecated 4.0 */ public function parse(&$segments, &$vars) { $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); } // Get the active menu item. $item = $this->router->menu->getActive(); $params = JComponentHelper::getParams('com_contact'); $advanced = $params->get('sef_advanced_link', 0); // Count route segments $count = count($segments); // Standard routing for newsfeeds. if (!isset($item)) { $vars['view'] = $segments[0]; $vars['id'] = $segments[$count - 1]; return; } // From the categories view, we can only jump to a category. $id = (isset($item->query['id']) && $item->query['id'] > 1) ? $item->query['id'] : 'root'; $contactCategory = JCategories::getInstance('Contact')->get($id); $categories = $contactCategory ? $contactCategory->getChildren() : array(); $vars['catid'] = $id; $vars['id'] = $id; $found = 0; foreach ($segments as $segment) { $segment = $advanced ? str_replace(':', '-', $segment) : $segment; foreach ($categories as $category) { if ($category->slug == $segment || $category->alias == $segment) { $vars['id'] = $category->id; $vars['catid'] = $category->id; $vars['view'] = 'category'; $categories = $category->getChildren(); $found = 1; break; } } if ($found == 0) { if ($advanced) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName('id')) ->from('#__contact_details') ->where($db->quoteName('catid') . ' = ' . (int) $vars['catid']) ->where($db->quoteName('alias') . ' = ' . $db->quote($segment)); $db->setQuery($query); $nid = $db->loadResult(); } else { $nid = $segment; } $vars['id'] = $nid; $vars['view'] = 'contact'; } $found = 0; } } } PK �X!]��?�� � category.phpnu &1i� <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Contact Component Category Tree * * @since 1.6 */ class ContactCategories extends JCategories { /** * Class constructor * * @param array $options Array of options * * @since 1.6 */ public function __construct($options = array()) { $options['table'] = '#__contact_details'; $options['extension'] = 'com_contact'; $options['statefield'] = 'published'; parent::__construct($options); } } PK �X!]-T� � association.phpnu &1i� <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('ContactHelper', JPATH_ADMINISTRATOR . '/components/com_contact/helpers/contact.php'); JLoader::register('ContactHelperRoute', JPATH_SITE . '/components/com_contact/helpers/route.php'); JLoader::register('CategoryHelperAssociation', JPATH_ADMINISTRATOR . '/components/com_categories/helpers/association.php'); /** * Contact Component Association Helper * * @since 3.0 */ abstract class ContactHelperAssociation extends CategoryHelperAssociation { /** * Method to get the associations for a given item * * @param integer $id Id of the item * @param string $view Name of the view * * @return array Array of associations for the item * * @since 3.0 */ public static function getAssociations($id = 0, $view = null) { $jinput = JFactory::getApplication()->input; $view = $view === null ? $jinput->get('view') : $view; $id = empty($id) ? $jinput->getInt('id') : $id; if ($view === 'contact') { if ($id) { $associations = JLanguageAssociations::getAssociations('com_contact', '#__contact_details', 'com_contact.item', $id); $return = array(); foreach ($associations as $tag => $item) { $return[$tag] = ContactHelperRoute::getContactRoute($item->id, (int) $item->catid, $item->language); } return $return; } } if ($view === 'category' || $view === 'categories') { return self::getCategoryAssociations($id, 'com_contact'); } return array(); } } PK �X!]f^ � route.phpnu &1i� <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Contact Component Route Helper * * @static * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ abstract class ContactHelperRoute { /** * Get the URL route for a contact from a contact ID, contact category ID and language * * @param integer $id The id of the contact * @param integer $catid The id of the contact's category * @param mixed $language The id of the language being used. * * @return string The link to the contact * * @since 1.5 */ public static function getContactRoute($id, $catid, $language = 0) { // Create the link $link = 'index.php?option=com_contact&view=contact&id=' . $id; if ($catid > 1) { $link .= '&catid=' . $catid; } if ($language && $language !== '*' && JLanguageMultilang::isEnabled()) { $link .= '&lang=' . $language; } return $link; } /** * Get the URL route for a contact category from a contact category ID and language * * @param mixed $catid The id of the contact's category either an integer id or an instance of JCategoryNode * @param mixed $language The id of the language being used. * * @return string The link to the contact * * @since 1.5 */ public static function getCategoryRoute($catid, $language = 0) { if ($catid instanceof JCategoryNode) { $id = $catid->id; } else { $id = (int) $catid; } if ($id < 1) { $link = ''; } else { // Create the link $link = 'index.php?option=com_contact&view=category&id=' . $id; if ($language && $language !== '*' && JLanguageMultilang::isEnabled()) { $link .= '&lang=' . $language; } } return $link; } } PK ^!]Q�.y� � protect.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Protect as RL_Protect; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLProtect { public static function isProtectedPage($extension_alias = '', $hastags = false, $exclude_formats = ['pdf']) { if ( ! class_exists('RegularLabs\Library\Protect')) { return true; } if (RL_Protect::isDisabledByUrl($extension_alias)) { return true; } return class_exists('RegularLabs\Library\Protect') && RL_Protect::isRestrictedPage($hastags, $exclude_formats); } public static function isAdmin($block_login = false) { return class_exists('RegularLabs\Library\Document') && RL_Document::isAdmin($block_login); } public static function isEditPage() { return class_exists('RegularLabs\Library\Document') && RL_Document::isEditPage(); } public static function isRestrictedComponent($restricted_components, $area = 'component') { return class_exists('RegularLabs\Library\Protect') && RL_Protect::isRestrictedComponent($restricted_components, $area); } public static function isComponentInstalled($extension_alias) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::isComponentInstalled($extension_alias); } public static function isSystemPluginInstalled($extension_alias) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::isSystemPluginInstalled($extension_alias); } public static function getFormRegex($regex_format = false) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::getFormRegex($regex_format); } public static function protectFields(&$string, $search_strings = []) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectFields($string, $search_strings); } public static function protectScripts(&$string) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectScripts($string); } public static function protectHtmlTags(&$string) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectHtmlTags($string); } public static function protectByRegex(&$string, $regex) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectByRegex($string, $regex); } public static function protectTags(&$string, $tags = [], $include_closing_tags = true) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectTags($string, $tags, $include_closing_tags); } public static function unprotectTags(&$string, $tags = [], $include_closing_tags = true) { class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotectTags($string, $tags, $include_closing_tags); } public static function protectInString(&$string, $unprotected = [], $protected = []) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectInString($string, $unprotected, $protected); } public static function unprotectInString(&$string, $unprotected = [], $protected = []) { class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotectInString($string, $unprotected, $protected); } public static function protectSourcerer(&$string) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectSourcerer($string); } public static function protectForm(&$string, $tags = [], $include_closing_tags = true) { class_exists('RegularLabs\Library\Protect') && RL_Protect::protectForm($string, $tags, $include_closing_tags); } public static function unprotect(&$string) { class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotect($string); } public static function convertProtectionToHtmlSafe(&$string) { class_exists('RegularLabs\Library\Protect') && RL_Protect::convertProtectionToHtmlSafe($string); } public static function unprotectHtmlSafe(&$string) { class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotectHtmlSafe($string); } public static function protectString($string, $is_tag = false) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::protectString($string, $is_tag); } public static function unprotectString($string, $is_tag = false) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotectString($string, $is_tag); } public static function protectTag($string) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::protectTag($string); } public static function protectArray($array, $is_tag = false) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::protectArray($array, $is_tag); } public static function unprotectArray($array, $is_tag = false) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotectArray($array, $is_tag); } public static function unprotectForm(&$string, $tags = []) { class_exists('RegularLabs\Library\Protect') && RL_Protect::unprotectForm($string, $tags); } public static function removeInlineComments(&$string, $name) { class_exists('RegularLabs\Library\Protect') && RL_Protect::removeInlineComments($string, $name); } public static function removePluginTags(&$string, $tags, $character_start = '{', $character_end = '{', $keep_content = true) { class_exists('RegularLabs\Library\Protect') && RL_Protect::removePluginTags($string, $tags, $character_start, $character_end, $keep_content); } public static function removeFromHtmlTagContent(&$string, $tags, $include_closing_tags = true, $html_tags = ['title']) { class_exists('RegularLabs\Library\Protect') && RL_Protect::removeFromHtmlTagContent($string, $tags, $include_closing_tags, $html_tags); } public static function removeFromHtmlTagAttributes(&$string, $tags, $attributes = 'ALL', $include_closing_tags = true) { class_exists('RegularLabs\Library\Protect') && RL_Protect::removeFromHtmlTagAttributes($string, $tags, $attributes, $include_closing_tags); } public static function articlePassesSecurity(&$article, $securtiy_levels = []) { return class_exists('RegularLabs\Library\Protect') && RL_Protect::articlePassesSecurity($article, $securtiy_levels); } public static function isJoomla3() { return true; } } PK ^!]4�ړr r functions.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Extension as RL_Extension; use RegularLabs\Library\File as RL_File; use RegularLabs\Library\Http as RL_Http; use RegularLabs\Library\Language as RL_Language; use RegularLabs\Library\Xml as RL_Xml; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } /** * Framework Functions */ class RLFunctions { public static function getContents($url, $timeout = 20) { return ! class_exists('RegularLabs\Library\Http') ? '' : RL_Http::get($url, $timeout); } public static function getByUrl($url, $timeout = 20) { return ! class_exists('RegularLabs\Library\Http') ? '' : RL_Http::getFromServer($url, $timeout); } public static function isFeed() { return class_exists('RegularLabs\Library\Document') && RL_Document::isFeed(); } public static function script($file, $version = '') { class_exists('RegularLabs\Library\Document') && RL_Document::script($file, $version); } public static function stylesheet($file, $version = '') { class_exists('RegularLabs\Library\Document') && RL_Document::stylesheet($file, $version); } public static function addScriptVersion($url) { jimport('joomla.filesystem.file'); $version = ''; if (file_exists(JPATH_SITE . $url)) { $version = filemtime(JPATH_SITE . $url); } self::script($url, $version); } public static function addStyleSheetVersion($url) { jimport('joomla.filesystem.file'); $version = ''; if (file_exists(JPATH_SITE . $url)) { $version = filemtime(JPATH_SITE . $url); } self::stylesheet($url, $version); } protected static function getFileByFolder($folder, $file) { return ! class_exists('RegularLabs\Library\File') ? '' : RL_File::getMediaFile($folder, $file); } public static function getComponentBuffer() { return ! class_exists('RegularLabs\Library\Document') ? '' : RL_Document::getBuffer(); } public static function getAliasAndElement(&$name) { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getAliasAndElement($name); } public static function getNameByAlias($alias) { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getNameByAlias($alias); } public static function getAliasByName($name) { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getAliasByName($name); } public static function getElementByAlias($alias) { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getElementByAlias($alias); } public static function getXMLValue($key, $alias, $type = 'component', $folder = 'system') { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getXMLValue($key, $alias, $type, $folder); } public static function getXML($alias, $type = 'component', $folder = 'system') { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getXML($alias, $type, $folder); } public static function getXMLFile($alias, $type = 'component', $folder = 'system') { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getXMLFile($alias, $type, $folder); } public static function extensionInstalled($extension, $type = 'component', $folder = 'system') { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::isInstalled($extension, $type, $folder); } public static function getExtensionPath($extension = 'plg_system_regularlabs', $basePath = JPATH_ADMINISTRATOR, $check_folder = '') { return ! class_exists('RegularLabs\Library\Extension') ? '' : RL_Extension::getPath($extension, $basePath, $check_folder); } public static function loadLanguage($extension = 'plg_system_regularlabs', $basePath = '', $reload = false) { return class_exists('RegularLabs\Library\Language') && RL_Language::load($extension, $basePath, $reload); } public static function xmlToObject($url, $root = '') { return ! class_exists('RegularLabs\Library\Xml') ? '' : RL_Xml::toObject($url, $root); } } PK ^!]��^@Z Z assignments.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Conditions as RL_Conditions; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLAssignmentsHelper { function passAll($assignments, $matching_method = 'all', $item = 0) { return RL_Conditions::pass($assignments, $matching_method, $item); } public function getAssignmentsFromParams(&$params) { return RL_Conditions::getConditionsFromParams($params); } public function getAssignmentsFromTagAttributes(&$params, $types = []) { return RL_Conditions::getConditionsFromTagAttributes($params, $types); } public function hasAssignments(&$assignments) { return RL_Conditions::hasConditions($assignments); } } PK ^!]0w� text.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Alias as RL_Alias; use RegularLabs\Library\ArrayHelper as RL_Array; use RegularLabs\Library\Date as RL_Date; use RegularLabs\Library\Form as RL_Form; use RegularLabs\Library\Html as RL_Html; use RegularLabs\Library\HtmlTag as RL_HtmlTag; use RegularLabs\Library\PluginTag as RL_PluginTag; use RegularLabs\Library\RegEx as RL_RegEx; use RegularLabs\Library\StringHelper as RL_String; use RegularLabs\Library\Title as RL_Title; use RegularLabs\Library\Uri as RL_Uri; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLText { /* Date functions */ public static function fixDate(&$date) { $date = RL_Date::fix($date); } public static function fixDateOffset(&$date) { RL_Date::applyTimezone($date); } public static function dateToDateFormat($dateFormat) { return RL_Date::strftimeToDateFormat($dateFormat); } public static function dateToStrftimeFormat($dateFormat) { return RL_Date::dateToStrftimeFormat($dateFormat); } /* String functions */ public static function html_entity_decoder($string, $quote_style = ENT_QUOTES, $charset = 'UTF-8') { return RL_String::html_entity_decoder($string, $quote_style, $charset); } public static function stringContains($haystacks, $needles) { return RL_String::contains($haystacks, $needles); } public static function is_alphanumeric($string) { return RL_String::is_alphanumeric($string); } public static function splitString($string, $delimiters = [], $max_length = 10000, $maximize_parts = true) { return RL_String::split($string, $delimiters, $max_length, $maximize_parts); } public static function strReplaceOnce($search, $replace, $string) { return RL_String::replaceOnce($search, $replace, $string); } /* Array functions */ public static function toArray($data, $separator = '') { return RL_Array::toArray($data, $separator); } public static function createArray($data, $separator = ',') { return RL_Array::toArray($data, $separator, true); } /* RegEx functions */ public static function regexReplace($pattern, $replacement, $string) { return RL_RegEx::replace($pattern, $replacement, $string); } public static function pregQuote($string = '', $delimiter = '#') { return RL_RegEx::quote($string, $delimiter); } public static function pregQuoteArray($array = [], $delimiter = '#') { return RL_RegEx::quoteArray($array, $delimiter); } /* Title functions */ public static function cleanTitle($string, $strip_tags = false, $strip_spaces = true) { return RL_Title::clean($string, $strip_tags, $strip_spaces); } public static function createUrlMatches($titles = []) { return RL_Title::getUrlMatches($titles); } /* Alias functions */ public static function createAlias($string) { return RL_Alias::get($string); } /* Uri functions */ public static function getURI($hash = '') { return RL_Uri::get($hash); } /* Plugin Tag functions */ public static function getTagRegex($tags, $include_no_attributes = true, $include_ending = true, $required_attributes = []) { return RL_PluginTag::getRegexTags($tags, $include_no_attributes, $include_ending, $required_attributes); } /* HTML functions */ public static function getBody($html) { return RL_Html::getBody($html); } public static function getContentContainingSearches($string, $start_searches = [], $end_searches = [], $start_offset = 1000, $end_offset = null) { return RL_Html::getContentContainingSearches($string, $start_searches, $end_searches, $start_offset, $end_offset); } public static function convertWysiwygToPlainText($string) { return RL_Html::convertWysiwygToPlainText($string); } public static function combinePTags(&$string) { RL_Html::combinePTags($string); } /* HTML Tag functions */ public static function combineTags($tag1, $tag2) { return RL_HtmlTag::combine($tag1, $tag2); } public static function getAttribute($key, $string) { return RL_HtmlTag::getAttributeValue($key, $string); } public static function getAttributes($string) { return RL_HtmlTag::getAttributes($string); } public static function combineAttributes($string1, $string2) { return RL_HtmlTag::combineAttributes($string1, $string2); } /* Form functions */ public static function prepareSelectItem($string, $published = 1, $type = '', $remove_first = 0) { return RL_Form::prepareSelectItem($string, $published, $type, $remove_first); } } PK ^!]E�F� � assignments/mijoshop.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsMijoShop extends RLAssignment { public function init() { $input = JFactory::getApplication()->input; $category_id = $input->getCmd('path', 0); if (strpos($category_id, '_')) { $category_id = end(explode('_', $category_id)); } $this->request->item_id = $input->getInt('product_id', 0); $this->request->category_id = $category_id; $this->request->id = ($this->request->item_id) ? $this->request->item_id : $this->request->category_id; $view = $input->getCmd('view', ''); if (empty($view)) { $mijoshop = JPATH_ROOT . '/components/com_mijoshop/mijoshop/mijoshop.php'; if ( ! file_exists($mijoshop)) { return; } require_once($mijoshop); $route = $input->getString('route', ''); $view = MijoShop::get('router')->getView($route); } $this->request->view = $view; } public function passPageTypes() { return $this->passByPageTypes('com_mijoshop', $this->selection, $this->assignment, true); } public function passCategories() { if ($this->request->option != 'com_mijoshop') { return $this->pass(false); } $pass = ( ($this->params->inc_categories && ($this->request->view == 'category') ) || ($this->params->inc_items && $this->request->view == 'product') ); if ( ! $pass) { return $this->pass(false); } $cats = []; if ($this->request->category_id) { $cats = $this->request->category_id; } else if ($this->request->item_id) { $query = $this->db->getQuery(true) ->select('c.category_id') ->from('#__mijoshop_product_to_category AS c') ->where('c.product_id = ' . (int) $this->request->id); $this->db->setQuery($query); $cats = $this->db->loadColumn(); } $cats = $this->makeArray($cats); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } else if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } public function passProducts() { if ( ! $this->request->id || $this->request->option != 'com_mijoshop' || $this->request->view != 'product') { return $this->pass(false); } return $this->passSimple($this->request->id); } private function getCatParentIds($id = 0) { return $this->getParentIds($id, 'mijoshop_category', 'parent_id', 'category_id'); } } PK ^!]��� � assignments/akeebasubs.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLAssignmentsAkeebaSubs extends RLAssignment { public function init() { if ( ! $this->request->id && $this->request->view == 'level') { $slug = JFactory::getApplication()->input->getString('slug', ''); if ($slug) { $query = $this->db->getQuery(true) ->select('l.akeebasubs_level_id') ->from('#__akeebasubs_levels AS l') ->where('l.slug = ' . $this->db->quote($slug)); $this->db->setQuery($query); $this->request->id = $this->db->loadResult(); } } } public function passPageTypes() { return $this->passByPageTypes('com_akeebasubs', $this->selection, $this->assignment); } public function passLevels() { if ( ! $this->request->id || $this->request->option != 'com_akeebasubs' || $this->request->view != 'level') { return $this->pass(false); } return $this->passSimple($this->request->id); } } PK ^!]�P|?{ { assignments/tags.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsTags extends RLAssignment { public function passTags() { if (in_array($this->request->option, ['com_content', 'com_flexicontent'])) { return $this->passTagsContent(); } if ($this->request->option != 'com_tags' || $this->request->view != 'tag' || ! $this->request->id ) { return $this->pass(false); } return $this->passTag($this->request->id); } private function passTagsContent() { $is_item = in_array($this->request->view, ['', 'article', 'item']); $is_category = in_array($this->request->view, ['category']); switch (true) { case ($is_item): $prefix = 'com_content.article'; break; case ($is_category): $prefix = 'com_content.category'; break; default: return $this->pass(false); } // Load the tags. $query = $this->db->getQuery(true) ->select($this->db->quoteName('t.id')) ->select($this->db->quoteName('t.title')) ->from('#__tags AS t') ->join( 'INNER', '#__contentitem_tag_map AS m' . ' ON m.tag_id = t.id' . ' AND m.type_alias = ' . $this->db->quote($prefix) . ' AND m.content_item_id IN ( ' . $this->request->id . ')' ); $this->db->setQuery($query); $tags = $this->db->loadObjectList(); if (empty($tags)) { return $this->pass(false); } foreach ($tags as $tag) { if ( ! $this->passTag($tag->id) && ! $this->passTag($tag->title)) { continue; } return $this->pass(true); } return $this->pass(false); } private function passTag($tag) { $pass = in_array($tag, $this->selection); if ($pass) { // If passed, return false if assigned to only children // Else return true return ($this->params->inc_children != 2); } if ( ! $this->params->inc_children) { return false; } // Return true if a parent id is present in the selection return array_intersect( $this->getTagsParentIds($tag), $this->selection ); } private function getTagsParentIds($id = 0) { $parentids = $this->getParentIds($id, 'tags'); // Remove the root tag $parentids = array_diff($parentids, [1]); return $parentids; } } PK ^!]�џDr r assignments/geo.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Log\Log as JLog; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsGeo extends RLAssignment { var $geo = null; /** * passContinents */ public function passContinents() { if ( ! $this->getGeo() || empty($this->geo->continentCode)) { return $this->pass(false); } return $this->passSimple([$this->geo->continent, $this->geo->continentCode]); } /** * passCountries */ public function passCountries() { $this->getGeo(); if ( ! $this->getGeo() || empty($this->geo->countryCode)) { return $this->pass(false); } return $this->passSimple([$this->geo->country, $this->geo->countryCode]); } /** * passRegions */ public function passRegions() { if ( ! $this->getGeo() || empty($this->geo->countryCode) || empty($this->geo->regionCodes)) { return $this->pass(false); } $regions = $this->geo->regionCodes; array_walk($regions, function (&$value) { $value = $this->geo->countryCode . '-' . $value; }); return $this->passSimple($regions); } /** * passPostalcodes */ public function passPostalcodes() { if ( ! $this->getGeo() || empty($this->geo->postalCode)) { return $this->pass(false); } // replace dashes with dots: 730-0011 => 730.0011 $postalcode = str_replace('-', '.', $this->geo->postalCode); return $this->passInRange($postalcode); } public function getGeo($ip = '') { if ($this->geo !== null) { return $this->geo; } $geo = $this->getGeoObject($ip); if (empty($geo)) { return false; } $this->geo = $geo->get(); if (JFactory::getApplication()->get('debug')) { JLog::addLogger(['text_file' => 'regularlabs_geoip.log.php'], JLog::ALL, ['regularlabs_geoip']); JLog::add(json_encode($this->geo), JLog::DEBUG, 'regularlabs_geoip'); } return $this->geo; } private function getGeoObject($ip) { if ( ! file_exists(JPATH_LIBRARIES . '/geoip/geoip.php')) { return false; } require_once JPATH_LIBRARIES . '/geoip/geoip.php'; if ( ! class_exists('RegularLabs_GeoIp')) { return new GeoIp($ip); } return new RegularLabs_GeoIp($ip); } } PK ^!]���? ? assignments/cookieconfirm.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsCookieConfirm extends RLAssignment { public function passCookieConfirm() { require_once JPATH_PLUGINS . '/system/cookieconfirm/core.php'; $pass = PlgSystemCookieconfirmCore::getInstance()->isCookiesAllowed(); return $this->pass($pass); } } PK ^!]7��S S assignments/users.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsUsers extends RLAssignment { public function passAccessLevels() { $user = JFactory::getUser(); $levels = $user->getAuthorisedViewLevels(); $this->selection = $this->convertAccessLevelNamesToIds($this->selection); return $this->passSimple($levels); } public function passUserGroupLevels() { $user = JFactory::getUser(); if ( ! empty($user->groups)) { $groups = array_values($user->groups); } else { $groups = $user->getAuthorisedGroups(); } if ($this->params->inc_children) { $this->setUserGroupChildrenIds(); } $this->selection = $this->convertUsergroupNamesToIds($this->selection); return $this->passSimple($groups); } public function passUsers() { return $this->passSimple(JFactory::getUser()->get('id')); } private function convertAccessLevelNamesToIds($selection) { $names = []; foreach ($selection as $i => $level) { if (is_numeric($level)) { continue; } unset($selection[$i]); $names[] = strtolower(str_replace(' ', '', $level)); } $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName('id')) ->from('#__viewlevels') ->where('LOWER(REPLACE(' . $db->quoteName('title') . ', " ", "")) IN (\'' . implode('\',\'', $names) . '\')'); $db->setQuery($query); $level_ids = $db->loadColumn(); return array_unique(array_merge($selection, $level_ids)); } private function convertUsergroupNamesToIds($selection) { $names = []; foreach ($selection as $i => $group) { if (is_numeric($group)) { continue; } unset($selection[$i]); $names[] = strtolower(str_replace(' ', '', $group)); } $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName('id')) ->from('#__usergroups') ->where('LOWER(REPLACE(' . $db->quoteName('title') . ', " ", "")) IN (\'' . implode('\',\'', $names) . '\')'); $db->setQuery($query); $group_ids = $db->loadColumn(); return array_unique(array_merge($selection, $group_ids)); } private function setUserGroupChildrenIds() { $children = $this->getUserGroupChildrenIds($this->selection); if ($this->params->inc_children == 2) { $this->selection = $children; return; } $this->selection = array_merge($this->selection, $children); } private function getUserGroupChildrenIds($groups) { $children = []; $db = JFactory::getDbo(); foreach ($groups as $group) { $query = $db->getQuery(true) ->select($db->quoteName('id')) ->from($db->quoteName('#__usergroups')) ->where($db->quoteName('parent_id') . ' = ' . (int) $group); $db->setQuery($query); $group_children = $db->loadColumn(); if (empty($group_children)) { continue; } $children = array_merge($children, $group_children); $group_grand_children = $this->getUserGroupChildrenIds($group_children); if (empty($group_grand_children)) { continue; } $children = array_merge($children, $group_grand_children); } $children = array_unique($children); return $children; } } PK ^!]��� assignments/easyblog.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsEasyBlog extends RLAssignment { public function passPageTypes() { return $this->passByPageTypes('com_easyblog', $this->selection, $this->assignment); } public function passCategories() { if ($this->request->option != 'com_easyblog') { return $this->pass(false); } $pass = ( ($this->params->inc_categories && $this->request->view == 'categories') || ($this->params->inc_items && $this->request->view == 'entry') ); if ( ! $pass) { return $this->pass(false); } $cats = $this->makeArray($this->getCategories()); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } else if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } private function getCategories() { switch ($this->request->view) { case 'entry' : return $this->getCategoryIDFromItem(); break; case 'categories' : return $this->request->id; break; default: return ''; } } private function getCategoryIDFromItem() { $query = $this->db->getQuery(true) ->select('i.category_id') ->from('#__easyblog_post AS i') ->where('i.id = ' . (int) $this->request->id); $this->db->setQuery($query); return $this->db->loadResult(); } public function passTags() { if ($this->request->option != 'com_easyblog') { return $this->pass(false); } $pass = ( ($this->params->inc_tags && $this->request->layout == 'tag') || ($this->params->inc_items && $this->request->view == 'entry') ); if ( ! $pass) { return $this->pass(false); } if ($this->params->inc_tags && $this->request->layout == 'tag') { $query = $this->db->getQuery(true) ->select('t.alias') ->from('#__easyblog_tag AS t') ->where('t.id = ' . (int) $this->request->id) ->where('t.published = 1'); $this->db->setQuery($query); $tags = $this->db->loadColumn(); return $this->passSimple($tags, true); } $query = $this->db->getQuery(true) ->select('t.alias') ->from('#__easyblog_post_tag AS x') ->join('LEFT', '#__easyblog_tag AS t ON t.id = x.tag_id') ->where('x.post_id = ' . (int) $this->request->id) ->where('t.published = 1'); $this->db->setQuery($query); $tags = $this->db->loadColumn(); return $this->passSimple($tags, true); } public function passItems() { if ( ! $this->request->id || $this->request->option != 'com_easyblog' || $this->request->view != 'entry') { return $this->pass(false); } $pass = false; // Pass Article Id if ( ! $this->passItemByType($pass, 'ContentIds')) { return $this->pass(false); } // Pass Content Keywords if ( ! $this->passItemByType($pass, 'ContentKeywords')) { return $this->pass(false); } // Pass Authors if ( ! $this->passItemByType($pass, 'Authors')) { return $this->pass(false); } return $this->pass($pass); } public function passContentKeywords($fields = ['title', 'intro', 'content'], $text = '') { parent::passContentKeywords($fields); } public function getItem($fields = []) { $query = $this->db->getQuery(true) ->select($fields) ->from('#__easyblog_post') ->where('id = ' . (int) $this->request->id); $this->db->setQuery($query); return $this->db->loadObject(); } private function getCatParentIds($id = 0) { return $this->getParentIds($id, 'easyblog_category', 'parent_id'); } } PK ^!]��V�� � assignments/ips.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsIPs extends RLAssignment { public function passIPs() { if (is_array($this->selection)) { $this->selection = implode(',', $this->selection); } $this->selection = explode(',', str_replace([' ', "\r", "\n"], ['', '', ','], $this->selection)); $pass = $this->checkIPList(); return $this->pass($pass); } private function checkIPList() { foreach ($this->selection as $range) { // Check next range if this one doesn't match if ( ! $this->checkIP($range)) { continue; } // Match found, so return true! return true; } // No matches found, so return false return false; } private function checkIP($range) { if (empty($range)) { return false; } if (strpos($range, '-') !== false) { // Selection is an IP range return $this->checkIPRange($range); } // Selection is a single IP (part) return $this->checkIPPart($range); } private function checkIPRange($range) { $ip = $_SERVER['REMOTE_ADDR']; // Return if no IP address can be found (shouldn't happen, but who knows) if (empty($ip)) { return false; } // check if IP is between or equal to the from and to IP range list($min, $max) = explode('-', trim($range), 2); // Return false if IP is smaller than the range start if ($ip < trim($min)) { return false; } $max = $this->fillMaxRange($max, $min); // Return false if IP is larger than the range end if ($ip > trim($max)) { return false; } return true; } /* Fill the max range by prefixing it with the missing parts from the min range * So 101.102.103.104-201.202 becomes: * max: 101.102.201.202 */ private function fillMaxRange($max, $min) { $max_parts = explode('.', $max); if (count() == 4) { return $max; } $min_parts = explode('.', $min); $prefix = array_slice($min_parts, 0, count($min_parts) - count($max_parts)); return implode('.', $prefix) . '.' . implode('.', $max_parts); } private function checkIPPart($range) { $ip = $_SERVER['REMOTE_ADDR']; // Return if no IP address can be found (shouldn't happen, but who knows) if (empty($ip)) { return false; } $ip_parts = explode('.', $ip); $range_parts = explode('.', trim($range)); // Trim the IP to the part length of the range $ip = implode('.', array_slice($ip_parts, 0, count($range_parts))); // Return false if ip does not match the range if ($range != $ip) { return false; } return true; } } PK ^!]��ףg g assignments/menu.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsMenu extends RLAssignment { public function passMenu() { // return if no Itemid or selection is set if ( ! $this->request->Itemid || empty($this->selection)) { return $this->pass($this->params->inc_noitemid); } $menutype = 'type.' . self::getMenuType(); // return true if menu type is in selection if (in_array($menutype, $this->selection)) { return $this->pass(true); } // return true if menu is in selection if (in_array($this->request->Itemid, $this->selection)) { return $this->pass(($this->params->inc_children != 2)); } if ( ! $this->params->inc_children) { return $this->pass(false); } $parent_ids = $this->getMenuParentIds($this->request->Itemid); $parent_ids = array_diff($parent_ids, [1]); foreach ($parent_ids as $id) { if ( ! in_array($id, $this->selection)) { continue; } return $this->pass(true); } return $this->pass(false); } private function getMenuParentIds($id = 0) { return $this->getParentIds($id, 'menu'); } private function getMenuType() { if (isset($this->request->menutype)) { return $this->request->menutype; } if (empty($this->request->Itemid)) { $this->request->menutype = ''; return $this->request->menutype; } if (JFactory::getApplication()->isClient('site')) { $menu = JFactory::getApplication()->getMenu()->getItem((int) $this->request->Itemid); $this->request->menutype = isset($menu->menutype) ? $menu->menutype : ''; return $this->request->menutype; } $query = $this->db->getQuery(true) ->select('m.menutype') ->from('#__menu AS m') ->where('m.id = ' . (int) $this->request->Itemid); $this->db->setQuery($query); $this->request->menutype = $this->db->loadResult(); return $this->request->menutype; } } PK ^!]14� assignments/content.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\MVC\Model\BaseDatabaseModel as JModel; use Joomla\CMS\Table\Table as JTable; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsContent extends RLAssignment { public function passPageTypes() { $components = ['com_content', 'com_contentsubmit']; if ( ! in_array($this->request->option, $components)) { return $this->pass(false); } if ($this->request->view == 'category' && $this->request->layout == 'blog') { $view = 'categoryblog'; } else { $view = $this->request->view; } return $this->passSimple($view); } public function passCategories() { // components that use the com_content secs/cats $components = ['com_content', 'com_flexicontent', 'com_contentsubmit']; if ( ! in_array($this->request->option, $components)) { return $this->pass(false); } if (empty($this->selection)) { return $this->pass(false); } $is_content = in_array($this->request->option, ['com_content', 'com_flexicontent']); $is_category = in_array($this->request->view, ['category']); $is_item = in_array($this->request->view, ['', 'article', 'item', 'form']); if ( $this->request->option != 'com_contentsubmit' && ! ($this->params->inc_categories && $is_content && $is_category) && ! ($this->params->inc_articles && $is_content && $is_item) && ! ($this->params->inc_others && ! ($is_content && ($is_category || $is_item))) ) { return $this->pass(false); } if ($this->request->option == 'com_contentsubmit') { // Content Submit $contentsubmit_params = new ContentsubmitModelArticle; if (in_array($contentsubmit_params->_id, $this->selection)) { return $this->pass(true); } return $this->pass(false); } $pass = false; if ( $this->params->inc_others && ! ($is_content && ($is_category || $is_item)) && $this->article ) { if ( ! isset($this->article->id) && isset($this->article->slug)) { $this->article->id = (int) $this->article->slug; } if ( ! isset($this->article->catid) && isset($this->article->catslug)) { $this->article->catid = (int) $this->article->catslug; } $this->request->id = $this->article->id; $this->request->view = 'article'; } $catids = $this->getCategoryIds($is_category); foreach ($catids as $catid) { if ( ! $catid) { continue; } $pass = in_array($catid, $this->selection); if ($pass && $this->params->inc_children == 2) { $pass = false; continue; } if ( ! $pass && $this->params->inc_children) { $parent_ids = $this->getCatParentIds($catid); $parent_ids = array_diff($parent_ids, [1]); foreach ($parent_ids as $id) { if (in_array($id, $this->selection)) { $pass = true; break; } } unset($parent_ids); } } return $this->pass($pass); } private function getCategoryIds($is_category = false) { if ($is_category) { return (array) $this->request->id; } if ( ! $this->article && $this->request->id) { $this->article = JTable::getInstance('content'); $this->article->load($this->request->id); } if ($this->article && $this->article->catid) { return (array) $this->article->catid; } $catid = JFactory::getApplication()->input->getInt('catid', JFactory::getApplication()->getUserState('com_content.articles.filter.category_id')); $menuparams = $this->getMenuItemParams($this->request->Itemid); if ($this->request->view == 'featured') { $menuparams = $this->getMenuItemParams($this->request->Itemid); return isset($menuparams->featured_categories) ? (array) $menuparams->featured_categories : (array) $catid; } return isset($menuparams->catid) ? (array) $menuparams->catid : (array) $catid; } public function passArticles() { if ( ! $this->request->id || ! (($this->request->option == 'com_content' && $this->request->view == 'article') || ($this->request->option == 'com_flexicontent' && $this->request->view == 'item') ) ) { return $this->pass(false); } $pass = false; // Pass Article Id if ( ! $this->passItemByType($pass, 'ContentIds')) { return $this->pass(false); } // Pass Content Keywords if ( ! $this->passItemByType($pass, 'ContentKeywords')) { return $this->pass(false); } // Pass Meta Keywords if ( ! $this->passItemByType($pass, 'MetaKeywords')) { return $this->pass(false); } // Pass Authors if ( ! $this->passItemByType($pass, 'Authors')) { return $this->pass(false); } return $this->pass($pass); } public function getItem($fields = []) { if ($this->article) { return $this->article; } if ( ! class_exists('ContentModelArticle')) { require_once JPATH_SITE . '/components/com_content/models/article.php'; } $model = JModel::getInstance('article', 'contentModel'); if ( ! method_exists($model, 'getItem')) { return null; } $this->article = $model->getItem($this->request->id); return $this->article; } private function getCatParentIds($id = 0) { return $this->getParentIds($id, 'categories'); } } PK ^!]�� �� � assignments/components.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsComponents extends RLAssignment { public function passComponents() { return $this->passSimple(strtolower($this->request->option)); } } PK ^!]Gj"�� � assignments/k2.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; // If controller.php exists, assume this is K2 v3 defined('RL_K2_VERSION') or define('RL_K2_VERSION', file_exists(JPATH_ADMINISTRATOR . '/components/com_k2/controller.php') ? 3 : 2); class RLAssignmentsK2 extends RLAssignment { public function passPageTypes() { return $this->passByPageTypes('com_k2', $this->selection, $this->assignment, false, true); } public function passCategories() { if ($this->request->option != 'com_k2') { return $this->pass(false); } $pass = ( ($this->params->inc_categories && (($this->request->view == 'itemlist' && $this->request->task == 'category') || $this->request->view == 'latest' ) ) || ($this->params->inc_items && $this->request->view == 'item') ); if ( ! $pass) { return $this->pass(false); } $cats = $this->makeArray($this->getCategories()); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } else if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } private function getCategories() { switch ($this->request->view) { case 'item' : return $this->getCategoryIDFromItem(); break; case 'itemlist' : return $this->getCategoryID(); break; default: return ''; } } private function getCategoryID() { return $this->request->id ?: JFactory::getApplication()->getUserStateFromRequest('com_k2itemsfilter_category', 'catid', 0, 'int'); } private function getCategoryIDFromItem() { if ($this->article && isset($this->article->catid)) { return $this->article->catid; } $query = $this->db->getQuery(true) ->select('i.catid') ->from('#__k2_items AS i') ->where('i.id = ' . (int) $this->request->id); $this->db->setQuery($query); return $this->db->loadResult(); } public function passTags() { if ($this->request->option != 'com_k2') { return $this->pass(false); } $tag = trim(JFactory::getApplication()->input->getString('tag', '')); $pass = ( ($this->params->inc_tags && $tag != '') || ($this->params->inc_items && $this->request->view == 'item') ); if ( ! $pass) { return $this->pass(false); } if ($this->params->inc_tags && $tag != '') { $tags = [trim(JFactory::getApplication()->input->getString('tag', ''))]; return $this->passSimple($tags, true); } $query = $this->db->getQuery(true) ->select('t.name') ->from('#__k2_tags_xref AS x') ->join('LEFT', '#__k2_tags AS t ON t.id = x.tagID') ->where('x.itemID = ' . (int) $this->request->id) ->where('t.published = 1'); $this->db->setQuery($query); $tags = $this->db->loadColumn(); return $this->passSimple($tags, true); } public function passItems() { if ( ! $this->request->id || $this->request->option != 'com_k2' || $this->request->view != 'item') { return $this->pass(false); } $pass = false; // Pass Article Id if ( ! $this->passItemByType($pass, 'ContentIds')) { return $this->pass(false); } // Pass Content Keywords if ( ! $this->passItemByType($pass, 'ContentKeywords')) { return $this->pass(false); } // Pass Meta Keywords if ( ! $this->passItemByType($pass, 'MetaKeywords')) { return $this->pass(false); } // Pass Authors if ( ! $this->passItemByType($pass, 'Authors')) { return $this->pass(false); } return $this->pass($pass); } public function getItem($fields = []) { $query = $this->db->getQuery(true) ->select($fields) ->from('#__k2_items') ->where('id = ' . (int) $this->request->id); $this->db->setQuery($query); return $this->db->loadObject(); } private function getCatParentIds($id = 0) { $parent_field = RL_K2_VERSION == 3 ? 'parent_id' : 'parent'; return $this->getParentIds($id, 'k2_categories', $parent_field); } } PK ^!]��ʵ assignments/zoo.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsZoo extends RLAssignment { public function init() { if ( ! $this->request->view) { $this->request->view = $this->request->task; } switch ($this->request->view) { case 'item': $this->request->idname = 'item_id'; break; case 'category': $this->request->idname = 'category_id'; break; } $this->request->id = JFactory::getApplication()->input->getInt($this->request->idname, 0); } public function initAssignment($assignment, $article = 0) { parent::initAssignment($assignment, $article); if ($this->request->option != 'com_zoo' && ! isset($this->request->idname)) { return; } switch ($this->request->idname) { case 'item_id': $this->request->view = 'item'; break; case 'category_id': $this->request->view = 'category'; break; } } public function passPageTypes() { return $this->passByPageTypes('com_zoo', $this->selection, $this->assignment); } public function passCategories() { if ($this->request->option != 'com_zoo') { return $this->pass(false); } $pass = ( ($this->params->inc_apps && $this->request->view == 'frontpage') || ($this->params->inc_categories && $this->request->view == 'category') || ($this->params->inc_items && $this->request->view == 'item') ); if ( ! $pass) { return $this->pass(false); } $cats = $this->getCategories(); if ($cats === false) { return $this->pass(false); } $cats = $this->makeArray($cats); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } private function getCategories() { if ($this->article && isset($this->article->catid)) { return [$this->article->catid]; } $menuparams = $this->getMenuItemParams($this->request->Itemid); switch ($this->request->view) { case 'frontpage': if ($this->request->id) { return [$this->request->id]; } if ( ! isset($menuparams->application)) { return []; } return ['app' . $menuparams->application]; case 'category': $cats = []; if ($this->request->id) { $cats[] = $this->request->id; } else if (isset($menuparams->category)) { $cats[] = $menuparams->category; } if (empty($cats[0])) { return []; } $query = $this->db->getQuery(true) ->select('c.application_id') ->from('#__zoo_category AS c') ->where('c.id = ' . (int) $cats[0]); $this->db->setQuery($query); $cats[] = 'app' . $this->db->loadResult(); return $cats; case 'item': $id = $this->request->id; if ( ! $id && isset($menuparams->item_id)) { $id = $menuparams->item_id; } if ( ! $id) { return []; } $query = $this->db->getQuery(true) ->select('c.category_id') ->from('#__zoo_category_item AS c') ->where('c.item_id = ' . (int) $id) ->where('c.category_id != 0'); $this->db->setQuery($query); $cats = $this->db->loadColumn(); $query = $this->db->getQuery(true) ->select('i.application_id') ->from('#__zoo_item AS i') ->where('i.id = ' . (int) $id); $this->db->setQuery($query); $cats[] = 'app' . $this->db->loadResult(); return $cats; default: return false; } } public function passItems() { if ( ! $this->request->id || $this->request->option != 'com_zoo') { return $this->pass(false); } if ($this->request->view != 'item') { return $this->pass(false); } $pass = false; // Pass Article Id if ( ! $this->passItemByType($pass, 'ContentIds')) { return $this->pass(false); } // Pass Authors if ( ! $this->passItemByType($pass, 'Authors')) { return $this->pass(false); } return $this->pass($pass); } public function getItem($fields = []) { $query = $this->db->getQuery(true) ->select($fields) ->from('#__zoo_item') ->where('id = ' . (int) $this->request->id); $this->db->setQuery($query); return $this->db->loadObject(); } private function getCatParentIds($id = 0) { $parent_ids = []; if ( ! $id) { return $parent_ids; } while ($id) { if (substr($id, 0, 3) == 'app') { $parent_ids[] = $id; break; } $query = $this->db->getQuery(true) ->select('c.parent') ->from('#__zoo_category AS c') ->where('c.id = ' . (int) $id); $this->db->setQuery($query); $pid = $this->db->loadResult(); if ( ! $pid) { $query = $this->db->getQuery(true) ->select('c.application_id') ->from('#__zoo_category AS c') ->where('c.id = ' . (int) $id); $this->db->setQuery($query); $app = $this->db->loadResult(); if ($app) { $parent_ids[] = 'app' . $app; } break; } $parent_ids[] = $pid; $id = $pid; } return $parent_ids; } } PK ^!]�j\�G G assignments/datetime.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsDateTime extends RLAssignment { var $timezone = null; var $dates = []; public function passDate() { if ( ! $this->params->publish_up && ! $this->params->publish_down) { // no date range set return ($this->assignment == 'include'); } require_once dirname(__DIR__) . '/text.php'; RLText::fixDate($this->params->publish_up); RLText::fixDate($this->params->publish_down); $now = $this->getNow(); $up = $this->getDate($this->params->publish_up); $down = $this->getDate($this->params->publish_down); if (isset($this->params->recurring) && $this->params->recurring) { if ( ! (int) $this->params->publish_up || ! (int) $this->params->publish_down) { // no date range set return ($this->assignment == 'include'); } $up = strtotime(date('Y') . $up->format('-m-d H:i:s', true)); $down = strtotime(date('Y') . $down->format('-m-d H:i:s', true)); // pass: // 1) now is between up and down // 2) up is later in year than down and: // 2a) now is after up // 2b) now is before down if ( ($up < $now && $down > $now) || ($up > $down && ( $up < $now || $down > $now ) ) ) { return ($this->assignment == 'include'); } // outside date range return $this->pass(false); } if ( ( (int) $this->params->publish_up && strtotime($up->format('Y-m-d H:i:s', true)) > $now ) || ( (int) $this->params->publish_down && strtotime($down->format('Y-m-d H:i:s', true)) < $now ) ) { // outside date range return $this->pass(false); } // pass return ($this->assignment == 'include'); } public function passSeasons() { $season = self::getSeason($this->date, $this->params->hemisphere); return $this->passSimple($season); } public function passMonths() { $month = $this->date->format('m', true); // 01 (for January) through 12 (for December) return $this->passSimple((int) $month); } public function passDays() { $day = $this->date->format('N', true); // 1 (for Monday) though 7 (for Sunday ) return $this->passSimple($day); } public function passTime() { $now = $this->getNow(); $up = strtotime($this->date->format('Y-m-d ', true) . $this->params->publish_up); $down = strtotime($this->date->format('Y-m-d ', true) . $this->params->publish_down); if ($up > $down) { // publish up is after publish down (spans midnight) // current time should be: // - after publish up // - OR before publish down if ($now >= $up || $now < $down) { return $this->pass(true); } return $this->pass(false); } // publish down is after publish up (simple time span) // current time should be: // - after publish up // - AND before publish down if ($now >= $up && $now < $down) { return $this->pass(true); } return $this->pass(false); } private function getSeason(&$d, $hemisphere = 'northern') { // Set $date to today $date = strtotime($d->format('Y-m-d H:i:s', true)); // Get year of date specified $date_year = $d->format('Y', true); // Four digit representation for the year // Specify the season names $season_names = ['winter', 'spring', 'summer', 'fall']; // Declare season date ranges switch (strtolower($hemisphere)) { case 'southern': if ( $date < strtotime($date_year . '-03-21') || $date >= strtotime($date_year . '-12-21') ) { return $season_names[2]; // Must be in Summer } if ($date >= strtotime($date_year . '-09-23')) { return $season_names[1]; // Must be in Spring } if ($date >= strtotime($date_year . '-06-21')) { return $season_names[0]; // Must be in Winter } if ($date >= strtotime($date_year . '-03-21')) { return $season_names[3]; // Must be in Fall } break; case 'australia': if ( $date < strtotime($date_year . '-03-01') || $date >= strtotime($date_year . '-12-01') ) { return $season_names[2]; // Must be in Summer } if ($date >= strtotime($date_year . '-09-01')) { return $season_names[1]; // Must be in Spring } if ($date >= strtotime($date_year . '-06-01')) { return $season_names[0]; // Must be in Winter } if ($date >= strtotime($date_year . '-03-01')) { return $season_names[3]; // Must be in Fall } break; default: // northern if ( $date < strtotime($date_year . '-03-21') || $date >= strtotime($date_year . '-12-21') ) { return $season_names[0]; // Must be in Winter } if ($date >= strtotime($date_year . '-09-23')) { return $season_names[3]; // Must be in Fall } if ($date >= strtotime($date_year . '-06-21')) { return $season_names[2]; // Must be in Summer } if ($date >= strtotime($date_year . '-03-21')) { return $season_names[1]; // Must be in Spring } break; } return 0; } private function getNow() { return strtotime($this->date->format('Y-m-d H:i:s', true)); } private function getDate($date = '') { $id = 'date_' . $date; if (isset($this->dates[$id])) { return $this->dates[$id]; } $this->dates[$id] = JFactory::getDate($date); if (empty($this->params->ignore_time_zone)) { $this->dates[$id]->setTimeZone($this->getTimeZone()); } return $this->dates[$id]; } private function getTimeZone() { if ( ! is_null($this->timezone)) { return $this->timezone; } $this->timezone = new DateTimeZone(JFactory::getApplication()->getCfg('offset')); return $this->timezone; } } PK ^!]N��� assignments/urls.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Uri\Uri as JUri; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; require_once dirname(__DIR__) . '/text.php'; class RLAssignmentsURLs extends RLAssignment { public function passURLs() { $regex = isset($this->params->regex) ? $this->params->regex : 0; if ( ! is_array($this->selection)) { $this->selection = explode("\n", $this->selection); } if (count($this->selection) == 1) { $this->selection = explode("\n", $this->selection[0]); } $url = JUri::getInstance(); $url = $url->toString(); $urls = [ RLText::html_entity_decoder(urldecode($url)), urldecode($url), RLText::html_entity_decoder($url), $url, ]; $urls = array_unique($urls); $pass = false; foreach ($urls as $url) { foreach ($this->selection as $s) { $s = trim($s); if ($s == '') { continue; } if ($regex) { $url_part = str_replace(['#', '&'], ['\#', '(&|&)'], $s); $s = '#' . $url_part . '#si'; if (@preg_match($s . 'u', $url) || @preg_match($s, $url)) { $pass = true; break; } continue; } if (strpos($url, $s) !== false) { $pass = true; break; } } if ($pass) { break; } } return $this->pass($pass); } } PK ^!]vm@� � assignments/flexicontent.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsFlexiContent extends RLAssignment { public function passPageTypes() { return $this->passByPageTypes('com_flexicontent', $this->selection, $this->assignment); } public function passTags() { if ($this->request->option != 'com_flexicontent') { return $this->pass(false); } $pass = ( ($this->params->inc_tags && $this->request->view == 'tags') || ($this->params->inc_items && in_array($this->request->view, ['item', 'items'])) ); if ( ! $pass) { return $this->pass(false); } if ($this->params->inc_tags && $this->request->view == 'tags') { $query = $this->db->getQuery(true) ->select('t.name') ->from('#__flexicontent_tags AS t') ->where('t.id = ' . (int) trim(JFactory::getApplication()->input->getInt('id', 0))) ->where('t.published = 1'); $this->db->setQuery($query); $tag = $this->db->loadResult(); $tags = [$tag]; } else { $query = $this->db->getQuery(true) ->select('t.name') ->from('#__flexicontent_tags_item_relations AS x') ->join('LEFT', '#__flexicontent_tags AS t ON t.id = x.tid') ->where('x.itemid = ' . (int) $this->request->id) ->where('t.published = 1'); $this->db->setQuery($query); $tags = $this->db->loadColumn(); } return $this->passSimple($tags, true); } public function passTypes() { if ($this->request->option != 'com_flexicontent') { return $this->pass(false); } $pass = in_array($this->request->view, ['item', 'items']); if ( ! $pass) { return $this->pass(false); } $query = $this->db->getQuery(true) ->select('x.type_id') ->from('#__flexicontent_items_ext AS x') ->where('x.item_id = ' . (int) $this->request->id); $this->db->setQuery($query); $type = $this->db->loadResult(); $types = $this->makeArray($type); return $this->passSimple($types); } } PK ^!]��& & assignments/redshop.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsRedShop extends RLAssignment { public function init() { $this->request->item_id = JFactory::getApplication()->input->getInt('pid', 0); $this->request->category_id = JFactory::getApplication()->input->getInt('cid', 0); $this->request->id = ($this->request->item_id) ? $this->request->item_id : $this->request->category_id; } public function passPageTypes() { return $this->passByPageTypes('com_redshop', $this->selection, $this->assignment, true); } public function passCategories() { if ($this->request->option != 'com_redshop') { return $this->pass(false); } $pass = ( ($this->params->inc_categories && ($this->request->view == 'category') ) || ($this->params->inc_items && $this->request->view == 'product') ); if ( ! $pass) { return $this->pass(false); } $cats = []; if ($this->request->category_id) { $cats = $this->request->category_id; } else if ($this->request->item_id) { $query = $this->db->getQuery(true) ->select('x.category_id') ->from('#__redshop_product_category_xref AS x') ->where('x.product_id = ' . (int) $this->request->item_id); $this->db->setQuery($query); $cats = $this->db->loadColumn(); } $cats = $this->makeArray($cats); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } else if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } public function passProducts() { if ( ! $this->request->id || $this->request->option != 'com_redshop' || $this->request->view != 'product') { return $this->pass(false); } return $this->passSimple($this->request->id); } private function getCatParentIds($id = 0) { return $this->getParentIds($id, 'redshop_category_xref', 'category_parent_id', 'category_child_id'); } } PK ^!]�E? ? assignments/agents.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; require_once dirname(__DIR__) . '/text.php'; require_once dirname(__DIR__) . '/mobile_detect.php'; class RLAssignmentsAgents extends RLAssignment { var $agent = null; var $device = null; /** * passBrowsers */ public function passBrowsers() { if (empty($this->selection)) { return $this->pass(false); } foreach ($this->selection as $browser) { if ( ! $this->passBrowser($browser)) { continue; } return $this->pass(true); } return $this->pass(false); } /** * passOS */ public function passOS() { return self::passBrowsers(); } /** * passDevices */ public function passDevices() { $pass = (in_array('mobile', $this->selection) && $this->isMobile()) || (in_array('tablet', $this->selection) && $this->isTablet()) || (in_array('desktop', $this->selection) && $this->isDesktop()); return $this->pass($pass); } /** * isPhone */ public function isPhone() { return $this->isMobile(); } /** * isMobile */ public function isMobile() { return $this->getDevice() == 'mobile'; } /** * isTablet */ public function isTablet() { return $this->getDevice() == 'tablet'; } /** * isDesktop */ public function isDesktop() { return $this->getDevice() == 'desktop'; } /** * setDevice */ private function getDevice() { if ( ! is_null($this->device)) { return $this->device; } $detect = new RLMobile_Detect; $this->is_mobile = $detect->isMobile(); switch (true) { case($detect->isTablet()): $this->device = 'tablet'; break; case ($detect->isMobile()): $this->device = 'mobile'; break; default: $this->device = 'desktop'; } return $this->device; } /** * getAgent */ private function getAgent() { if ( ! is_null($this->agent)) { return $this->agent; } $detect = new RLMobile_Detect; $agent = $detect->getUserAgent(); switch (true) { case (stripos($agent, 'Trident') !== false): // Add MSIE to IE11 $agent = preg_replace('#(Trident/[0-9\.]+; rv:([0-9\.]+))#is', '\1 MSIE \2', $agent); break; case (stripos($agent, 'Chrome') !== false): // Remove Safari from Chrome $agent = preg_replace('#(Chrome/.*)Safari/[0-9\.]*#is', '\1', $agent); // Add MSIE to IE Edge and remove Chrome from IE Edge $agent = preg_replace('#Chrome/.*(Edge/[0-9])#is', 'MSIE \1', $agent); break; case (stripos($agent, 'Opera') !== false): $agent = preg_replace('#(Opera/.*)Version/#is', '\1Opera/', $agent); break; } $this->agent = $agent; return $this->agent; } /** * passBrowser */ private function passBrowser($browser = '') { if ( ! $browser) { return false; } if ($browser == 'mobile') { return $this->isMobile(); } if ( ! (strpos($browser, '#') === 0)) { $browser = '#' . RLText::pregQuote($browser) . '#'; } // also check for _ instead of . $browser = preg_replace('#\\\.([^\]])#', '[\._]\1', $browser); $browser = str_replace('\.]', '\._]', $browser); return preg_match($browser . 'i', $this->getAgent()); } } PK ^!]�nj�2 2 assignments/form2content.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsForm2Content extends RLAssignment { public function passProjects() { if ($this->request->option != 'com_content' && $this->request->view == 'article') { return $this->pass(false); } $query = $this->db->getQuery(true) ->select('c.projectid') ->from('#__f2c_form AS c') ->where('c.reference_id = ' . (int) $this->request->id); $this->db->setQuery($query); $type = $this->db->loadResult(); $types = $this->makeArray($type); return $this->passSimple($types); } } PK ^!]-��� � assignments/homepage.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Language\LanguageHelper as JLanguageHelper; use Joomla\CMS\Uri\Uri as JUri; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/text.php'; require_once dirname(__DIR__) . '/string.php'; require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsHomePage extends RLAssignment { public function passHomePage() { $home = JFactory::getApplication()->getMenu('site')->getDefault(JFactory::getLanguage()->getTag()); // return if option or other set values do not match the homepage menu item values if ($this->request->option) { // check if option is different to home menu if ( ! $home || ! isset($home->query['option']) || $home->query['option'] != $this->request->option) { return $this->pass(false); } if ( ! $this->request->option) { // set the view/task/layout in the menu item to empty if not set $home->query['view'] = isset($home->query['view']) ? $home->query['view'] : ''; $home->query['task'] = isset($home->query['task']) ? $home->query['task'] : ''; $home->query['layout'] = isset($home->query['layout']) ? $home->query['layout'] : ''; } // check set values against home menu query items foreach ($home->query as $k => $v) { if ((isset($this->request->{$k}) && $this->request->{$k} != $v) || ( ( ! isset($this->request->{$k}) || in_array($v, ['virtuemart', 'mijoshop'])) && JFactory::getApplication()->input->get($k) != $v ) ) { return $this->pass(false); } } // check post values against home menu params foreach ($home->params->toObject() as $k => $v) { if (($v && isset($_POST[$k]) && $_POST[$k] != $v) || ( ! $v && isset($_POST[$k]) && $_POST[$k]) ) { return $this->pass(false); } } } $pass = $this->checkPass($home); if ( ! $pass) { $pass = $this->checkPass($home, 1); } return $this->pass($pass); } private function checkPass(&$home, $addlang = 0) { $uri = JUri::getInstance(); if ($addlang) { $sef = $uri->getVar('lang'); if (empty($sef)) { $langs = array_keys(JLanguageHelper::getLanguages('sef')); $path = RLString::substr( $uri->toString(['scheme', 'user', 'pass', 'host', 'port', 'path']), RLString::strlen($uri->base()) ); $path = preg_replace('#^index\.php/?#', '', $path); $parts = explode('/', $path); $part = reset($parts); if (in_array($part, $langs)) { $sef = $part; } } if (empty($sef)) { return false; } } $query = $uri->toString(['query']); if (strpos($query, 'option=') === false && strpos($query, 'Itemid=') === false) { $url = $uri->toString(['host', 'path']); } else { $url = $uri->toString(['host', 'path', 'query']); } // remove the www. $url = preg_replace('#^www\.#', '', $url); // replace ampersand chars $url = str_replace('&', '&', $url); // remove any language vars $url = preg_replace('#((\?)lang=[a-z-_]*(&|$)|&lang=[a-z-_]*)#', '\2', $url); // remove trailing nonsense $url = trim(preg_replace('#/?\??&?$#', '', $url)); // remove the index.php/ $url = preg_replace('#/index\.php(/|$)#', '/', $url); // remove trailing / $url = trim(preg_replace('#/$#', '', $url)); $root = JUri::root(); // remove the http(s) $root = preg_replace('#^.*?://#', '', $root); // remove the www. $root = preg_replace('#^www\.#', '', $root); //remove the port $root = preg_replace('#:[0-9]+#', '', $root); // so also passes on urls with trailing /, ?, &, /?, etc... $root = preg_replace('#(Itemid=[0-9]*).*^#', '\1', $root); // remove trailing / $root = trim(preg_replace('#/$#', '', $root)); if ($addlang) { $root .= '/' . $sef; } /* Pass urls: * [root] */ $regex = '#^' . $root . '$#i'; if (preg_match($regex, $url)) { return true; } /* Pass urls: * [root]?Itemid=[menu-id] * [root]/?Itemid=[menu-id] * [root]/index.php?Itemid=[menu-id] * [root]/[menu-alias] * [root]/[menu-alias]?Itemid=[menu-id] * [root]/index.php?[menu-alias] * [root]/index.php?[menu-alias]?Itemid=[menu-id] * [root]/[menu-link] * [root]/[menu-link]&Itemid=[menu-id] */ $regex = '#^' . $root . '(/(' . 'index\.php' . '|' . '(index\.php\?)?' . RLText::pregQuote($home->alias) . '|' . RLText::pregQuote($home->link) . ')?)?' . '(/?[\?&]Itemid=' . (int) $home->id . ')?' . '$#i'; return preg_match($regex, $url); } } PK ^!]���8� � assignments/languages.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsLanguages extends RLAssignment { public function passLanguages() { return $this->passSimple(JFactory::getLanguage()->getTag(), true); } } PK ^!]��� assignments/virtuemart.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsVirtueMart extends RLAssignment { public function init() { $virtuemart_product_id = JFactory::getApplication()->input->get('virtuemart_product_id', [], 'array'); $virtuemart_category_id = JFactory::getApplication()->input->get('virtuemart_category_id', [], 'array'); $this->request->item_id = isset($virtuemart_product_id[0]) ? $virtuemart_product_id[0] : null; $this->request->category_id = isset($virtuemart_category_id[0]) ? $virtuemart_category_id[0] : null; $this->request->id = ($this->request->item_id) ? $this->request->item_id : $this->request->category_id; } public function passPageTypes() { // Because VM sucks, we have to get the view again $this->request->view = JFactory::getApplication()->input->getString('view'); return $this->passByPageTypes('com_virtuemart', $this->selection, $this->assignment, true); } public function passCategories() { if ($this->request->option != 'com_virtuemart') { return $this->pass(false); } // Because VM sucks, we have to get the view again $this->request->view = JFactory::getApplication()->input->getString('view'); $pass = (($this->params->inc_categories && in_array($this->request->view, ['categories', 'category'])) || ($this->params->inc_items && $this->request->view == 'productdetails') ); if ( ! $pass) { return $this->pass(false); } $cats = []; if ($this->request->view == 'productdetails' && $this->request->item_id) { $query = $this->db->getQuery(true) ->select('x.virtuemart_category_id') ->from('#__virtuemart_product_categories AS x') ->where('x.virtuemart_product_id = ' . (int) $this->request->item_id); $this->db->setQuery($query); $cats = $this->db->loadColumn(); } else if ($this->request->category_id) { $cats = $this->request->category_id; if ( ! is_numeric($cats)) { $query = $this->db->getQuery(true) ->select('config') ->from('#__virtuemart_configs') ->where('virtuemart_config_id = 1'); $this->db->setQuery($query); $config = $this->db->loadResult(); $lang = substr($config, strpos($config, 'vmlang=')); $lang = substr($lang, 0, strpos($lang, '|')); if (preg_match('#"([^"]*_[^"]*)"#', $lang, $lang)) { $lang = $lang[1]; } else { $lang = 'en_gb'; } $query = $this->db->getQuery(true) ->select('l.virtuemart_category_id') ->from('#__virtuemart_categories_' . $lang . ' AS l') ->where('l.slug = ' . $this->db->quote($cats)); $this->db->setQuery($query); $cats = $this->db->loadResult(); } } $cats = $this->makeArray($cats); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } public function passProducts() { // Because VM sucks, we have to get the view again $this->request->view = JFactory::getApplication()->input->getString('view'); if ( ! $this->request->id || $this->request->option != 'com_virtuemart' || $this->request->view != 'productdetails') { return $this->pass(false); } return $this->passSimple($this->request->id); } private function getCatParentIds($id = 0) { return $this->getParentIds($id, 'virtuemart_category_categories', 'category_parent_id', 'category_child_id'); } } PK ^!]'�� � assignments/hikashop.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsHikaShop extends RLAssignment { public function passPageTypes() { if ($this->request->option != 'com_hikashop') { return $this->pass(false); } $type = $this->request->view; if ( ($type == 'product' && in_array($this->request->layout, ['contact', 'show'])) || ($type == 'user' && in_array($this->request->layout, ['cpanel'])) ) { $type .= '_' . $this->request->layout; } return $this->passSimple($type); } public function passCategories() { if ($this->request->option != 'com_hikashop') { return $this->pass(false); } $pass = ( ($this->params->inc_categories && ($this->request->view == 'category' || $this->request->layout == 'listing') ) || ($this->params->inc_items && $this->request->view == 'product') ); if ( ! $pass) { return $this->pass(false); } $cats = $this->getCategories(); $pass = $this->passSimple($cats, 'include'); if ($pass && $this->params->inc_children == 2) { return $this->pass(false); } else if ( ! $pass && $this->params->inc_children) { foreach ($cats as $cat) { $cats = array_merge($cats, $this->getCatParentIds($cat)); } } return $this->passSimple($cats); } public function passProducts() { if ( ! $this->request->id || $this->request->option != 'com_hikashop' || $this->request->view != 'product') { return $this->pass(false); } return $this->passSimple($this->request->id); } private function getCategories() { switch (true) { case (($this->request->view == 'category' || $this->request->layout == 'listing') && $this->request->id): return [$this->request->id]; case ($this->request->view == 'category' || $this->request->layout == 'listing'): include_once JPATH_ADMINISTRATOR . '/components/com_hikashop/helpers/helper.php'; $menuClass = hikashop_get('class.menus'); $menuData = $menuClass->get($this->request->Itemid); return $this->makeArray($menuData->hikashop_params['selectparentlisting']); case ($this->request->id): $query = $this->db->getQuery(true) ->select('c.category_id') ->from('#__hikashop_product_category AS c') ->where('c.product_id = ' . (int) $this->request->id); $this->db->setQuery($query); $cats = $this->db->loadColumn(); return $this->makeArray($cats); default: return []; } } private function getCatParentIds($id = 0) { return $this->getParentIds($id, 'hikashop_category', 'category_parent_id', 'category_id'); } } PK ^!]tZ#�% % assignments/php.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\MVC\Model\BaseDatabaseModel as JModel; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsPHP extends RLAssignment { public function passPHP() { $article = $this->article; if ( ! is_array($this->selection)) { $this->selection = [$this->selection]; } $pass = false; foreach ($this->selection as $php) { // replace \n with newline and other fix stuff $php = str_replace('\|', '|', $php); $php = preg_replace('#(?<!\\\)\\\n#', "\n", $php); $php = trim(str_replace('[:REGEX_ENTER:]', '\n', $php)); if ($php == '') { $pass = true; break; } if ( ! $article && strpos($php, '$article') !== false) { $article = null; if ($this->request->option == 'com_content' && $this->request->view == 'article') { $article = $this->getArticleById($this->request->id); } } if ( ! isset($Itemid)) { $Itemid = JFactory::getApplication()->input->getInt('Itemid', 0); } if ( ! isset($mainframe)) { $mainframe = JFactory::getApplication(); } if ( ! isset($app)) { $app = JFactory::getApplication(); } if ( ! isset($document)) { $document = JFactory::getDocument(); } if ( ! isset($doc)) { $doc = JFactory::getDocument(); } if ( ! isset($database)) { $database = JFactory::getDbo(); } if ( ! isset($db)) { $db = JFactory::getDbo(); } if ( ! isset($user)) { $user = JFactory::getUser(); } $php .= ';return true;'; $temp_PHP_func = create_function('&$article, &$Itemid, &$mainframe, &$app, &$document, &$doc, &$database, &$db, &$user', $php); // evaluate the script ob_start(); $pass = (bool) $temp_PHP_func($article, $Itemid, $mainframe, $app, $document, $doc, $database, $db, $user); unset($temp_PHP_func); ob_end_clean(); if ($pass) { break; } } return $this->pass($pass); } private function getArticleById($id = 0) { if ( ! $id) { return null; } if ( ! class_exists('ContentModelArticle')) { require_once JPATH_SITE . '/components/com_content/models/article.php'; } $model = JModel::getInstance('article', 'contentModel'); if ( ! method_exists($model, 'getItem')) { return null; } return $model->getItem($this->request->id); } } PK ^!]�Q�� � assignments/templates.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } require_once dirname(__DIR__) . '/assignment.php'; class RLAssignmentsTemplates extends RLAssignment { public function passTemplates() { $template = $this->getTemplate(); // Put template name and name + style id into array // The '::' separator was used in pre Joomla 3.3 $template = [$template->template, $template->template . '--' . $template->id, $template->template . '::' . $template->id]; return $this->passSimple($template, true); } public function getTemplate() { $template = JFactory::getApplication()->getTemplate(true); if (isset($template->id)) { return $template; } $params = json_encode($template->params); // Find template style id based on params, as the template style id is not always stored in the getTemplate $query = $this->db->getQuery(true) ->select('id') ->from('#__template_styles as s') ->where('s.client_id = 0') ->where('s.template = ' . $this->db->quote($template->template)) ->where('s.params = ' . $this->db->quote($params)) ->setLimit(1); $this->db->setQuery($query); $template->id = $this->db->loadResult('id'); if ($template->id) { return $template; } // No template style id is found, so just grab the first result based on the template name $query->clear('where') ->where('s.client_id = 0') ->where('s.template = ' . $this->db->quote($template->template)) ->setLimit(1); $this->db->setQuery($query); $template->id = $this->db->loadResult('id'); return $template; } } PK ^!]�� � html.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Form as RL_Form; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLHtml { static function selectlist(&$options, $name, $value, $id, $size = 0, $multiple = 0, $simple = 0) { return RL_Form::selectList($options, $name, $value, $id, $size, $multiple, $simple); } static function selectlistsimple(&$options, $name, $value, $id, $size = 0, $multiple = 0) { return RL_Form::selectListSimple($options, $name, $value, $id, $size, $multiple); } } PK ^!];u�՞ � parameters.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Parameters as RL_Parameters; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLParameters { public static function getInstance() { return RL_Parameters::getInstance(); } } PK ^!]u�� � mobile_detect.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLMobile_Detect extends \RegularLabs\Library\MobileDetect { public function isMac() { return $this->match('(Mac OS|Mac_PowerPC|Macintosh)'); } } PK ^!]��+ tags.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Html as RL_Html; use RegularLabs\Library\PluginTag as RL_PluginTag; use RegularLabs\Library\RegEx as RL_RegEx; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLTags { static $protected_characters = [ '=' => '[[:EQUAL:]]', '"' => '[[:QUOTE:]]', ',' => '[[:COMMA:]]', '|' => '[[:BAR:]]', ':' => '[[:COLON:]]', ]; public static function getValuesFromString($string = '', $main_key = 'title', $known_boolean_keys = [], $keep_escaped = [',']) { return RL_PluginTag::getAttributesFromString($string, $main_key, $known_boolean_keys, $keep_escaped); } public static function protectSpecialChars(&$string) { RL_PluginTag::protectSpecialChars($string); } public static function unprotectSpecialChars(&$string, $keep_escaped_chars = []) { RL_PluginTag::unprotectSpecialChars($string, $keep_escaped_chars); } public static function replaceKeyAliases(&$values, $key_aliases = [], $handle_plurals = false) { RL_PluginTag::replaceKeyAliases($values, $key_aliases, $handle_plurals); } public static function convertOldSyntax(&$values, $known_boolean_keys = [], $extra_key = 'class') { RL_PluginTag::convertOldSyntax($values, $known_boolean_keys, $extra_key); } public static function getRegexSpaces($modifier = '+') { return RL_PluginTag::getRegexSpaces($modifier); } public static function getRegexInsideTag() { return RL_PluginTag::getRegexInsideTag(); } public static function getRegexSurroundingTagPre($elements = ['p', 'span']) { return RL_PluginTag::getRegexSurroundingTagPre($elements); } public static function getRegexSurroundingTagPost($elements = ['p', 'span']) { return RL_PluginTag::getRegexSurroundingTagPost($elements); } public static function getRegexTags($tags, $include_no_attributes = true, $include_ending = true, $required_attributes = []) { return RL_PluginTag::getRegexTags($tags, $include_no_attributes, $include_ending, $required_attributes); } public static function fixBrokenHtmlTags($string) { return RL_Html::fix($string); } public static function cleanSurroundingTags($tags, $elements = ['p', 'span']) { return RL_Html::cleanSurroundingTags($tags, $elements); } public static function fixSurroundingTags($tags) { return RL_Html::fixArray($tags); } public static function removeEmptyHtmlTagPairs($string, $elements = ['p', 'span']) { return RL_Html::removeEmptyTagPairs($string, $elements); } public static function getDivTags($start_tag = '', $end_tag = '', $tag_start = '{', $tag_end = '}') { $tag_start = RL_RegEx::unquote($tag_start); $tag_end = RL_RegEx::unquote($tag_end); return RL_PluginTag::getDivTags($start_tag, $end_tag, $tag_start, $tag_end); } public static function getTagValues($string = '', $keys = ['title'], $separator = '|', $equal = '=', $limit = 0) { return RL_PluginTag::getAttributesFromStringOld($string, $keys, $separator, $equal, $limit); } /* @Deprecated */ public static function setSurroundingTags($pre, $post, $tags = 0) { if ($tags == 0) { // tags that have a matching ending tag $tags = [ 'div', 'p', 'span', 'pre', 'a', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'b', 'em', 'i', 'u', 'big', 'small', 'font', // html 5 stuff 'header', 'nav', 'section', 'article', 'aside', 'footer', 'figure', 'figcaption', 'details', 'summary', 'mark', 'time', ]; } $a = explode('<', $pre); $b = explode('</', $post); if (count($b) < 2 || count($a) < 2) { return [trim($pre), trim($post)]; } $a = array_reverse($a); $a_pre = array_pop($a); $b_pre = array_shift($b); $a_tags = $a; foreach ($a_tags as $i => $a_tag) { $a[$i] = '<' . trim($a_tag); $a_tags[$i] = RL_RegEx::replace('^([a-z0-9]+).*$', '\1', trim($a_tag)); } $b_tags = $b; foreach ($b_tags as $i => $b_tag) { $b[$i] = '</' . trim($b_tag); $b_tags[$i] = RL_RegEx::replace('^([a-z0-9]+).*$', '\1', trim($b_tag)); } foreach ($b_tags as $i => $b_tag) { if (empty($b_tag) || ! in_array($b_tag, $tags)) { continue; } foreach ($a_tags as $j => $a_tag) { if ($b_tag != $a_tag) { continue; } $a_tags[$i] = ''; $b[$i] = trim(RL_RegEx::replace('^</' . $b_tag . '.*?>', '', $b[$i])); $a[$j] = trim(RL_RegEx::replace('^<' . $a_tag . '.*?>', '', $a[$j])); break; } } foreach ($a_tags as $i => $tag) { if (empty($tag) || ! in_array($tag, $tags)) { continue; } array_unshift($b, trim($a[$i])); $a[$i] = ''; } $a = array_reverse($a); list($pre, $post) = [implode('', $a), implode('', $b)]; return [trim($pre), trim($post)]; } } PK ^!]<�� � htmlfix.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Html as RL_Html; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLHtmlFix { public static function _($string) { return RL_Html::fix($string); } } PK ^!]�<��q q assignment.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLAssignment extends \RegularLabs\Library\Condition { function pass($pass = true, $include_type = null) { return $this->_($pass, $include_type); } public function passByPageTypes($option, $selection = [], $assignment = 'all', $add_view = false, $get_task = false, $get_layout = true) { return $this->passByPageType($option, $selection, $assignment, $add_view, $get_task, $get_layout); } public function passContentIds() { return $this->passContentId(); } public function passContentKeywords($fields = ['title', 'introtext', 'fulltext'], $text = '') { return $this->passContentKeyword($fields, $text); } public function passMetaKeywords($field = 'metakey', $keywords = '') { return $this->passMetaKeyword($field, $keywords); } public function passAuthors($field = 'created_by', $author = '') { return $this->passAuthors($field, $author); } } PK ^!]��g g search.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /** * BASE ON JOOMLA CORE FILE: * /components/com_search/models/search.php */ /** * @package Joomla.Site * @subpackage com_search * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\MVC\Model\BaseDatabaseModel as JModel; use Joomla\CMS\Pagination\Pagination as JPagination; use Joomla\CMS\Plugin\PluginHelper as JPluginHelper; /** * Search Component Search Model * * @since 1.5 */ class SearchModelSearch extends JModel { /** * Search data array * * @var array */ protected $_data = null; /** * Search total * * @var integer */ protected $_total = null; /** * Search areas * * @var integer */ protected $_areas = null; /** * Pagination object * * @var object */ protected $_pagination = null; /** * Constructor * * @since 1.5 */ public function __construct() { parent::__construct(); // Get configuration $app = JFactory::getApplication(); $config = JFactory::getConfig(); // Get the pagination request variables $this->setState('limit', $app->getUserStateFromRequest('com_search.limit', 'limit', $config->get('list_limit'), 'uint')); $this->setState('limitstart', $app->input->get('limitstart', 0, 'uint')); // Get parameters. $params = $app->getParams(); if ($params->get('searchphrase') == 1) { $searchphrase = 'any'; } elseif ($params->get('searchphrase') == 2) { $searchphrase = 'exact'; } else { $searchphrase = 'all'; } // Set the search parameters $keyword = urldecode($app->input->getString('searchword')); $match = $app->input->get('searchphrase', $searchphrase, 'word'); $ordering = $app->input->get('ordering', $params->get('ordering', 'newest'), 'word'); $this->setSearch($keyword, $match, $ordering); // Set the search areas $areas = $app->input->get('areas', null, 'array'); $this->setAreas($areas); } /** * Method to set the search parameters * * @param string $keyword string search string * @param string $match matching option, exact|any|all * @param string $ordering option, newest|oldest|popular|alpha|category * * @return void * * @access public */ public function setSearch($keyword, $match = 'all', $ordering = 'newest') { if (isset($keyword)) { $this->setState('origkeyword', $keyword); if ($match !== 'exact') { $keyword = preg_replace('#\xE3\x80\x80#s', ' ', $keyword); } $this->setState('keyword', $keyword); } if (isset($match)) { $this->setState('match', $match); } if (isset($ordering)) { $this->setState('ordering', $ordering); } } /** * Method to get weblink item data for the category * * @access public * @return array */ public function getData() { // Lets load the content if it doesn't already exist if (empty($this->_data)) { $areas = $this->getAreas(); JPluginHelper::importPlugin('search'); $dispatcher = JEventDispatcher::getInstance(); $results = $dispatcher->trigger('onContentSearch', [ $this->getState('keyword'), $this->getState('match'), $this->getState('ordering'), $areas['active'], ] ); $rows = []; foreach ($results as $result) { $rows = array_merge((array) $rows, (array) $result); } $this->_total = count($rows); if ($this->getState('limit') > 0) { $this->_data = array_splice($rows, $this->getState('limitstart'), $this->getState('limit')); } else { $this->_data = $rows; } /* >>> ADDED: Run content plugins over results */ $params = JFactory::getApplication()->getParams('com_content'); $params->set('rl_search', 1); foreach ($this->_data as $item) { if (empty($item->text)) { continue; } $dispatcher->trigger('onContentPrepare', ['com_search.search.article', &$item, &$params, 0]); if (empty($item->title)) { continue; } // strip html tags from title $item->title = strip_tags($item->title); } /* <<< */ } return $this->_data; } /** * Method to get the total number of weblink items for the category * * @access public * * @return integer */ public function getTotal() { return $this->_total; } /** * Method to set the search areas * * @param array $active areas * @param array $search areas * * @return void * * @access public */ public function setAreas($active = [], $search = []) { $this->_areas['active'] = $active; $this->_areas['search'] = $search; } /** * Method to get a pagination object of the weblink items for the category * * @access public * @return integer */ public function getPagination() { // Lets load the content if it doesn't already exist if (empty($this->_pagination)) { $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit')); } return $this->_pagination; } /** * Method to get the search areas * * @return int * * @since 1.5 */ public function getAreas() { // Load the Category data if (empty($this->_areas['search'])) { $areas = []; JPluginHelper::importPlugin('search'); $dispatcher = JEventDispatcher::getInstance(); $searchareas = $dispatcher->trigger('onContentSearchAreas'); foreach ($searchareas as $area) { if (is_array($area)) { $areas = array_merge($areas, $area); } } $this->_areas['search'] = $areas; } return $this->_areas; } } PK ^!]�փ� � licenses.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\License as RL_License; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLLicenses { public static function render($name, $check_pro = false) { return ! class_exists('RegularLabs\Library\License') ? '' : RL_License::getMessage($name, $check_pro); } } PK ^!]��#�� � cache.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Cache as RL_Cache; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLCache { static $cache = []; public static function has($id) { return RL_Cache::has($id); } public static function get($id) { return RL_Cache::get($id); } public static function set($id, $data) { return RL_Cache::set($id, $data); } public static function read($id) { return RL_Cache::read($id); } public static function write($id, $data, $ttl = 0) { return RL_Cache::write($id, $data, $ttl); } } PK ^!]�,L� versions.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Version as RL_Version; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLVersions { public static function getXMLVersion($alias, $urlformat = false, $type = 'component', $folder = 'system') { return ! class_exists('RegularLabs\Library\Version') ? '' : RL_Version::get($alias, $type, $folder); } public static function getPluginXMLVersion($alias, $folder = 'system') { return ! class_exists('RegularLabs\Library\Version') ? '' : RL_Version::getPluginVersion($alias, $folder); } public static function render($alias) { return ! class_exists('RegularLabs\Library\Version') ? '' : RL_Version::getMessage($alias); } public static function getFooter($name, $copyright = 1) { return ! class_exists('RegularLabs\Library\Version') ? '' : RL_Version::getFooter($name, $copyright); } } PK ^!]vU��8 8 field.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLFormField extends \RegularLabs\Library\Field { } PK ^!]W9�B B groupfield.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLFormGroupField extends \RegularLabs\Library\FieldGroup { } PK ^!]��Tx� � string.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; jimport('joomla.string.string'); abstract class RLString extends JString { } PK ^!]| helper.phpnu &1i� <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; use RegularLabs\Library\Article as RL_Article; use RegularLabs\Library\Cache as RL_Cache; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Parameters as RL_Parameters; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLHelper { public static function getPluginHelper($plugin, $params = null) { if ( ! class_exists('RegularLabs\Library\Cache')) { return null; } $hash = md5('getPluginHelper_' . $plugin->get('_type') . '_' . $plugin->get('_name') . '_' . json_encode($params)); if (RL_Cache::has($hash)) { return RL_Cache::get($hash); } if ( ! $params) { $params = RL_Parameters::getInstance()->getPluginParams($plugin->get('_name')); } $file = JPATH_PLUGINS . '/' . $plugin->get('_type') . '/' . $plugin->get('_name') . '/helper.php'; if ( ! is_file($file)) { return null; } require_once $file; $class = get_class($plugin) . 'Helper'; return RL_Cache::set( $hash, new $class($params) ); } public static function processArticle(&$article, &$context, &$helper, $method, $params = []) { class_exists('RegularLabs\Library\Article') && RL_Article::process($article, $context, $helper, $method, $params); } public static function isCategoryList($context) { return class_exists('RegularLabs\Library\Document') && RL_Document::isCategoryList($context); } } PK �X!]Y��$2 2 legacyrouter.phpnu &1i� PK �X!]��?�� � r category.phpnu &1i� PK �X!]-T� � X association.phpnu &1i� PK �X!]f^ � V! route.phpnu &1i� PK ^!]Q�.y� � 1) protect.phpnu &1i� PK ^!]4�ړr r �B functions.phpnu &1i� PK ^!]��^@Z Z �T assignments.phpnu &1i� PK ^!]0w� 8Y text.phpnu &1i� PK ^!]E�F� � l assignments/mijoshop.phpnu &1i� PK ^!]��� � �x assignments/akeebasubs.phpnu &1i� PK ^!]�P|?{ { �~ assignments/tags.phpnu &1i� PK ^!]�џDr r N� assignments/geo.phpnu &1i� PK ^!]���? ? � assignments/cookieconfirm.phpnu &1i� PK ^!]7��S S �� assignments/users.phpnu &1i� PK ^!]��� '� assignments/easyblog.phpnu &1i� PK ^!]��V�� � v� assignments/ips.phpnu &1i� PK ^!]��ףg g �� assignments/menu.phpnu &1i� PK ^!]14� F� assignments/content.phpnu &1i� PK ^!]�� �� � �� assignments/components.phpnu &1i� PK ^!]Gj"�� � �� assignments/k2.phpnu &1i� PK ^!]��ʵ �� assignments/zoo.phpnu &1i� PK ^!]�j\�G G assignments/datetime.phpnu &1i� PK ^!]N��� �& assignments/urls.phpnu &1i� PK ^!]vm@� � �- assignments/flexicontent.phpnu &1i� PK ^!]��& & �7 assignments/redshop.phpnu &1i� PK ^!]�E? ? /B assignments/agents.phpnu &1i� PK ^!]�nj�2 2 �P assignments/form2content.phpnu &1i� PK ^!]-��� � 2U assignments/homepage.phpnu &1i� PK ^!]���8� � i assignments/languages.phpnu &1i� PK ^!]��� Bl assignments/virtuemart.phpnu &1i� PK ^!]'�� � �| assignments/hikashop.phpnu &1i� PK ^!]tZ#�% % � assignments/php.phpnu &1i� PK ^!]�Q�� � J� assignments/templates.phpnu &1i� PK ^!]�� � �� html.phpnu &1i� PK ^!];u�՞ � t� parameters.phpnu &1i� PK ^!]u�� � P� mobile_detect.phpnu &1i� PK ^!]��+ +� tags.phpnu &1i� PK ^!]<�� � u� htmlfix.phpnu &1i� PK ^!]�<��q q 5� assignment.phpnu &1i� PK ^!]��g g �� search.phpnu &1i� PK ^!]�փ� � �� licenses.phpnu &1i� PK ^!]��#�� � �� cache.phpnu &1i� PK ^!]�,L� �� versions.phpnu &1i� PK ^!]vU��8 8 � field.phpnu &1i� PK ^!]W9�B B z� groupfield.phpnu &1i� PK ^!]��Tx� � �� string.phpnu &1i� PK ^!]| � helper.phpnu &1i� PK / / B�
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка