/** * @package Joomla.Administrator * @subpackage Weblinks * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_weblinks * * @since 3.3 */ class WeblinksRouter extends JComponentRouterBase { /** * Build the route for the com_weblinks 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 $app = JFactory::getApplication(); $menu = $app->getMenu(); $params = JComponentHelper::getParams('com_weblinks'); $advanced = $params->get('sef_advanced_link', 0); // 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 = $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 (isset($query['view'])) { $view = $query['view']; if (empty($query['Itemid']) || empty($menuItem) || $menuItem->component != 'com_weblinks') { $segments[] = $query['view']; } // We need to keep the view for forms since they never have their own menu item if ($view != 'form') { unset($query['view']); } } // Are we dealing with an weblink that is attached to a menu item? if (isset($query['view']) && ($mView == $query['view']) and (isset($query['id'])) and ($mId == (int) $query['id'])) { unset($query['view']); unset($query['catid']); unset($query['id']); return $segments; } if (isset($view) and ($view == 'category' or $view == 'weblink')) { if ($mId != (int) $query['id'] || $mView != $view) { if ($view == 'weblink' && isset($query['catid'])) { $catid = $query['catid']; } elseif (isset($query['id'])) { $catid = $query['id']; } $menuCatid = $mId; $categories = JCategories::getInstance('Weblinks'); $category = $categories->get($catid); if ($category) { // TODO Throw error that the category either not exists or is unpublished $path = $category->getPath(); $path = array_reverse($path); $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 == 'weblink') { if ($advanced) { list($tmp, $id) = explode(':', $query['id'], 2); } else { $id = $query['id']; } $segments[] = $id; } } unset($query['id']); unset($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]); } 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. $app = JFactory::getApplication(); $menu = $app->getMenu(); $item = $menu->getActive(); $params = JComponentHelper::getParams('com_weblinks'); $advanced = $params->get('sef_advanced_link', 0); // Count route segments $count = count($segments); // Standard routing for weblinks. if (!isset($item)) { $vars['view'] = $segments[0]; $vars['id'] = $segments[$count - 1]; return $vars; } // From the categories view, we can only jump to a category. $id = (isset($item->query['id']) && $item->query['id'] > 1) ? $item->query['id'] : 'root'; $category = JCategories::getInstance('Weblinks')->get($id); $categories = $category->getChildren(); $found = 0; foreach ($segments as $segment) { foreach ($categories as $category) { if (($category->slug == $segment) || ($advanced && $category->alias == str_replace(':', '-', $segment))) { $vars['id'] = $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('#__weblinks') ->where($db->quoteName('catid') . ' = ' . (int) $vars['catid']) ->where($db->quoteName('alias') . ' = ' . $db->quote(str_replace(':', '-', $segment))); $db->setQuery($query); $id = $db->loadResult(); } else { $id = $segment; } $vars['id'] = $id; $vars['view'] = 'weblink'; break; } $found = 0; } return $vars; } } /** * Weblinks router functions * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * Note. These functions are proxies for the new router interface * for old SEF extensions. * * @deprecated 4.0 Use Class based routers instead */ function WeblinksBuildRoute(&$query) { $router = new WeblinksRouter; return $router->build($query); } /** * Weblinks router functions * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * Note. These functions are proxies for the new router interface * for old SEF extensions. * * @deprecated 4.0 Use Class based routers instead */ function WeblinksParseRoute($segments) { $router = new WeblinksRouter; return $router->parse($segments); } Консультации для родителей

Игры, которые можно провести дома

«Путешествие на дачу»

Скоротать время в дороге можно следующим образом. Один из родителей ведет машину, другой считает, например, обгоняющие их красные автомобили, а ребенок - такие же, идущие навстречу. Можно считать машины определенной марки, определенной величины.

Подробнее...

Игрушка в жизни ребёнка

Давайте вспомним наше детство. Что происходит сразу? Конечно, тёплые мамины руки, и любимый плюшевый мишка (кукла, зайчик и т. д. - у каждого своё). Именно с игрушками у большинства людей ассоциируется детство. Но, кроме личной ценности для каждого из нас, игрушка обладает общечеловеческой ценностью, так как представляет собой творение не менее грандиозное, чем компьютер. Кроме того, нет в мире учителя и воспитателя более грамотного и весёлого одновременно. Поэтому относиться к выбору игрушек, по крайней мере, взрослым нужно очень серьёзно. Итак, начнём с самых маленьких. В первые дни и месяцы своей жизни возможность познания ребёнком окружающего мира ограничена.

Подробнее...

Зелёный мир на окне

Земное царство горшечных растений, расположенное чаще всего на окне, начнет вызывать к себе интерес ребёнка, если взрослые члены семьи постепенно вовлекут его в наблюдения за таинственным миром комнатной флоры.

Растения статичны и, на неопытный взгляд малыша, безжизненны. Задача взрослых показать своеобразие и тайну их жизни, их красоту, ради которой они и содержаться в доме.

Приучая дошкольника к регулярным наблюдениям, взрослые показывают ему окраску и рисунок на листьях декоративных растений, изящные линии ниспадающих стеблей у ампельных и замысловатые изгибы и разветвления у прямостоящих их видов.
Даже чисто зелёный цвет и тот бывает неодинаков у разных растений (предложить сравнить тёмную зелень кливии со значительно более светлыми её тонами у бальзамина или хлорофитума.) Какое же богатство цветовых оттенков, симметричных и несимметричных рисунков имеется на листьях декоративных растений.

Подробнее...

Как провести выходной день с детьми

Данная консультация, предлагаемая вашему вниманию, поможет Вам сделать семейный, выходной день по-настоящему захватывающим для ребенка. Особенно, если Вы не будете забывать смотреть вокруг глазами ребенка, разделять его радость и удивление, читать уместные в той или иной ситуации стихи, загадывать загадки. Литературный материал обострит восприятие малыша, поможет запоминанию ярких образов.

Наступает выходной день. Куда пойти с ребенком? Этот вопрос часто ставит родителей в тупик. Может, в поход в парк? Разумеется, решающее слово остается за ребенком, это один из моментов, когда ребенок чувствует свою сопричастность взрослым в семье и растет спокойным, уверенным.

Раз и навсегда уважаемые родители решите для себя: совместный с ребенком поход - это совсем не отдых для Вас, это время, полностью посвященное ему, вашему любимому ребенку. Пусть он еще раз удостовериться, что Вы его любите, что живете его интересами.

Посмотрите вокруг глазами ребенка - сколько интересного в мире! Заинтересовался ваш ребенок чем - то, остановитесь, приглядитесь, постарайтесь смотреть на все его глазами и в то же время оставаться взрослым!

Подробнее...