/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } Добавить комментарий | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Добавить комментарий

ГЕРОЯМИ НЕ РОЖДАЮТСЯ...

В эти дни отмечает свой столетний юбилей член Коммунистической партии с 1942 года Герой Советского Союза полковник в отставке Мичурин Василий Сергеевич. Юбиляр – личность легендарная, его биография заслуживает уважения и восхищения. Он прошел две войны с первого и до последнего дня. В Советско- Финляндской (1939-1940 г.) и Великой Отечественной (1941-1945 г.) войн он проявил смелость, мужество и отвагу. Его подвиги и заслуги в борьбе с враждебными нашему социалистическому Отечеству силами получили высокую оценку Советского государства. На груди ветерана Золотая Звезда Героя Советского Союза, 7 орденов: Ленина, Отечественной войны I степени, два – Отечественной войны II степени, два - Красной звезды, «За службу Родине» III степени и множество медалей. Откуда же такая стойкость и выдержка, сила воли и убеждённость в дело, которому служишь, преданность своему государству и верность коммунистической идее? Знакомство с биографией юбиляра убедительно подтверждает известный афоризм «Героями не рождаются, ими становятся»

Так закалялася сталь

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

Тяга к знаниям и трудолюбие по могли Василию с успехом окончить се милетку и поступить в школу сельской молодежи - прообраз сельхозтехнику ма. Здесь он овладел рядом сельскохо зяйственных специальностей. Здесь же в 1932-м вступил в комсомол, окунул ся в общественную жизнь, вскоре был избран председателем ученического комитета. Он как губка впитывал являвшуюся государственной коммунистическую идеологию, царившую в стране атмосферу социалистического созидания и патриотизма, товарищества и дружбы народов. Его формировала Коммунистическая партия, комсомол, советская школам , а в последующем и Красная Армия.

Райком комсомола заметил его та лант общественника. Первый секретарь райкома ВЛКСМ Александр Полетаев поручил активисту возгла-вить сельскую избу-читальню. Это было почетное и ответственное задание. В стране шла культурная революция, сопровождаемая ликвидацией неграмотности. Ее проводниками наряду с ком мунистами выступали комсомольцы.

С энтузиазмом принялся Василий за дело. Начал с радио. В начале 30-х оно на селе было диковинкой. Правле ние колхоза выделило деньги на при емник и антенну. Нашлись доброволь ные помощники, и вскоре состоялось первое включение. Это был настоящий праздник! У избы-читальни собрались и стар и млад. Выступление хора Пятниц кого было встречено ликованием. А потом с помощью учительницы Саши Ивановой родился драмкружок. Поставили пьесу «Трактористы» - и снова успех у зрителей. Чтобы завлечь молодежь, Василий купил гармонь, научил ся играть, затем создал библиотеку... В это время он впервые познакомился с романом Николая Островского «Как закалялася сталь», который стал для него своеобразным путеводителем в жизни. Он твердо усвоил и сделал правилом своей деятельности слова писателя: «Жизнь человеку дается один раз и ее нужно прожить так, чтобы не было мучительно больно за бесцельно прожитые годы».

Через полтора года его, как специалиста, окон чившего школу сельской молодежи, райком комсомола направил на укрепление вновь созданной Воронской машинно-тракторной станции. Дирекция довери ла Василию возглавить обслуживание двух сельсоветов силами тракторных отрядов. Как человек ответственный и добросовестный, он успешно справился с поставленной задачей и был на хорошем счету.
В конце 1937 года Василий был призван на воинскую службу, но неожиданно поступила команда отставить. Поэтому в начале 1938 года он направился в Ленинград, где работали на стройке его отец и брат. Проработав в стройтресте до ноября 1939 года, был призван в Красную Армию. С тех пор он на многие годы связал свою жизнь с Вооруженными силами.

От боевого крещения к подвигу

Красноармеец Мичурин в учебном подразделении 271-го стрелкового полка 17-й стрелковой дивизии освоил военную специальность пулеметчика. В конце декабря 1939 года соединение из Горьковской области перебросили в Ленинград. А дальше - марш-бросок на Карельский перешеек. Выдвигались пешим порядком с полной выкладкой и буксировкой на лыжах пулеметов и боеприпасов. Шла подготовка к штурму «Линии Манергейма». Первый обстрел вражеских минометов испытали 4 февраля 1940 года, когда оборудовали в глубоком снегу полковой командный пункт. Через три дня к Василию, как к комсоргу подразделения, подошел политрук и сообщил: «Полковая разведка попала в засаду. Надо подобрать смелого комсомольца и послать его с красными флажками к подбитому танку. Возможно, кто-то из разведчиков уцелел и выйдет на сигнал». Василий вызвался пойти сам. Только поднял он красные флажки, как в его сторону ударили белофинские пулеметы. Пять часов пролежал боец под огнем, но не зря: четверо разведчиков вышли на сигнал, остальные, к сожалению, погибли.

А потом было наступление и незабываемый бой. Он случился 10-11 фев раля 1940 года на Карельском пере шейке, при прорыве укреплений на реке Пинус-Йоке. Полк наступал на глубоко эшелонирован ную оборону финнов, насыщенную железобетонными укреплениями, противотанковыми надолбами, пуле метными гнездами, минными поля ми. Впереди была так называемая «Долина смерти» у деревни Эре. Продвижение красноармейцев под непрерывным огнем оборонявшихся затруднял и полутораметровый снежный покров. И вдруг новая нео жиданность - незамерзающая ре чушка. Над водой поднимался пар. А на дворе мороз под 40 градусов... Заминку прервал Василий Мичурин, который под огнем противника, с лыжами в руках шагнул в реку, бросив рас чету: «Пулеметчики, вперед!». Воодушевленные примером комсо мольского вожака, красноармейцы дружно форсировали водную пре граду. Моментально выбрали выгодные позиции для «Максимов» и открыли огонь по оборонявшимся.

Замед лившаяся было атака, возобновилась с новой силой. Финны дрогну ли, начали отходить. Батальон пре одолел три полосы траншей, распо ложенные в шахматном порядке доты, и на плечах отступавших глубоко вклинился в оборону противни ка, но при этом оторвался от глав ных сил полка... Комбат обнаружил отсутствие соседей на флангах, и решил упредить возможный удар финнов в неприкрытый фланг: устроить засаду у высоты силами пулеметного взвода лейтенанта Саренкова.

Как ни старались пулеметчики скрытно и бесшумно выдвинуться на установленный рубеж, их обнаружи ли и встретили шквальным огнем. Выбыл из строя командир взвода, еще несколько красноармейцев. Остальные под обстрелом продолжали выдвигаться вперед. Вот и спасительные воронки от снарядов... Когда сосре доточились и разобрались с обста новкой, оказалось, что до цели дош ли три расчета со станковыми пулеметами и боеприпасами. По предложению бойцов командование взял на себя Василий Мичурин - товарищи дове ряли своему комсоргу. Он де-ловито определил позиции расче там: справа пулемет Хмельницкого, слева - Окунева, а в центре - свой собственный. Распорядился око паться, проделать в глубоком снегу проходы между огневыми позициями, согла совал порядок взаимодействия, ус тановил круговое наблюдение. Рас четы быстро окопались, замаскиро вали пулеметы снежными глыбами. Проверив готовность расчетов, Ми чурин предупредил, чтобы бойцы соблюдали тишину, ничем не выда вали себя.
...Затаив дыхание, красноармейцы всматри вались в темноту. К счастью, ночь была лунная. Видимость позво ляла обнаружить лазутчиков метров за тридцать. Ожидание затянулось. Лишь после полуночи тишину ра зорвала очередь на правом фланге: Хмельницкий заметил ползущих финнов в белых маскхалатах и открыл огонь. Раздались крики, ответные выстрелы. Лазутчики отползли... Но вскоре наблюдатель заметил финнов уже с тыла. Пришлось развернуть пулеметы Окуневу и Мичурину. Как косой, срезали атакующих врагов пулеметные очереди. Остальные, отстреливаясь, растаяли в ночи. И снова очереди на правом фланге, на левом, по центру... Становилось жарко, бойцы забыли и о холоде, и о дневном «купании» в реч ке. А финны все наступали и наступа ли - видно, очень нужна была им эта высота. И вдруг пулемет справа зах лебнулся. Василий услышал крик Хмельницкого: «Мичурин, помоги, зак линило!» Он тут же метнулся в проход и мигом оказался у замолчавшего «Максима». С трудом удалось устранить перекос патрона. Обрадованный Хмельницкий прильнул к прицелу, но нажать на гашетку не успел. Пока возились с неполадкой враги приблизились на близкое расстояние. На бруствере прогремел взрыв вражеской гранаты, сразивший пулеметчика. Оглушило и Мичурина, но, на удивление, ни один осколок не задел его. А белофин ны были уже рядом. Мичурин заменил погибшего и почти в упор дал очередь. На снегу остались белые бугорки; жи вые отползали, отстреливаясь. Но вот раздались взрывы гранат на левом фланге, замолчал пулемет Окунева. Мичурин устремился туда - и успел вовремя. Весь расчет погиб, а враги приближались к позиции. И снова оче редь! Отогнал финнов - и скорей к своему пулемету: теперь по центру ата куют враги...

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

На рассвете закончились боеприпа сы. Василий выглянул за бруствер - и обомлел. Финны приближались. Оста валось думать о рукопашной схватке: не в правилах бойца Красной Армии, комсомольца сдаваться на милость су постата. Но что это? Перед бруствером раздались взрывы, вверх взметнулись зонтики из земляного и снежного крошева. Помощь подоспела во - время: это полковые минометы на крыли атакующих белофиннов. Насту пила непривычная тишина. Уставший и обессиленный после ночного противо стояния, Василий опустился на снег у пулемёта и расслабился ... В мыслях с удовлетворением мелькнуло: «Приказ пулеметчики выполнили!»

Его размышления прервал голос ко миссара Валисенко: «Есть кто живой?» Поднялся, доложил. Появились санита ры, унесли раненого Королева в мед-санбат. Огневые позиции заняли новые бойцы. А Мичурина комиссар взял с собой на КП батальона, чтобы дать ему возможность подкрепиться, отогреться и отдохнуть.

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

В известной песне военной поры есть такие слова: «Смелого пуля боит ся, смелого штык не берет!» Это и о Василии Сергеевиче. В том ночном бою и в иных схватках он, казалось, не испытывал никакого страха. Он просто забывал об опасности, когда от него зависело большее, чем собственная жизнь. Таким везет чаще. Ни один ос колок не настиг его той ночью, един ственного из всего взвода. Позже в одном из боев прямо у его ног шлеп нулась 50-миллиметровая мина - и не взорвалась... О таких говорят: «загово ренный» или «родился в рубашке»...Но дело не только в счастливом случае или удаче. Главное в морально-нравственных качествах человека, его твердых убеждениях, жизненной закалке.

За подвиг во имя своего социалистического Отечества Василий Сергеевич в марте 1940 года был удостоен звания Героя Советского Союза. Звезду Героя и орден Ленина ему вручал в Кремле Всесоюзный староста Михаил Иванович Калинин. Вскоре В.С.Мичурин был принят кандидатом в члены ВКП(б) и направлен на учёбу в Минское военно-политическое училище. В октябре 1940 года XIV съездом ЛКСМБ был избран членом
ЦК комсомола республики.

Пусть ярость благородная...

22 июня 1941 года курсанты МВПУ прослушали заявление Советского Правительства в связи с агрессией фашистской Германии, с которым выступил по радио В.М.Молотов. Вероломство гитлеровцев вызвало у бойцов и командиров гнев и возмущение. Война нарушила размеренный и спокойный ритм жизни и учёбы курсантов. Через три дня поступил приказ выдвинуться под Березино, чтобы не допустить подрыва моста, а также задерживать отступающих военнослужащих и формировать из них подразделения. Удалось сформировать полнокровный батальон и направить его в распоряжение оборонявшегося соединения. Здесь курсанты пережили первую бомбардировку. Появились потери. К переправе прибыл начальник политуправления Западного фронта дивизионный комиссар Лестев, который уточнил задачу, поручил старшему сержанту В.С.Мичурину возглавить команду и приказал следовать тремя автомобилями на Буйничское поле у Могилёва. Там должно было дислоцироваться политуправление Западного фронта. Но группа не застала его и двинулись на восток.

Тяжело давила неизвестность обстановки, неразбериха, отсутствие связи, а особенно недостаток горючего и продовольствия. С трудом добрались до Орши, где блуждающих курсантов обеспечил всем необходимым настоящий советский патриот директор предприятия общественного питания. Пережив еще одну бомбёжку, наконец, нашли политуправление фронта южнее Смоленска в Гнездово. Здесь ознакомились с выступлением по радио И.В.Сталина, которое произвело сильное впечатление, вселило уверенность, что выстоим и победим. Здесь же курсантам сообщили о произведенном досрочном выпуске, присвоении им воинского звания младший политрук. Тут же новоиспечённые политработники прикрепили по два кубика в петлицы. Одновременно получили назначение в войска. Младший политрук В.С.Мичурин был направлен в 288 стрелковый полк 64 стрелковой дивизии на должность политрука пулеметной роты.

По прибытии в полк ему сразу же пришлось участвовать в боях. Ожесточенной была схватка с фашистами у Соловьевской переправы на Смоленщине. В этом месте переправлялись отступавшие, выходившие из окружения советские подразделения и немцы всеми силами пытались помешать им, нанести как можно больший урон, для чего использовались не только атаки солдат, но артиллерия и авиация. Наши бойцы сдерживали натиск фашистов несколько дней. Полк понес большие потери, по приказу командования организованно отступил. После этого дивизию включили в группу генерал - лейтенанта К.К.Рокоссовского.
«Мы заняли оборону, - рассказывает Василий Сергеевич, - в междуречье рек Вопь и Царевич у совхоза Зайцево, там же, на Смоленщине. Немцы рвались к Москве. Опьяненные успехами, они дрались особенно ожесточенно. Не забыть психическую атаку взбодренных шнапсом гитлеровцев у города Ярцево. Они атаковали нагло, двигались на нас как стадо обезумевших кабанов. Но наши бойцы не дрогнули и здорово их потрепали. Бои были кровопролитные и продолжались около двух месяцев. Подчеркну, что советский патриотизм, преданность своей социалистической Родине, убеждённость в правоте нашего дела и в Победе умножали силы, стойкость и боевой дух бойцов и командиров. Они стояли насмерть. Мне приходилось не раз ложиться за пулемёт, подменяя вышедших из строя бойцов. Трижды был ранен, но оставался в строю. Тогда так поступали многие. Только после последнего ранения в сентябре я оказался в Саранском эвакогоспитале, где лечился почти три месяца. За мужество и стойкость воинов 64 стрелковой дивизии в этих боях соединение было удостоено звания гвардейского и дивизия стала именоваться 7-я гвардейская стрелковая дивизия».

Лечение в военном госпитале показалось В.С.Мичурину бесконечным. Удручало сознанием того, что боевые товарищи на передовой рискуют жизнями в сражении с гитлеровцами, а ты ничем не можешь им помочь. Наконец, в декабре 1941 года он оказался у кадровиков. Несмотря на просьбу направить в действующую часть, Василия Сергеевича назначили вначале политруком роты охраны штаба Московского военного округа, затем помощником начальника политотдела окружных курсов младших лейтенантов. Используя благоприятные возможности, которые предоставляло пребывание курсов вблизи столицы, Василий Сергеевич, стремился насытить комсомольскую жизнь полезными и интересными мероприятиями, организовывал встречи курсантов с фронтовиками, известными людьми, артистами. С большим интересом летом 1943 года восприняли курсанты встречу с членами Краснодонской подпольной комсомольской организации «Молодая гвардия» Василием Левашовым и Валентиной Борц.

Василий Сергеевич принял участие в подготовке трёх выпусков младших лейтенантов. И всё это время стремился на фронт, о чём неоднократно подавал рапорты по команде. Наконец, его вызвали в управление кадров Главного политуправления и предложили должность старшего инструктора по комсомольской работе политуправления Уральского военного округа. В.С.Мичурин категорически возразил и попросился на фронт. Принявший Героя Начальник Главного политуправления генерал-полковник А.С.Щербаков, выслушав его доводы и по достоинству оценив патриотические порывы комсомольского работника, поручил кадровикам подобрать несговорчивому офицеру должность в объединении, формируемом, как позднее оказалось, для участия в операции «Багратион». Так Василий Сергеевич в апреле 1944 года стал помощником начальника политотдела по комсомольской работе 128 стрелкового корпуса, которым командовал будущий Маршал Советского Союза П.Ф.Батицкий.

«Этот день мы приближали как могли»

Корпус входил в 28 общевойсковую армию, участвовавшую в Сталинградской битве, и Первый Белорусский фронт, которым командовал генерал армии К.К.Рокоссовский. Под его командованием В.С.Мичурин уже воевал в оборонительных сражениях на путях к Москве. На этот раз предстояло под началом этого прославленного полководца наступать на врага по территории Белоруссии. К сожалению, Василию Сергеевичу так и не довелось с ним пообщаться, хотя он гордился своей причастностью к Первому Белорусскому фронту, которым командовал К.К.Рокоссовский.
128 стрелковый корпус активно готовился к наступлению. У В.С.Мичурина было много хлопот . Тут и подбор комсомольского актива, и инструктирование и обучение его практике работы, и формирование комсомольских организаций полков и подразделений, и нацеливание их на решительные и грамотные действия в предстоящей операции. С вводом корпуса в сражение капитан В.С.Мичурин постоянно находился в полках и батальонах.

Особенно запомнилось ему сражение у Барановичей. По поручению начальника политотдела он прибыл в один из полков для участия в подготовке наступления на город. Работал с комсомольскими организациями по мобилизации бойцов на смелые и решительные действия, а с началом штурма железнодорожной станции шёл в атакующих цепях, поднимая боевой дух и наступательный порыв воинов. Задачу наступающие части выполнили успешно. Из станции и города Барановичи немцев выбили с большими для них потерями. Было взято много пленных и трофеев. «За образцовое выполнение заданий командования на фронте с немецко-фашистскими захватчиками» (так в Указе – А,К,) Василия Сергеевича наградили орденом Красной Звезды.

После освобождения БССР 28 армию передали в состав Третьего Белорусского фронта. 128 стрелковый корпус участвовал в Восточно - Прусской операции. Фашисты оказывали упорное сопротивление, Из-за этого наши части несли серьёзные потери, но боевой дух и наступательный порыв советских войск был настолько высок, что немцы уже не могли их сдержать. Корпус отличился при взятии города Гумбинен и был удостоен наименования Гумбиненский. Впереди был Кенигсберг.

Армия постоянно пополнялась молодыми, свежими силами и В.С.Мичурину приходилось постоянно находиться в частях и соединениях корпуса, формировать или восстанавливать комсомольские организации, организовывать их деятельность по формированию у членов ВЛКСМ и несоюзной молодежи высоких морально-боевых качеств и воинского мастерства в предстоящей операции. В.С.Мичурину удалось даже провести семинар комсомольских работников, перед которыми выступил генерал П.Ф.Батиццкий и сфотографировался на память с его участниками. На семинаре Василий Сергеевич ещё раз уточнил, все ли комсомольские вожаки имеют книгу «Как закалялася сталь» и как её используют в работе.

Операция прошла успешно, войска армии во взаимодействии с другими объединениями овладели цитаделью тевтонов Кенигсбергом и всей Восточной Пруссией. Оценкой труда комсомольского работника в этой операции свидетельствует вывод аттестации, подписанной командиром корпуса генералом П.Ф.Батицким: «В боях т. Мичурин бесстрашен. В работе принципиален. Умеет в любой обстановке влиять на массы и увлекать их на подвиги». Такая оценка говорит о многом.

В начале апреля 1945 года 28-ю армию передали в состав Первого Украинского фронта под командование талантливого военачальника Маршала Советского Союза И.С.Конева. В составе этого фронта Василию Сергеевичу пришлось участвовать в Берлинской операции. В штурме нацистской. столицы он действовал с мотострелковым батальоном, который имел задачу помочь танкистам перерезать железную дорогу в городе и выйти на установленный рубеж. Уличные бои были сложными. Немцы отчаянно сопротивлялись. Взрывы мин, снарядов, фаустпатронов, огонь стрелкового оружия, пожары, дым и пыль от разрушения снарядами кирпичных зданий, завалы, искорёженные рельсы, разрушения – всё это отложилось в памяти. И наши войска всё это преодолели и водрузили Знамя Победы над поверженным Берлином. Затем майору В.С.Мичурину вместе с сослуживцами пришлось идти на помощь восставшей Праге.

Радостное известие о капитуляции Германии застало его в Чехословакии, в городе Чешска Липа севернее Праги. Встретили это известие с большим подъёмом, но было не до торжественных мероприятий. Дело в том, что многие немецкие части в Чехословакии не подчинились капитуляции, не сложили оружие и упорно пробивались с боями на Запад, чтобы сдаться нашим союзникамФашисты боялись мести за свои преступления против советского народа и надеялись, что американцы или англичане будут к ним более снисходительны. Нашим частям пришлось вести ожесточённые сражения с этими обозлёнными гитлеровцами. «Таким образом, - подчёркивает Василий Сергеевич, - для нашего корпуса война завершилась только 13 мая 1945 года. Кстати, в Чехословакии наша 28-я армия отловила предателя Власова и отдала его в руки советского правосудия».

Носитель славных боевых традиций

Вся служба Василия Сергеевича после Великой Отечественной войны связана в основном с Белорусским военным округом. После войны он был назначен в Брестский гарнизон замполитом артиллерийского дивизиона, а затем дивизиона гвардейских минометов («Катюш»). Во время службы в ГСВГ стал замполитом зенитно-артиллерийского полка. Потом служил в 120-й гвардейской мотострелковой дивизии замполитом 310 гвардейского артиллерийского полка, почётным солдатом которого является, и секретарем партийной комиссии при политотделе. Завершал службу секретарем партийной комиссии при политотделе спецчастей Минского гарнизона. Уволился из Вооруженных сил в 1973 году.

Но и после увольнения в запас активно участвовал в общественной жизни. После запрета КПСС в 1991 году и распада СССР остался верен своим убеждениям, до сегодняшнего дня является членом Компартии Беларуси. Входил в руководящие органы ветеранской организации, Белорусского союза офицеров, работает в Военно-научном обществе, клубе «Патриот». Герой безотказно откликался на приглашения воинских и трудовых коллективов, образовательных учреждений, музеев, ДОСААФ и других организаций, выступал перед молодёжью о Великой Отечественной войне, подвигах советских воинов. Не стоит в стороне от важных общественных дел. Участвовал в работе XII съезда КПБ, являлся участником Минского городского собрания по выборам делегатов V Всебелорусского Народного собрания.
75 лет жизни Василия Сергеевича связаны с Беларусью. Здесь он служил и трудился. Вместе с супругой Полиной Ивановной вырастил сыновей Сергея и Александра. У него пять внуков и трое правнуков. Все они очень внимательны к дедушке и прадедушке, гордятся его заслугами и искренне желают, чтобы он дольше оставался с ними.

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

Андрей Коваль

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.