Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/router.php.tar
Назад
home/wuectly/www/components/com_contact/router.php 0000604 00000014174 15245551610 0016532 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_contact * * @since 3.3 */ class ContactRouter extends JComponentRouterView { protected $noIDs = false; /** * Search Component router constructor * * @param JApplicationCms $app The application object * @param JMenu $menu The menu object to work with */ public function __construct($app = null, $menu = null) { $params = JComponentHelper::getParams('com_contact'); $this->noIDs = (bool) $params->get('sef_ids'); $categories = new JComponentRouterViewconfiguration('categories'); $categories->setKey('id'); $this->registerView($categories); $category = new JComponentRouterViewconfiguration('category'); $category->setKey('id')->setParent($categories, 'catid')->setNestable(); $this->registerView($category); $contact = new JComponentRouterViewconfiguration('contact'); $contact->setKey('id')->setParent($category, 'catid'); $this->registerView($contact); $this->registerView(new JComponentRouterViewconfiguration('featured')); parent::__construct($app, $menu); $this->attachRule(new JComponentRouterRulesMenu($this)); if ($params->get('sef_advanced', 0)) { $this->attachRule(new JComponentRouterRulesStandard($this)); $this->attachRule(new JComponentRouterRulesNomenu($this)); } else { JLoader::register('ContactRouterRulesLegacy', __DIR__ . '/helpers/legacyrouter.php'); $this->attachRule(new ContactRouterRulesLegacy($this)); } } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategorySegment($id, $query) { $category = JCategories::getInstance($this->getName())->get($id); if ($category) { $path = array_reverse($category->getPath(), true); $path[0] = '1:root'; if ($this->noIDs) { foreach ($path as &$segment) { list($id, $segment) = explode(':', $segment, 2); } } return $path; } return array(); } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategoriesSegment($id, $query) { return $this->getCategorySegment($id, $query); } /** * Method to get the segment(s) for a contact * * @param string $id ID of the contact to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getContactSegment($id, $query) { if (!strpos($id, ':')) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('alias')) ->from($dbquery->qn('#__contact_details')) ->where('id = ' . $dbquery->q((int) $id)); $db->setQuery($dbquery); $id .= ':' . $db->loadResult(); } if ($this->noIDs) { list($void, $segment) = explode(':', $id, 2); return array($void => $segment); } return array((int) $id => $id); } /** * Method to get the id for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoryId($segment, $query) { if (isset($query['id'])) { $category = JCategories::getInstance($this->getName(), array('access' => false))->get($query['id']); if ($category) { foreach ($category->getChildren() as $child) { if ($this->noIDs) { if ($child->alias == $segment) { return $child->id; } } else { if ($child->id == (int) $segment) { return $child->id; } } } } } return false; } /** * Method to get the segment(s) for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoriesId($segment, $query) { return $this->getCategoryId($segment, $query); } /** * Method to get the segment(s) for a contact * * @param string $segment Segment of the contact to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getContactId($segment, $query) { if ($this->noIDs) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('id')) ->from($dbquery->qn('#__contact_details')) ->where('alias = ' . $dbquery->q($segment)) ->where('catid = ' . $dbquery->q($query['id'])); $db->setQuery($dbquery); return (int) $db->loadResult(); } return (int) $segment; } } /** * Contact router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @deprecated 4.0 Use Class based routers instead */ function ContactBuildRoute(&$query) { $app = JFactory::getApplication(); $router = new ContactRouter($app, $app->getMenu()); return $router->build($query); } /** * Contact router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @deprecated 4.0 Use Class based routers instead */ function ContactParseRoute($segments) { $app = JFactory::getApplication(); $router = new ContactRouter($app, $app->getMenu()); return $router->parse($segments); } home/wuectly/www/components/com_privacy/router.php 0000604 00000003610 15245551651 0016552 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_privacy * * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_privacy * * @since 3.9.0 */ class PrivacyRouter extends JComponentRouterView { /** * Privacy Component router constructor * * @param JApplicationCms $app The application object * @param JMenu $menu The menu object to work with * * @since 3.9.0 */ public function __construct($app = null, $menu = null) { $this->registerView(new JComponentRouterViewconfiguration('confirm')); $this->registerView(new JComponentRouterViewconfiguration('request')); $this->registerView(new JComponentRouterViewconfiguration('remind')); parent::__construct($app, $menu); $this->attachRule(new JComponentRouterRulesMenu($this)); $this->attachRule(new JComponentRouterRulesStandard($this)); $this->attachRule(new JComponentRouterRulesNomenu($this)); } } /** * Privacy router functions * * These functions are proxies for the new router interface * for old SEF extensions. * * @param array &$query REQUEST query * * @return array Segments of the SEF url * * @since 3.9.0 * @deprecated 4.0 Use Class based routers instead */ function privacyBuildRoute(&$query) { $app = JFactory::getApplication(); $router = new PrivacyRouter($app, $app->getMenu()); return $router->build($query); } /** * Convert SEF URL segments into query variables * * @param array $segments Segments in the current URL * * @return array Query variables * * @since 3.9.0 * @deprecated 4.0 Use Class based routers instead */ function privacyParseRoute($segments) { $app = JFactory::getApplication(); $router = new PrivacyRouter($app, $app->getMenu()); return $router->parse($segments); } home/wuectly/www/components/com_wrapper/router.php 0000604 00000003467 15245561526 0016571 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_wrapper * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_wrapper * * @since 3.3 */ class WrapperRouter extends JComponentRouterBase { /** * Build the route for the com_wrapper component * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @since 3.3 */ public function build(&$query) { if (isset($query['view'])) { unset($query['view']); } return array(); } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 */ public function parse(&$segments) { return array('view' => 'wrapper'); } } /** * Wrapper router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @deprecated 4.0 Use Class based routers instead */ function wrapperBuildRoute(&$query) { $router = new WrapperRouter; return $router->build($query); } /** * Wrapper router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @deprecated 4.0 Use Class based routers instead */ function wrapperParseRoute($segments) { $router = new WrapperRouter; return $router->parse($segments); } home/wuectly/www/components/com_content/router.php 0000604 00000015305 15245562552 0016555 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_content * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class of com_content * * @since 3.3 */ class ContentRouter extends JComponentRouterView { protected $noIDs = false; /** * Content Component router constructor * * @param JApplicationCms $app The application object * @param JMenu $menu The menu object to work with */ public function __construct($app = null, $menu = null) { $params = JComponentHelper::getParams('com_content'); $this->noIDs = (bool) $params->get('sef_ids'); $categories = new JComponentRouterViewconfiguration('categories'); $categories->setKey('id'); $this->registerView($categories); $category = new JComponentRouterViewconfiguration('category'); $category->setKey('id')->setParent($categories, 'catid')->setNestable()->addLayout('blog'); $this->registerView($category); $article = new JComponentRouterViewconfiguration('article'); $article->setKey('id')->setParent($category, 'catid'); $this->registerView($article); $this->registerView(new JComponentRouterViewconfiguration('archive')); $this->registerView(new JComponentRouterViewconfiguration('featured')); $form = new JComponentRouterViewconfiguration('form'); $form->setKey('a_id'); $this->registerView($form); parent::__construct($app, $menu); $this->attachRule(new JComponentRouterRulesMenu($this)); if ($params->get('sef_advanced', 0)) { $this->attachRule(new JComponentRouterRulesStandard($this)); $this->attachRule(new JComponentRouterRulesNomenu($this)); } else { JLoader::register('ContentRouterRulesLegacy', __DIR__ . '/helpers/legacyrouter.php'); $this->attachRule(new ContentRouterRulesLegacy($this)); } } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategorySegment($id, $query) { $category = JCategories::getInstance($this->getName())->get($id); if ($category) { $path = array_reverse($category->getPath(), true); $path[0] = '1:root'; if ($this->noIDs) { foreach ($path as &$segment) { list($id, $segment) = explode(':', $segment, 2); } } return $path; } return array(); } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategoriesSegment($id, $query) { return $this->getCategorySegment($id, $query); } /** * Method to get the segment(s) for an article * * @param string $id ID of the article to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getArticleSegment($id, $query) { if (!strpos($id, ':')) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('alias')) ->from($dbquery->qn('#__content')) ->where('id = ' . $dbquery->q($id)); $db->setQuery($dbquery); $id .= ':' . $db->loadResult(); } if ($this->noIDs) { list($void, $segment) = explode(':', $id, 2); return array($void => $segment); } return array((int) $id => $id); } /** * Method to get the segment(s) for a form * * @param string $id ID of the article form to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item * * @since 3.7.3 */ public function getFormSegment($id, $query) { return $this->getArticleSegment($id, $query); } /** * Method to get the id for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoryId($segment, $query) { if (isset($query['id'])) { $category = JCategories::getInstance($this->getName(), array('access' => false))->get($query['id']); if ($category) { foreach ($category->getChildren() as $child) { if ($this->noIDs) { if ($child->alias == $segment) { return $child->id; } } else { if ($child->id == (int) $segment) { return $child->id; } } } } } return false; } /** * Method to get the segment(s) for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoriesId($segment, $query) { return $this->getCategoryId($segment, $query); } /** * Method to get the segment(s) for an article * * @param string $segment Segment of the article to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getArticleId($segment, $query) { if ($this->noIDs) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('id')) ->from($dbquery->qn('#__content')) ->where('alias = ' . $dbquery->q($segment)) ->where('catid = ' . $dbquery->q($query['id'])); $db->setQuery($dbquery); return (int) $db->loadResult(); } return (int) $segment; } } /** * Content router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @deprecated 4.0 Use Class based routers instead */ function contentBuildRoute(&$query) { $app = JFactory::getApplication(); $router = new ContentRouter($app, $app->getMenu()); return $router->build($query); } /** * Parse the segments of a URL. * * This function is a proxy for the new router interface * for old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 * @deprecated 4.0 Use Class based routers instead */ function contentParseRoute($segments) { $app = JFactory::getApplication(); $router = new ContentRouter($app, $app->getMenu()); return $router->parse($segments); } home/wuectly/www/components/com_banners/router.php 0000604 00000005232 15245572076 0016533 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_banners * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_banners * * @since 3.3 */ class BannersRouter extends JComponentRouterBase { /** * Build the route for the com_banners component * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @since 3.3 */ public function build(&$query) { $segments = array(); if (isset($query['task'])) { $segments[] = $query['task']; unset($query['task']); } if (isset($query['id'])) { $segments[] = $query['id']; unset($query['id']); } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); } return $segments; } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 */ public function parse(&$segments) { $total = count($segments); $vars = array(); for ($i = 0; $i < $total; $i++) { $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); } // View is always the first element of the array $count = count($segments); if ($count) { $count--; $segment = array_shift($segments); if (is_numeric($segment)) { $vars['id'] = $segment; } else { $vars['task'] = $segment; } } if ($count) { $segment = array_shift($segments); if (is_numeric($segment)) { $vars['id'] = $segment; } } return $vars; } } /** * Build the route for the com_banners component * * This function is a proxy for the new router interface * for old SEF extensions. * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @since 3.3 * @deprecated 4.0 Use Class based routers instead */ function bannersBuildRoute(&$query) { $router = new BannersRouter; return $router->build($query); } /** * Parse the segments of a URL. * * This function is a proxy for the new router interface * for old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 * @deprecated 4.0 Use Class based routers instead */ function bannersParseRoute($segments) { $router = new BannersRouter; return $router->parse($segments); } home/wuectly/www/components/com_finder/router.php 0000604 00000007560 15245603222 0016344 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_finder * * @since 3.3 */ class FinderRouter extends JComponentRouterBase { /** * Build the route for the com_finder component * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @since 3.3 */ public function build(&$query) { $segments = array(); /* * First, handle menu item routes first. When the menu system builds a * route, it only provides the option and the menu item id. We don't have * to do anything to these routes. */ if (count($query) === 2 && isset($query['Itemid'], $query['option'])) { return $segments; } /* * Next, handle a route with a supplied menu item id. All system generated * routes should fall into this group. We can assume that the menu item id * is the best possible match for the query but we need to go through and * see which variables we can eliminate from the route query string because * they are present in the menu item route already. */ if (!empty($query['Itemid'])) { // Get the menu item. $item = $this->menu->getItem($query['Itemid']); // Check if the view matches. if ($item && isset($item->query['view']) && isset($query['view']) && $item->query['view'] === $query['view']) { unset($query['view']); } // Check if the search query filter matches. if ($item && isset($item->query['f']) && isset($query['f']) && $item->query['f'] === $query['f']) { unset($query['f']); } // Check if the search query string matches. if ($item && isset($item->query['q']) && isset($query['q']) && $item->query['q'] === $query['q']) { unset($query['q']); } return $segments; } /* * Lastly, handle a route with no menu item id. Fortunately, we only need * to deal with the view as the other route variables are supposed to stay * in the query string. */ if (isset($query['view'])) { // Add the view to the segments. $segments[] = $query['view']; unset($query['view']); } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); } return $segments; } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 */ public function parse(&$segments) { $total = count($segments); $vars = array(); for ($i = 0; $i < $total; $i++) { $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); } // Check if the view segment is set and it equals search or advanced. if (isset($segments[0]) && ($segments[0] === 'search' || $segments[0] === 'advanced')) { $vars['view'] = $segments[0]; } return $vars; } } /** * Finder router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @deprecated 4.0 Use Class based routers instead */ function FinderBuildRoute(&$query) { $router = new FinderRouter; return $router->build($query); } /** * Finder router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @deprecated 4.0 Use Class based routers instead */ function FinderParseRoute($segments) { $router = new FinderRouter; return $router->parse($segments); } home/wuectly/www/components/com_xmap/router.php 0000604 00000011213 15245613334 0016035 0 ustar 00 <?php /** * @version $Id$ * @copyright Copyright (C) 2005 - 2009 Joomla! Vargas. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Guillermo Vargas (guille@vargas.co.cr) */ defined( '_JEXEC' ) or die( 'Restricted access' ); /** * Content Component Route Helper * * @package Xmap * @subpackage com_xmap * @since 2.0 */ class XmapRoute { /** * @param int $id The id of the article. * @param int $categoryId An optional category id. * * @return string The routed link. */ public static function sitemap($id, $view = 'html') { $needles = array( 'html' => (int) $id ); //Create the link $link = 'index.php?option=com_xmap&view='.$view.'&id='. $id; if ($itemId = self::_findItemId($needles)) { $link .= '&Itemid='.$itemId; }; return $link; } protected static function _findItemId($needles) { // Prepare the reverse lookup array. if (self::$lookup === null) { self::$lookup = array(); $component = &JComponentHelper::getComponent('com_xmap'); $menus = &JApplication::getMenu('site', array()); $items = $menus->getItems('component_id', $component->id); foreach ($items as &$item) { if (isset($item->query) && isset($item->query['view'])) { $view = $item->query['view']; if (!isset(self::$lookup[$view])) { self::$lookup[$view] = array(); } if (isset($item->query['id'])) { self::$lookup[$view][$item->query['id']] = $item->id; } } } } $match = null; foreach ($needles as $view => $id) { if (isset(self::$lookup[$view])) { if (isset(self::$lookup[$view][$id])) { return self::$lookup[$view][$id]; } } } return null; } } /** * Build the route for the com_content component * * @param array An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. */ function XmapBuildRoute(&$query) { $segments = array(); // get a menu item based on Itemid or currently active $app = JFactory::getApplication(); $menu = $app->getMenu(); if (empty($query['Itemid'])) { $menuItem = $menu->getActive(); } else { $menuItem = $menu->getItem($query['Itemid']); } $mView = (empty($menuItem->query['view'])) ? null : $menuItem->query['view']; $mId = (empty($menuItem->query['id'])) ? null : $menuItem->query['id']; if ( !empty($query['Itemid']) ) { unset($query['view']); unset($query['id']); } else { if ( !empty($query['view']) ) { $segments[] = $query['view']; } } if (isset($query['id'])) { if (empty($query['Itemid'])) { $segments[] = $query['id']; } else { if (isset($menuItem->query['id'])) { if ($query['id'] != $mId) { $segments[] = $query['id']; } } else { $segments[] = $query['id']; } } unset($query['id']); }; 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']); } } }; return $segments; } /** * Parse the segments of a URL. * * @param array The segments of the URL to parse. * * @return array The URL attributes to be used by the application. */ function XmapParseRoute($segments) { $vars = array(); //G et the active menu item. $app = JFactory::getApplication(); $menu = $app->getMenu(); $item = $menu->getActive(); // Count route segments $count = count($segments); // Standard routing for articles. if (!isset($item)) { $vars['view'] = $segments[0]; $vars['id'] = $segments[$count - 1]; return $vars; } $vars['view'] = $item->query['view']; $vars['id'] = $item->query['id']; return $vars; } home/wuectly/www/components/com_tags/router.php 0000604 00000011232 15245613345 0016031 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_tags * * @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; use Joomla\Utilities\ArrayHelper; /** * Routing class from com_tags * * @since 3.3 */ class TagsRouter extends JComponentRouterBase { /** * Build the route for the com_tags component * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @since 3.3 */ public function build(&$query) { $segments = array(); // Get a menu item based on Itemid or currently active $params = JComponentHelper::getParams('com_tags'); // We need a menu item. Either the one specified in the query, or the current active one if none specified if (empty($query['Itemid'])) { $menuItem = $this->menu->getActive(); } else { $menuItem = $this->menu->getItem($query['Itemid']); } $mView = empty($menuItem->query['view']) ? null : $menuItem->query['view']; $mId = empty($menuItem->query['id']) ? null : $menuItem->query['id']; if (is_array($mId)) { $mId = ArrayHelper::toInteger($mId); } $view = ''; if (isset($query['view'])) { $view = $query['view']; if (empty($query['Itemid'])) { $segments[] = $view; } unset($query['view']); } // Are we dealing with a tag that is attached to a menu item? if ($mView == $view && isset($query['id']) && $mId == $query['id']) { unset($query['id']); return $segments; } if ($view === 'tag') { $notActiveTag = is_array($mId) ? (count($mId) > 1 || $mId[0] != (int) $query['id']) : ($mId != (int) $query['id']); if ($notActiveTag || $mView != $view) { // ID in com_tags can be either an integer, a string or an array of IDs $id = is_array($query['id']) ? implode(',', $query['id']) : $query['id']; $segments[] = $id; } unset($query['id']); } if (isset($query['layout'])) { if ((!empty($query['Itemid']) && isset($menuItem->query['layout']) && $query['layout'] == $menuItem->query['layout']) || $query['layout'] === 'default') { unset($query['layout']); } } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); $position = strpos($segments[$i], '-'); if ($position) { // Remove id from segment $segments[$i] = substr($segments[$i], $position + 1); } } return $segments; } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 */ public function parse(&$segments) { $total = count($segments); $vars = array(); for ($i = 0; $i < $total; $i++) { $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); } // Get the active menu item. $item = $this->menu->getActive(); // Count route segments $count = count($segments); // Standard routing for tags. if (!isset($item)) { $vars['view'] = $segments[0]; $vars['id'] = $this->fixSegment($segments[$count - 1]); return $vars; } $vars['id'] = $this->fixSegment($segments[0]); $vars['view'] = 'tag'; return $vars; } /** * Try to add missing id to segment * * @param string $segment One piece of segment of the URL to parse * * @return string The segment with founded id * * @since 3.7 */ protected function fixSegment($segment) { $db = JFactory::getDbo(); // Try to find tag id $alias = str_replace(':', '-', $segment); $query = $db->getQuery(true) ->select('id') ->from($db->quoteName('#__tags')) ->where($db->quoteName('alias') . " = " . $db->quote($alias)); $id = $db->setQuery($query)->loadResult(); if ($id) { $segment = "$id:$alias"; } return $segment; } } /** * Tags router functions. These functions are proxys for the new router interface or old SEF extensions. * * @param array &$query An array of URL arguments. * * @return array * * @deprecated 4.0 Use Class based routers instead */ function tagsBuildRoute(&$query) { $router = new TagsRouter; return $router->build($query); } /** * Parse the segments of a URL. These functions are proxys for the new router interface or old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @deprecated 4.0 Use Class based routers instead */ function tagsParseRoute($segments) { $router = new TagsRouter; return $router->parse($segments); } home/wuectly/www/components/com_icagenda/router.php 0000604 00000010437 15245617065 0016637 0 ustar 00 <?php /** *------------------------------------------------------------------------------ * iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x *------------------------------------------------------------------------------ * @package com_icagenda * @copyright Copyright (c)2012-2015 Cyril Rezé, Jooml!C - All rights reserved * * @license GNU General Public License version 3 or later; see LICENSE.txt * @author Cyril Rezé (Lyr!C) * @link http://www.joomlic.com * * @version 3.4.0 2014-07-08 * @since 1.0 *------------------------------------------------------------------------------ */ // No direct access to this file defined('_JEXEC') or die(); function iCagendaBuildRoute( &$query ) { $segments = array(); // link event if (isset($query['layout']) && $query['layout'] == 'event') { // Make sure we have the id and the alias if (strpos($query['id'], ':') === false) { $db = JFactory::getDbo(); $aquery = $db->setQuery($db->getQuery(true) ->select('alias') ->from('#__icagenda_events') ->where('id=' . (int) $query['id']) ); $alias = $db->loadResult(); $query['id'] = $query['id'] . ':' . $alias; } $segments[] = $query['id']; unset($query['id']); unset($query['view']); unset($query['layout']); } // link submit if (isset($query['layout']) && $query['layout'] == 'send') { $segments[] = $query['id']; unset($query['id']); $segments[] = 'sending'; unset($query['view']); unset($query['layout']); } // link registration if (isset($query['layout']) && $query['layout'] == 'registration') { // Make sure we have the id and the alias if (strpos($query['id'], ':') === false) { $db = JFactory::getDbo(); $aquery = $db->setQuery($db->getQuery(true) ->select('alias') ->from('#__icagenda_events') ->where('id='.(int)$query['id']) ); $alias = $db->loadResult(); $query['id'] = $query['id'].':'.$alias; } $segments[] = $query['id']; unset($query['id']); $segments[] = 'registration'; unset($query['view']); unset($query['layout']); } // link payment if (isset($query['layout']) && $query['layout'] == 'actions') { // Make sure we have the id and the alias if (strpos($query['id'], ':') === false) { $db = JFactory::getDbo(); $aquery = $db->setQuery($db->getQuery(true) ->select('alias') ->from('#__icagenda_events') ->where('id='.(int)$query['id']) ); $alias = $db->loadResult(); $query['id'] = $query['id'].':'.$alias; } $segments[] = $query['id']; unset($query['id']); $segments[] = 'actions'; unset($query['view']); unset($query['layout']); } // link search if (isset($query['view']) && $query['view'] == 'search') { $segments[] = 'search'; } // link submit if (isset($query['view']) && $query['view'] == 'submit') { $segments[] = 'submission'; unset($query['view']); unset($query['layout']); } // link list (since 3.4.0) if (isset($query['view']) && $query['view'] == 'list') { $segments[] = 'list'; unset($query['view']); unset($query['layout']); } return $segments; } function iCagendaParseRoute( $segments ) { $app = JFactory::getApplication(); $menu = $app->getMenu(); $item = $menu->getActive(); $vars = array(); // Count route segments $count = count($segments); if (in_array('sending', $segments)) { $vars['option'] = 'com_icagenda'; $vars['view'] = 'submit'; $vars['layout'] = 'send'; $vars['id'] = $segments[0]; } elseif (in_array('actions', $segments)) { $vars['option'] = 'com_icagenda'; $vars['view'] = 'list'; $vars['layout'] = 'actions'; $vars['id'] = $segments[0]; } elseif (in_array('registration', $segments)) { $vars['option'] = 'com_icagenda'; $vars['view'] = 'list'; $vars['layout'] = 'registration'; $vars['id'] = $segments[0]; } elseif (in_array('search', $segments)) { $vars['option'] = 'com_icagenda'; $vars['view'] = 'list'; $vars['layout'] = 'search'; } elseif (in_array('submission', $segments)) { $vars['option'] = 'com_icagenda'; $vars['view'] = 'submit'; } elseif (in_array('list', $segments)) { $vars['option'] = 'com_icagenda'; $vars['view'] = 'list'; } else { $vars['option'] = 'com_icagenda'; $vars['view'] = 'list'; $vars['layout'] = 'event'; $vars['id'] = $segments[0]; } return $vars; } home/wuectly/www/components/com_acymailing/router.php 0000604 00000004070 15245624362 0017213 0 ustar 00 <?php /** * @package AcyMailing for Joomla! * @version 5.9.6 * @author acyba.com * @copyright (C) 2009-2018 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php function AcymailingBuildRoute(&$query){ $segments = array(); if(isset($query['ctrl']) && in_array($query['ctrl'], array('stats', 'moduleloader', 'cron', 'fronteditor', 'frontfilter', 'sub'))){ return $segments; } $ctrl = ''; $task = ''; if(isset($query['ctrl'])){ $ctrl = $query['ctrl']; if($ctrl != 'archive' || (!empty($query['task']) && $query['task'] != 'view')) $segments[] = $query['ctrl']; unset($query['ctrl']); if(isset($query['task'])){ $task = $query['task']; if($ctrl != 'archive' || $task != 'view') $segments[] = $query['task']; unset($query['task']); } }elseif(isset($query['view'])){ $ctrl = $query['view']; $segments[] = $query['view']; unset($query['view']); if(isset($query['layout'])){ $task = $query['layout']; $segments[] = $query['layout']; unset($query['layout']); } } if(empty($query)) return $segments; foreach($query as $name => $value){ if(in_array($name, array('option', 'Itemid', 'start', 'format', 'limitstart', 'no_html', 'val', 'key', 'acyformname', 'subid', 'tmpl', 'lang', 'limit'))) continue; if($ctrl == 'user' && $name == 'mailid') continue; $segments[] = $name.':'.$value; unset($query[$name]); } return $segments; } function AcymailingParseRoute($segments){ $vars = array(); if(empty($segments)) return $vars; $i = 0; foreach($segments as $name){ if(strpos($name, ':')){ list($arg, $val) = explode(':', $name); if(is_numeric($arg)){ $vars['Itemid'] = $arg; }else{ $vars[$arg] = $val; } }else{ $i++; if($i == 1){ $vars['ctrl'] = $name; }elseif($i == 2){ $vars['task'] = $name; } } } if(empty($vars['ctrl']) && (!empty($vars['listid']) || !empty($vars['mailid']))){ $vars['ctrl'] = 'archive'; if(!empty($vars['mailid'])) $vars['task'] = 'view'; } return $vars; } home/wuectly/www/libraries/joomla/application/web/router.php 0000604 00000007547 15245635567 0020415 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Application * * @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * Class to define an abstract Web application router. * * @since 3.0 * @deprecated 4.0 Use the `joomla/router` package via Composer instead */ abstract class JApplicationWebRouter { /** * @var JApplicationWeb The web application on whose behalf we are routing the request. * @since 3.0 */ protected $app; /** * @var string The default page controller name for an empty route. * @since 3.0 */ protected $default; /** * @var string Controller class name prefix for creating controller objects by name. * @since 3.0 */ protected $controllerPrefix; /** * @var JInput An input object from which to derive the route. * @since 3.0 */ protected $input; /** * Constructor. * * @param JApplicationWeb $app The web application on whose behalf we are routing the request. * @param JInput $input An optional input object from which to derive the route. If none * is given than the input from the application object will be used. * * @since 3.0 */ public function __construct(JApplicationWeb $app, JInput $input = null) { $this->app = $app; $this->input = ($input === null) ? $this->app->input : $input; } /** * Find and execute the appropriate controller based on a given route. * * @param string $route The route string for which to find and execute a controller. * * @return mixed The return value of the controller executed * * @since 3.0 * @throws InvalidArgumentException * @throws RuntimeException */ public function execute($route) { // Get the controller name based on the route patterns and requested route. $name = $this->parseRoute($route); // Get the controller object by name. $controller = $this->fetchController($name); // Execute the controller. return $controller->execute(); } /** * Set the controller name prefix. * * @param string $prefix Controller class name prefix for creating controller objects by name. * * @return JApplicationWebRouter This object for method chaining. * * @since 3.0 */ public function setControllerPrefix($prefix) { $this->controllerPrefix = (string) $prefix; return $this; } /** * Set the default controller name. * * @param string $name The default page controller name for an empty route. * * @return JApplicationWebRouter This object for method chaining. * * @since 3.0 */ public function setDefaultController($name) { $this->default = (string) $name; return $this; } /** * Parse the given route and return the name of a controller mapped to the given route. * * @param string $route The route string for which to find and execute a controller. * * @return string The controller name for the given route excluding prefix. * * @since 3.0 * @throws InvalidArgumentException */ abstract protected function parseRoute($route); /** * Get a JController object for a given name. * * @param string $name The controller name (excluding prefix) for which to fetch and instance. * * @return JController * * @since 3.0 * @throws RuntimeException */ protected function fetchController($name) { // Derive the controller class name. $class = $this->controllerPrefix . ucfirst($name); // If the controller class does not exist panic. if (!class_exists($class) || !is_subclass_of($class, 'JController')) { throw new RuntimeException(sprintf('Unable to locate controller `%s`.', $class), 404); } // Instantiate the controller. $controller = new $class($this->input, $this->app); return $controller; } } home/wuectly/www/components/com_newsfeeds/router.php 0000604 00000013576 15245662432 0017074 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_newsfeeds * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_newsfeeds * * @since 3.3 */ class NewsfeedsRouter extends JComponentRouterView { protected $noIDs = false; /** * Newsfeeds Component router constructor * * @param JApplicationCms $app The application object * @param JMenu $menu The menu object to work with */ public function __construct($app = null, $menu = null) { $params = JComponentHelper::getParams('com_newsfeeds'); $this->noIDs = (bool) $params->get('sef_ids'); $categories = new JComponentRouterViewconfiguration('categories'); $categories->setKey('id'); $this->registerView($categories); $category = new JComponentRouterViewconfiguration('category'); $category->setKey('id')->setParent($categories, 'catid')->setNestable(); $this->registerView($category); $newsfeed = new JComponentRouterViewconfiguration('newsfeed'); $newsfeed->setKey('id')->setParent($category, 'catid'); $this->registerView($newsfeed); parent::__construct($app, $menu); $this->attachRule(new JComponentRouterRulesMenu($this)); if ($params->get('sef_advanced', 0)) { $this->attachRule(new JComponentRouterRulesStandard($this)); $this->attachRule(new JComponentRouterRulesNomenu($this)); } else { JLoader::register('NewsfeedsRouterRulesLegacy', __DIR__ . '/helpers/legacyrouter.php'); $this->attachRule(new NewsfeedsRouterRulesLegacy($this)); } } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategorySegment($id, $query) { $category = JCategories::getInstance($this->getName())->get($id); if ($category) { $path = array_reverse($category->getPath(), true); $path[0] = '1:root'; if ($this->noIDs) { foreach ($path as &$segment) { list($id, $segment) = explode(':', $segment, 2); } } return $path; } return array(); } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategoriesSegment($id, $query) { return $this->getCategorySegment($id, $query); } /** * Method to get the segment(s) for a newsfeed * * @param string $id ID of the newsfeed to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getNewsfeedSegment($id, $query) { if (!strpos($id, ':')) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('alias')) ->from($dbquery->qn('#__newsfeeds')) ->where('id = ' . $dbquery->q((int) $id)); $db->setQuery($dbquery); $id .= ':' . $db->loadResult(); } if ($this->noIDs) { list($void, $segment) = explode(':', $id, 2); return array($void => $segment); } return array((int) $id => $id); } /** * Method to get the id for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoryId($segment, $query) { if (isset($query['id'])) { $category = JCategories::getInstance($this->getName(), array('access' => false))->get($query['id']); if ($category) { foreach ($category->getChildren() as $child) { if ($this->noIDs) { if ($child->alias === $segment) { return $child->id; } } else { if ($child->id == (int) $segment) { return $child->id; } } } } } return false; } /** * Method to get the segment(s) for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoriesId($segment, $query) { return $this->getCategoryId($segment, $query); } /** * Method to get the segment(s) for a newsfeed * * @param string $segment Segment of the newsfeed to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getNewsfeedId($segment, $query) { if ($this->noIDs) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('id')) ->from($dbquery->qn('#__newsfeeds')) ->where('alias = ' . $dbquery->q($segment)) ->where('catid = ' . $dbquery->q($query['id'])); $db->setQuery($dbquery); return (int) $db->loadResult(); } return (int) $segment; } } /** * newsfeedsBuildRoute * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array &$query The segments of the URL to parse. * * @return array * * @deprecated 4.0 Use Class based routers instead */ function newsfeedsBuildRoute(&$query) { $app = JFactory::getApplication(); $router = new NewsfeedsRouter($app, $app->getMenu()); return $router->build($query); } /** * newsfeedsParseRoute * * @param array $segments The segments of the URL to parse. * * @return array * * @deprecated 4.0 Use Class based routers instead */ function newsfeedsParseRoute($segments) { $app = JFactory::getApplication(); $router = new NewsfeedsRouter($app, $app->getMenu()); return $router->parse($segments); }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка