/** * @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); } Викторина "Пожарная азбука"

Викторина "Пожарная азбука"

Викторина "Пожарная азбука"

 

Играют две команды.

Вопросы викторины написаны на карточках, которые игроки команд по очереди вытаскивают из «тайника». Роль тайника выполняет картонный макет огнетушителя.

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

 

Вопросы и ответы викторины

 

  1. 1.Как называется профессия людей, борющихся с огнем? (1 балл)

Пожарные

 

  1. 2.Почему пожарных вызывают по телефону именно «01»? (1 балл)

«01» самый простой и короткий номер, его легко запомнить. Этот номер легко набрать даже в темноте и на ощупь.

 

  1. 3.Почему пожарная машина красная? (1 балл)

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

 

  1. 4.Как одеваются пожарные? (2 балла)

Пожарные надевают брезентовый костюм. Он не горит, не намокает. Голову от ударов защищает каска, на руках рукавицы, на ногах сапоги. Для работы в огне и дыму пожарным необходим аппарат для дыхания.

 

  1. 5.Назови произведения, где упоминается о пожаре? (2 балла)

       С.Маршак «Пожар», «Кошкин дом», «Рассказ о неизвестном герое»; К.Чуковский «Путаница»; Л.Толстой «Пожарные собаки»; Е.Пермяк «От костра до котла»; «Огонь — опасная игра».

 

  1. 6.Чем опасны пожары? (1 балл)

При пожаре могут сгореть вещи, квартира и даже целый дом. Но главное, что при пожаре могут погибнуть люди.

 

  1. 7.Чем еще опасен пожар, кроме огня? (2 балла)

Страшнее огня бывает дым. В задымленной комнате легко заблудиться и не найти выход. Трудно дышать.

 

  1. 8.Почему раньше пожар мог уничтожить целый город? (1 балл)

Раньше все дома строились из дерева, строили их близко друг к другу.

 

  1. 9.Чем можно тушить начинающийся пожар? (1 балл)

Пожар можно тушить огнетушителем, водой, песком, одеялом.

  1. 10.Почему опасно играть в доме со спичками и зажигалками? (1 балл)

Игры со спичками и зажигалками являются причиной пожара.

 

  1. 11.От чего бывают пожары? (1 балл)

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

 

  1. 12.Что ты должен сообщить, вызывая пожарных? (2 балла)

Необходимо сообщить свой точный адрес, фамилию, имя и что горит.

 

  1. 13.Что надо делать, если в квартире много дыма? (2 балла)

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

 

  1. 14.Что вы станете делать, если увидели, что нижние этажи дома охвачены пламенем? (2 балла)

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

 

  1. 15.Почему во время пожара нельзя пользоваться лифтом? (2 балла)

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

 

  1. 16.Чем опасна печь в деревенском доме? (2 балла)

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

 

  1. 17.Почему без разрешения взрослых нельзя трогать печную заслонку? (2 балла)

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

 

  1. 18.Может ли загореться искусственная елка? (2 балла)

Искусственная елка может загореться. Правда, искусственная елка

разгорается не так быстро, как настоящая, но зато горящая пластмасса

       выделяет ядовитые вещества.

 

  1. 19.Вам на Новый год подарили замечательные фейерверки и бенгальские огни. Где вы будете их зажигать? (2 балла)

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