/** * @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); } Консультации для родителей

Развитие мелкой моторики рук

В последние годы в нашей стране отмечается тенденция на увеличение количества детей с отклонениями в развитии речи. Эти отклонения связаны, прежде всего, с неблагополучными экологическими условиями, различными инфекциями.

Проблема исправления речи в наше время является актуальной. Учитывая, что речевые отклонения возникают в раннем возрасте их необходимо своевременно выявлять и исправлять.

Научно установлено, что уровень развития речи детей находится в прямой зависимости от степени сформированности тонких движений пальцев рук.

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

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

Развитие математических способностей у дошкольников

Обучению дошкольников началам математики должно отводиться важное место. Это вызвано целым рядом причин (особенно в наше время): началом школьного обучения, обилием информации, получаемой ребенком, повышением внимания к компьютеризации уже с дошкольного возраста, стремлением родителей в связи с этим как можно раньше научить ребенка узнавать цифры, считать, решать задачи. Взрослые зачастую спешат дать ребенку набор готовых знаний, суждений, который он впитывает как губка, например, научить ребенка считать до 100, до 1000 и. т. д. , не овладев полным знанием в пределах 10. Однако всегда ли это дает ожидаемый результат? Скажем, надо ли заставлять ребенка заниматься математикой, если ему скучно?

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

Адаптация ребенка в детском саду

Уважаемые родители! Мы очень рады всех вас видеть! Вы сейчас вступаете в важный период вашей жизни и жизни вашего ребенка – он идет в детский сад. И для того, чтобы адаптация его к новым условиям прошла как можно спокойнее и быстрее, вы должны знать побольше об особенностях этого сложного периода.

У ребенка все взаимосвязано: состояние здоровья и эмоциональный настрой, физическое и психическое развитие. Необходимое развитие малыш получает через игрушки, самое важное занятие для него – игра. И родителям надо помнить, что добиваться желаемого можно через предложение: «Давай поиграем!» Мы же здесь постоянно играем с детьми, потому что именно в игре они знакомятся с окружающим миром, изобразительной деятельностью, конструированием, художественной литературой.

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

Почему дети разные?

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

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