uawdijnntqw1x1x1
IP : 216.73.217.31
Hostname : webm015.cluster127.gra.hosting.ovh.net
Kernel : Linux webm015.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
pteabiscqq
/
www
/
components
/
com_k2
/
helpers
/
.
/
route.php
/
/
<?php /** * @version 2.11 (rolling release) * @package K2 * @author JoomlaWorks https://www.joomlaworks.net * @copyright Copyright (c) 2009 - 2024 JoomlaWorks Ltd. All rights reserved. * @license GNU/GPL: https://gnu.org/licenses/gpl.html */ // no direct access defined('_JEXEC') or die; jimport('joomla.application.component.helper'); class K2HelperRoute { private static $cache = array( 'item' => array(), 'category' => array(), 'date' => array(), 'tag' => array(), 'user' => array(), 'menu_items' => null, 'fallback_menu_items' => array(), 'multicat_menu_items' => array(), 'category_tree' => null, 'itemlist_model' => null ); public static function getItemRoute($id, $catid = 0) { $key = (int) $id; if (isset(self::$cache['item'][$key])) { return self::$cache['item'][$key]; } $needles = array( 'item' => (int) $id, 'category' => (int) $catid, ); $link = 'index.php?option=com_k2&view=item&id='.$id; if ($item = self::findMenuItem($needles)) { $link .= '&Itemid='.$item->id; } self::$cache['item'][$key] = $link; return $link; } public static function getCategoryRoute($catid) { $key = (int) $catid; if (isset(self::$cache['category'][$key])) { return self::$cache['category'][$key]; } $needles = array('category' => (int) $catid); $link = 'index.php?option=com_k2&view=itemlist&task=category&id='.$catid; if ($item = self::findMenuItem($needles)) { $link .= '&Itemid='.$item->id; } self::$cache['category'][$key] = $link; return $link; } public static function getTagRoute($tag) { $key = hash('md5', $tag); if (isset(self::$cache['tag'][$key])) { return self::$cache['tag'][$key]; } $needles = array('tag' => $tag); $link = 'index.php?option=com_k2&view=itemlist&task=tag&tag='.urlencode($tag); if ($item = self::findMenuItem($needles)) { $link .= '&Itemid='.$item->id; } self::$cache['tag'][$key] = $link; return $link; } public static function getUserRoute($userID) { $key = (int) $userID; if (isset(self::$cache['user'][$key])) { return self::$cache['user'][$key]; } $needles = array('user' => (int) $userID); $user = JFactory::getUser($userID); if (K2_JVERSION != '15' && JFactory::getConfig()->get('unicodeslugs') == 1) { $alias = JApplication::stringURLSafe($user->name); } elseif (JPluginHelper::isEnabled('system', 'unicodeslug') || JPluginHelper::isEnabled('system', 'jw_unicodeSlugsExtended')) { $alias = JFilterOutput::stringURLSafe($user->name); } else { $alias = preg_replace('/[^\p{L}\p{N}]/u', '', trim($user->name)); $alias = mb_strtolower($alias, 'UTF-8'); $params = K2HelperUtilities::getParams('com_k2'); $processedSEFReplacements = array(); $SEFReplacements = explode(',', $params->get('SEFReplacements', null)); foreach ($SEFReplacements as $pair) { if (!empty($pair)) { @list($src, $dst) = explode('|', trim($pair)); $processedSEFReplacements[trim($src)] = trim($dst); } } foreach ($processedSEFReplacements as $key => $value) { $alias = str_replace($key, $value, $alias); } $alias = preg_replace('/[^\p{L}\p{N}]/u', '', $alias); if (trim($alias) == '') { // I mean, what are the freaking odds, right? $alias = hash('md5', $user->name); } } $link = 'index.php?option=com_k2&view=itemlist&task=user&id='.$userID.':'.$alias; if ($item = self::findMenuItem($needles)) { $link .= '&Itemid='.$item->id; } self::$cache['user'][$key] = $link; return $link; } public static function getDateRoute($year, $month, $day = 0, $catid = 0) { $key = (int) $year.$month.$day.$catid; if (isset(self::$cache['date'][$key])) { return self::$cache['date'][$key]; } $needles = array('date' => (int) $year.$month.$day); $link = 'index.php?option=com_k2&view=itemlist&task=date&year='.$year.'&month='.$month; if ($day) { $link .= '&day='.$day; } if ($catid) { $link .= '&catid='.$catid; } if ($item = self::findMenuItem($needles)) { $link .= '&Itemid='.$item->id; } self::$cache['date'][$key] = $link; return $link; } public static function getSearchRoute($Itemid = '') { $needles = array('search' => 'search'); $link = 'index.php?option=com_k2&view=itemlist&task=search'; if ($Itemid) { $link .= '&Itemid='.$Itemid; } elseif ($item = self::findMenuItem($needles)) { $link .= '&Itemid='.$item->id; } return $link; } private static function findMenuItem($needles) { $app = JFactory::getApplication(); $menu = $app->getMenu('site', array()); $component = JComponentHelper::getComponent('com_k2'); if (!is_null(self::$cache['menu_items'])) { $items = self::$cache['menu_items']; } else { if (K2_JVERSION == '15') { $items = $menu->getItems('componentid', $component->id); } else { $items = $menu->getItems('component_id', $component->id); } self::$cache['menu_items'] = $items; } $parsedItems = array(); if (count($items)) { foreach ($items as $item) { // Find K2 menu items pointing to multiple K2 categories if (@$item->query['view'] == 'itemlist' && @$item->query['task'] == '') { if (!isset(self::$cache['multicat_menu_items'][$item->id])) { if (K2_JVERSION == '15') { $menuparams = explode("\n", $item->params); foreach ($menuparams as $param) { if (strpos($param, 'categories=') === 0) { $array = explode('categories=', $param); $item->K2Categories = explode('|', $array[1]); } } if (!isset($item->K2Categories)) { $item->K2Categories = array(); } } else { $menuparams = json_decode($item->params); $item->K2Categories = isset($menuparams->categories) ? $menuparams->categories : array(); } self::$cache['multicat_menu_items'][$item->id] = $item->K2Categories; if (count($item->K2Categories) === 0) { // Push all K2 itemlist menu items without specific categories assigned into an array // Later we pick the one with the highest menu item ID [TBC with static selection under SEO settings] self::$cache['fallback_menu_items'][$item->id] = $item; } } } $parsedItems[] = $item; } } $match = null; foreach ($needles as $needle => $id) { if (count($parsedItems)) { foreach ($parsedItems as $item) { if ($needle == 'category' || $needle == 'user') { if ((@$item->query['task'] == $needle) && (@$item->query['id'] == $id)) { $match = $item; break; } } elseif ($needle == 'tag') { if ((@$item->query['task'] == $needle) && (@$item->query['tag'] == $id)) { $match = $item; break; } } else { if ((@$item->query['view'] == $needle) && (@$item->query['id'] == $id)) { $match = $item; break; } } if (!is_null($match)) { break; } } // Second pass for K2 menu items pointing to multiple K2 categories - attempt to find menu item that includes a given category's ID if (is_null($match) && $needle == 'category') { foreach ($parsedItems as $item) { if (@$item->query['view'] == 'itemlist' && @$item->query['task'] == '') { if (isset(self::$cache['multicat_menu_items'][$item->id]) && count(self::$cache['multicat_menu_items'][$item->id])) { foreach (self::$cache['multicat_menu_items'][$item->id] as $catid) { if ($id == (int) $catid) { $match = $item; break; } } } if (!is_null($match)) { break; } } } } } if (!is_null($match)) { break; } } if (is_null($match)) { // Try to detect any parent category menu item if ($needle == 'category') { if (is_null(self::$cache['category_tree'])) { K2Model::addIncludePath(JPATH_SITE.'/components/com_k2/models'); $model = K2Model::getInstance('Itemlist', 'K2Model'); self::$cache['category_tree'] = $model->getCategoriesTree(); self::$cache['itemlist_model'] = $model; } $parents = self::$cache['itemlist_model']->getTreePath(self::$cache['category_tree'], $id); if (is_array($parents) && count($parents)) { foreach ($parents as $categoryID) { if ($categoryID != $id) { // Recursively check if a menu item exists with the parent category ID $match = self::findMenuItem(array('category' => $categoryID)); if (!is_null($match)) { break; } } } } } if (is_null($match) && count(self::$cache['fallback_menu_items'])) { // We can't find any match so we pick the K2 itemlist menu item with the highest ID that points to no specific categories rsort(self::$cache['fallback_menu_items']); $match = self::$cache['fallback_menu_items'][0]; } } return $match; } }
/home/pteabiscqq/www/components/com_k2/helpers/./route.php