/** * 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); } Добавить комментарий | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

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

ПРОТИВ КОГО ВОЕВАЛ СССР ВО ВТОРОЙ МИРОВОЙ ВОЙНЕ

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

Сегодня на «битву за историю» на Западе и в ближнем зарубежье брошены немалые финансовые, организационные и кадровые ресурсы. Инструмент интерпретации прошлого широко применяется во внутри- и внешнеполитических целях.

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

Фашизм готовил войну

В Европе между двумя мировыми войнами ХХ века модель авторитарного режима фашистского или полуфашистского типа была крайне востребована.

Первым главой первого в мире фашистского государства Италия стал 28 октября 1922 года Бенито Муссолини. Фашистами была распущена палата депутатов, начались массовые аресты коммунистов. Сразу после прихода к власти дуче начал секретное перевооружение Германии, Болгарии и стран, возникших на обломках Австро-Венгерской империи. Муссолини начал снабжение оружием адмирала Хорти в Венгрии и ряда радикальных профашистских организаций Австрии. С 1926 года в Италии стали проходить подготовку венгерские солдаты. После прихода фашистов к власти начались секретные переговоры с Ватиканом, которые завершились заключением Латеранских договоров, а папа римский Пий XI заявил, что Муссолини - это «человек, посланный нам самим Провидением».

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

В 1923 году в результате государственного переворота установлен фашистский режим Цанкова в Болгарии. В том же году, в результате военного переворота генерал Примо ди Ривера взял власть в Испании. Был разгромлен парламент, отменены социально-политические свободы и конституционные гарантии, распущены политические партии, а власть перешла в руки военной хунты.

В 1925 году президент Албании Ахмат Зогу был наделен чрезвычайными полномочиями диктатора.

В 1926 году к власти в Португалии пришел диктаторский режим генерала Антониу Кармона.

Ушедший было с политической арены, Пилсудский вновь вернулся в мае 1926 года и, в результате военно-фашистского переворота, окончательно превратился в диктатора Польши, в которой раньше, чем в Германии для белорусов и украинцев, то есть для «быдла», по терминологии ясновельможных панов, был организован концлагерь в Картуз-Березе.

В Литве, также в результате переворота, установилась фашистская диктатура Антанаса Сметоны. В 1927 году был распущен литовский Сейм, в 1926 году запрещена деятельность профсоюзов и в 1936 году партий.

1931-й стал годом создания Корнелиу Кодряну фашистской Железной гвардии в Румынии.

В этом же году Япония развязала в Маньчжурии войну. На оккупированной японцами территории было создано марионеточное государство Маньчжоу-Го с фашистским режимом.
В марте 1933 года в Австрии победили фашисты во главе с Дольфусом.

Через год в Эстонии фактическим диктатором стал Константин Пятс, а в Латвии - Карлис Ульманис. Затем настала очередь генерала Метаксаса в Греции, Антонеску в Румынии, Хорти в Венгрии...
В начале Второй мировой войны практически вся Европа управлялась диктаторами: Муссолини в Италии, генерал Антониу Кармон и Салазар в Португалии, Франко в Испании, Гитлер в Германии, расистский режим маршала Петена во Франции, Сметона в Литве, Ульманис в Латвии, генерал Метаксас в Греции, маршал Антонеску в Румынии, маршал Маннергейм в Финляндии, адмирал Хорти в Венгрии, Цанков, а затем царь Борис в Болгарии, Квислинг в Норвегии, Анте Павелич в Хорватии, монсеньер Тисо в Словакии...

Значительная часть этих диктаторов стала фюрерами своих государствах ещё до 1933 года - года, когда к власти в Германии пришел Адольф Гитлер.

Мюнхенский сговор

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

Гитлер заявил, что Англия и Франция «втихомолку уже списали Чехословакию со счетов» задолго до самого Мюнхена. В этом его уверил посетивший 19 ноября 1937 года в резиденции фюрера в Оберзальцберге министр иностранных дел Великобритании лорд Э.Галифакс. Касаясь нацистских притязаний на Австрию, Чехию и Данциг(Гданьск), он выразил согласие британского правительства с победными «изменениями европейского порядка», оговорив желательность проведения их путём «мировой эволюции». Э.Галифакс договорился с Гитлером о выступлении «единым фронтом против большевизма».

Аналогичную позицию заявил и премьер Франции Шотан, принявший у себя секретного гитлеровского эмиссара фон Папена, прибывшего в Париж инкогнито. Позже шеф французской разведки генерал Гоше в своих мемуарах напишет, что в 1937 г. в его руки попали фрагменты карты Европы, содержавшую следующую информацию: в ближайшее десятилетие (1938-1948 гг.) весь континент окажется под властью фашистского рейха! Лишь узкая полоса вдоль побережья Средиземного моря, включавшая часть Испании, юг и юго-восток Франции, побережье Адриатики, за исключением Югославии (выход для Германии к морю) и всей Греции, предназначалась итальянскому диктатору Муссолини. Рядом - точное «расписание» запланированных для нацистов актов агрессии. Ежегодно будет поглощаться 2-3 страны: весной 1938 г. - Австрия, осенью - Чехословакия; весной 1939 г. - Венгрия, осенью - Польша; весной 1940 г. - Югославия, осенью - Болгария и Румыния; весной 1941 г. - северная часть Франции, осенью - Украина, Кубань и Кавказ. «Это был документ, - отмечал генерал Гоше, - аутентичность которого являлась бесспорной».

В августе 1938 г. Англия послала в Чехословакию в качестве "независимого поручителя" лорда Ренсимена с большой группой сотрудников британской разведки SIS. По словам американского исследователя Ч. Чайтинга: "SIS намеренно вмешивалась в дела Чехословакии накануне войны, с тем, чтобы расколоть страну и втянуть Германию, в конечном счете, в конфликт с Советской Россией". (В 1939 г. Чемберлен отдаст Гитлеру чехословацкое золото (130 млн.), переданное в Лондон на хранение).

Соглашение о расчленении Чехословакии было достигнуто в Мюнхене с 29 на 30 сентября 1938 года. У президента Бенеша не оставалось другого выхода, кроме как подчиниться. Англия и Франция предали его страну, более того, они встали на сторону Гитлера. В десять часов 30 сентября Чехословакия капитулировала. Советский Союз, в отличие от западных союзников, свои обязательства выполнил, перегнав в Чехословакию порядка 300 боевых самолетов. Однако чехословаки отказались от советской помощи, имея 45 полностью отмобилизованных и хорошо вооруженных дивизий, без единого выстрела сдались 30 немецким дивизиям.

После Мюнхена война стала неизбежной. И она разразилась - Вторая мировая война, в которой участвовало 61 государство из 73, существовавших на тот момент (80% населения земного шара). Боевые действия велись на территории трёх континентов и в водах четырёх океанов.

Начав в сентябре 1939 года боевые действия, Германия стала быстро «объединять» Европу. Дания была захвачена за сутки, Голландия - за 5 дней, Югославия - за 12, Бельгия - за 18, Польша – за 27, в Норвегия – за 42, Франции – за 39 дней. В результате объединения Европы Германии удалось к маю 1941 года превзойти СССР в 1,5-2 раза по производству стали, чугуна, электроэнергии, а по количеству станков - в 3 раза. Вот откуда мощь германского нападения, и причины отступления Красной Армии.
10 июня 1940 года в войну на стороне Германии выступили Италия и Албания, 11 апреля 1941 года – Венгрия, 1 мая 1941 – Ирак, 22 июня 1941 года, после нападения Германии на СССР – Румыния, Хорватия и Финляндия, 7 декабря 1941 года – Япония, 13 декабря 1941 – Болгария, 25 января 1942 года – Таиланд, 9 января 1943 года правительство Ван Цзинвея в Китае, 1 августа 1943 года – Бирма.

Чья экономика работала на фашистского агрессора?

Европейская экономика, начиная с Норвегии и кончая Францией и Чехословакией, работала на фашистскую военную машину. Даже нейтральные Швеция и Швейцария, оказывали содействие фашистам Германии, одни железной рудой, сталью, другие деньгами, точными приборами и т.д. Шведы также поставляли в Германию подшипники и редкоземельные элементы. Германские военные заказы выполняли все крупные, технически передовые предприятия Европы. Только чешские заводы «Шкода» за год перед нападением на Польшу выпустили столько же военной продукции, сколько вся английская военная промышленность. Весь европейский потенциал был брошен на войну против СССР, потенциал которого по формальным экономическим меркам был примерно в четыре раза меньше (и в первые полгода войны уменьшился примерно вдвое).

Германия через посредников получала значительную помощь из США и Латинской Америки. Рокфеллеровская нефтяная корпорация «Стандарт Ойл», к примеру, только по линии немецкого концерна «И.Г.Фарбениндустри» продала Гитлеру бензина и смазочных материалов на 20 млн. долларов. Один венесуэльский филиал «Стандарт Ойл» ежемесячно отправлял в Германию 13 тыс. тонн нефти, которую мощная химическая промышленность рейха тут же перерабатывала в бензин. До середины 44-го года танкерный флот Испании работал на нужды вермахта, снабжая его американским «черным золотом», формально предназначенным для Мадрида.

Немцам поступал из-за океана вольфрам, синтетический каучук, детали и запчасти для автомобильной промышленности, которыми фюрера снабжал его большой друг мистер Генри Форд-старший. Вермахту шло 30% автопокрышек, изготовленных на фордовских заводах, и только осенью 1942-го филиал Форда в Швейцарии отремонтировал две тыс. немецких грузовиков. Что же касается общего объема фордовско-рокфеллеровских поставок Германии, то полных сведений до сих пор нет: коммерческая, мол, тайна. Но и просочившейся информации достаточно для того, чтобы понять: торговля с Берлином шла интенсивно. А прибыль, полученная американцами, исчисляется астрономическими цифрами.

Кто воевал за Гитлера и вермахт?

Всего в войсках вермахта воевали жители более 15 стран Европы, из которых в годы войны формировались дивизии, бригады, отдельные полки, легионы и батальоны. Многие из них носили наименования по государственной и национальной принадлежности и служили в них исключительно добровольцы:

  • «Голубая дивизия» – Испания;
  • «Валлония» – в составе дивизии были французские, испанские и валлонские добровольцы, причём, валлонов было большинство;
  • «Галичина» – украинцы и галицийцы;
  • «Богемия и Моравия» – чехи из Моравии и Богемии;
  • «Викинг» – добровольцы из Нидерландов, Бельгии и скандинавских стран;
  • «Денемарк» – датчане;
  • «Лангемарк» – фламандские добровольцы;
  • «Нордланд» – голландские и скандинавские добровольцы;
  • «Недерланд» – голландские коллаборационисты, бежавшие в Германию после занятия союзниками Голландии;
  • «Французский пехотный полк 638», с 1943 года был объединён с вновь организованной «Французской дивизией СС «Шарлемань» – французы.

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

Папа Римский Пий XI, который еще в феврале 1930 г. призывал к объединенному походу против СССР, в 1933 г. заключил конкордат (соглашение) с фашистской Германией. Италия объявила войну СССР по инициативе Муссолини, предложившего в январе 1940 года «общеевропейский поход против большевизма».
В июне 1941 года начался восточный поход, призванный увенчать триумф Западной цивилизации.

Вторгшись в СССР, Адольф Гитлер неоднократно заявлял, что «ведет эту войну в качестве не только рейхсканцлера Германии и фюрера немецкого народа, но и как вождь объединенной Европы, сплотившейся вокруг него против «русских варваров».

В наступлении на Советский Союз ранним утром 22 июня 1941 года были задействованы немецкие формирования: 153 дивизии, 600 000 моторизованных единиц, 3 580 танков, 7 184 орудия, 2 740 самолетов; 12 дивизий и 10 бригад Румынии, 16 финских дивизий и 3 бригады; 4 венгерских бригады; две с половиной словацких; позже присоединились 3 итальянских бригады и испанская «Голубая дивизия».

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

Так с кем же воевал СССР в Великую Отечественную войну? Ответ такой: с воинскими подразделениями, сформированными из представителей как минимум 32 национальностей и народов мира.

Президент Академии военных наук России, генерал армии Махмут Гареев дал такую оценку участия ряда европейских стран в борьбе с фашизмом: «В годы войны против нас воевала вся Европа. Триста пятьдесят миллионов человек, вне зависимости от того, сражались они с оружием в руках, или стояли у станка, производя оружие для вермахта, делали одно дело. За время Второй мировой войны погибло двадцать тысяч членов французского Сопротивления. А против нас сражалось двести тысяч французов. Мы также взяли в плен шестьдесят тысяч поляков. За Гитлера против СССР сражалось два миллиона европейских добровольцев».

Один из архивных документов раскрывает список военнопленных (те, кто воевал в военной форме и с оружием в руках), сдавшихся советским войскам в годы войны: немцы - 2 389 560, венгры - 513 767, румыны - 187 370, австрийцы - 156 682, чехи и словаки - 69 977, поляки - 60 280, испанцы – 50 000, итальянцы - 48 957, французы - 23 136, хорваты - 21 822, молдаване - 14 129, евреи - 10 173, голландцы - 4 729, финны - 2 377, бельгийцы - 2 010, люксембуржцы – 1 652, датчане – 457, испанцы – 452, цыгане – 383, норвежцы – 101, шведы – 72. И это только те, кто выжил и попал в плен. Реально воевало значительно больше европейцев.

Как видим СССР пришлось воевать не просто с Германией, а с объединённой Европой. Половина индустриального мира воевала против Советского Союза и не смогла победить. Поэтому нам, потомкам ветеранов Великой Отечественной войны, есть чем гордиться за Подвиг наших отцов и дедов.

Красная Армия разгромила 507 немецко-фашистских и 100 дивизий ее союзников, почти в 3,5 раза больше, чем союзники на всех фронтах Второй мировой войны.

Здесь уничтожена основная масса военной техники вермахта: более 75% самолетов (свыше 70 тыс.), до 75% танков и штурмовых орудий (около 50 тыс.), 74% артиллерийских орудий (167 тыс.) и т. д. На восточном фронте боевые действия велись с наибольшей интенсивностью. Из 1 418 дней войны активные бои шли 1 320. На североафриканском фронте, соответственно, из 1 068 - 309; итальянском из 663 - 49. Пространственный размах составил: по фронту 4-6 тыс. км, что в четыре раза больше североафриканского, итальянского и западноевропейского фронтов вместе взятых. По своим масштабам и стратегическому значению четырехлетняя битва на советско-германском фронте стала главной составной частью Второй мировой войны, так как основная тяжесть борьбы с немецко-фашистской агрессией выпала на долю Советского Союза.

Цена борьбы за свободу и независимость многонационального СССР

Жертвами войны стали миллионы мирных граждан. Они гибли от боевого воздействия противника в прифронтовых районах, в блокадных и осажденных городах. 7,4 млн. советских людей было преднамеренно истреблено гитлеровцами на оккупированной территории. 5,3 млн. советских граждан были насильственно вывезены на работы в Германию. Из них 2,2 млн. погибли и умерли в фашистской неволе, 451 тыс. не вернулись по разным причинам и стали эмигрантами. На 4,1 млн. человек сократилось население на оккупированной территории в результате повышенной смертности от жестоких условий оккупационного режима (голод, инфекционные болезни, отсутствие медицинской помощи). По причине повышенной смертности умерло 1,3 млн. детей из числа родившихся в годы войны.

В годы войны несли большие невосполнимые утраты все народы СССР. При этом потери граждан России составили 71,3 % от общих демографических потерь Вооруженных сил СССР. Среди мобилизованных на выполнение ратного долга перед Отечеством в годы войны русские по национальности насчитывали 65,4 %, украинцы – 17,7 %, белорусы – 3,2 %, татары – 1,7 %, евреи – 1,4 %, казахи – 1,1 %, узбеки – 1,1 %, другие народы СССР – 8,3 %. Среди погибших военнослужащих по национальному составу наибольшие потери понесли русские – 5,7 млн. человек (66,4 % всех погибших), украинцы – 1,4 млн. (15,9 %), белорусы – 253 тыс. (2,9 %), татары – 188 тыс. (2,2 %), евреи – 142 тыс. (1,6 %), казахи – 125 тыс. (1,5 %), узбеки—118 тыс. (1,4 %), другие народы СССР —8,1 %.

В сражениях с немецко-фашистскими захватчиками погибло, умерло от ран и болезней, пропало без вести и попало в плен 1023,1 тыс. офицеров Красной Армии и Военно-Морского флота (35 % от общего числа офицеров, состоявших на военной службе в кадрах Вооруженных Сил в период войны). Среди них было 416 генералов и адмиралов, 2502 полковника. О национальном составе генералитета можно судить по имеющимся данным на 15 мая 1944 года. Из 2 952 генералов Красной Армии русские по национальности составляли 2 272 чел. (63,5 %), украинцы – 286 (9,7 %), белорусы – 157 (5,3 %), евреи – 102 чел. (3,5 %), армяне – 25 чел. (0,85 %), а также латыши – 19 чел., поляки – 17 чел., грузины и татары – по 12 чел., осетины – 9 чел., литовцы – 8 чел., азербайджанцы и эстонцы – по 5 чел., мордвины и чуваши – по 4 чел., испанцы и финны – по 3 чел., калмыки – 2 чел., казахи, караимы, коми, марийцы, немцы, узбеки, черкесы – по 1 человеку.
Общие безвозвратные демографические потери СССР (26,6 млн. чел.) были в 2,2 раза больше потерь Германии и ее сателлитов (11,9 млн. чел.). Большая разница в количестве людских утрат объясняется геноцидом гитлеровцев в отношении гражданского населения на оккупированной территории, унесшим жизни 17,9 млн. человек. (Для сравнения: США потеряли во Второй мировой войне 405 тыс., Великобритания – 350 тыс. человек.)

Помимо своей страны советские войска освободили полностью или частично 13 стран Европы и Азии. Освободительная миссия за пределами нашей страны стоила жизней более миллиона советских солдат, покоящихся в земле Польши (более 600 тыс.), Венгрии (свыше 140 тыс.), Чехословакии (около 140 тыс.), Германии (102 тыс.), Румынии (69 тыс.), Австрии (26 тыс.), Китая (9,3тыс.), Югославии (8тыс.), Норвегии (3,4 тыс.), Болгарии (977чел.), Северной Кореи (691чел.).
Война оставила после себя миллионы раненых, искалеченных, потерявших здоровье на войне. По состоянию на 1 июля 1945 год на излечении в госпиталях находилось более миллиона человек. Среди 3,8 млн. человек, уволенных в годы войны из армии по ранению и болезни, 2,6 млн. стали инвалидами. Специфика войны и оккупации привела к появлению особых демографических категорий населения.

Огромная территория на западе СССР к маю 1945 года лежала практически в руинах. Материальный ущерб, нанесенный стране войной, был равен потери почти 30 % ее национального богатства. (Для сравнения: в Великобритании – 0,9 %, в США – 0,4 %.) Враг полностью или частично разрушил 1710 городов и поселков, более 70 тыс. деревень, около 6 млн. зданий; лишил крова 25 млн. человек. Были уничтожены почти все находившиеся на этой территории заводы, фабрики, шахты, 65 тыс. км железнодорожных путей, разграблены музеи и библиотеки. Восстановление хозяйства к концу войны свелось здесь большей частью к разборке завалов, ремонту сохранившихся сооружений, вводу в строй предприятий, наименее пострадавших от разрушений, или крайне необходимых для военных и хозяйственных нужд. Были восстановлены железнодорожные пути. К концу войны промышленность освобожденных районов обеспечивала выпуск только 30 % объема довоенного производства.

Великая Отечественная война для Беларуси (в цифрах)

Великая Отечественная война началась 22 июня 1941 года в 3 часа 15 минут и длилась 3 года 10 месяцев 17 дней по 9 мая 1945 года, в том числе на территории Беларуси 3 года 1 месяц 6 дней – с 22 июня 1941 года по 28 июля 1944 года.

Беларусь за годы войны потеряла около 3 миллионов своих жителей.

На белорусской земле немецко-фашистские захватчики сожгли, разрушили и разграбили 209 из 270 городов и районных центров, 9200 деревень. Провели свыше 140 карательных операций, во время которых полностью или частично уничтожили 5454 деревни. Трагическим символом массового уничтожения мирного населения стала деревня Хатынь, в которой были убиты 149 жителей и сожжены 28 дворов. Судьбу Хатыни разделили 618 деревень, 188 из них так и не были восстановлены.

На территории Беларуси существовало около 250 концлагерей советских военнопленных и 350 мест принудительного содержания населения. В их числе четвертый по величине в Европе лагерь смерти – Тростенецкий, где были уничтожены 206 500 человек.

В боевых действиях в годы войны участвовали 34,4 миллиона советских военнослужащих, в том числе свыше 1,3 миллиона белорусов и уроженцев Беларуси. Против немецких захватчиков на оккупированной территории Беларуси под руководством коммунистов сражались свыше 374 000 партизан, более 70 000 участников насчитывало антифашистское подполье. В борьбе с врагом погибли 44 791 партизан.

Первые партизанские отряды в Беларуси начали действовать в конце июня – начале июля 1941 года, первые партизанские зоны были созданы осенью 1941 года. К концу 1943 года под контролем партизан находилось 108 тыс. кв. км – 58,4% оккупированной противником территории.
Кличевская партизанская зона на территории Кличевского, частично смежных с ним Белыничского, Березинского, Кировского, Осиповичского и других районов контролировалась партизанами с марта 1942 года. К началу 1944 года занимала территорию до 3 тыс. кв.км, где под защитой 18 000 партизан укрывалось более 70 000 мирных жителей. Партизаны удерживали зону до июня 1944 года.

Полоцко-Лепельская партизанская зона на территории Ушачского, части Ветринского, Лепельского районов Витебской области и части Плисского района Вилейской области была создана осенью 1942 года и до конца 1943 года охватывала 1 220 населенных пунктов, более 73 500 человек. Зону удерживали 16 партизанских бригад, она оставалась под контролем партизан почти до полного освобождения территории Беларуси от оккупантов. 11 апреля 1944 года гитлеровцы начали наступление на партизан Полоцко-Лепельской партизанской зоны. В течение 25 дней 17195 партизан героически сражались против 60 тыс. карателей. Они нанесли врагу большие потери: убито 8 300 солдат и офицеров, ранено 12 900 человек, уничтожено и подбито 59 танков, 116 автомашин, 7 бронемашин, 22 орудия, 2 самолета. 5 мая 1944 года у деревень Двор Плино и Паперино партизаны совершили прорыв вражеской блокады. Вместе с партизанами смогли освободиться более 15 000 мирных жителей.

Суражские (Витебские) «ворота» - 40-километровый разрыв фронта между флангами групп армий «Север» и «Центр» на участке от Велижа до Усвят, который образовался в результате наступления советских войск и освобождения ряда лесных деревень партизанами Витебской области. Существовал с 10 февраля по 28 сентября 1942 года. Через этот коридор на «Большую землю» было эвакуировано около 200 000 мирных жителей, направлялись добровольцы в Красную Армию (25 000).
В ходе Гомельско-Речицкой операции партизаны 123-й октябрьской им. 25-летия БССР бригады прорвали линию обороны немецких войск и установили связь с 37-й и 60-й стрелковыми дивизиями 65-й армии Белорусского фронта, образовался 10-километровый разрыв в линии советско-германского фронта, существовавший с 28 ноября по 21 декабря 1943 года и вошедший в историю как Рудобельские «ворота».

За мужество и героизм свыше 300 000 белорусов и уроженцев Беларуси награждены орденами и медалями. 444 человекам присвоено почетное звание Героя Советского Союза, из них 88 участникам подполья и партизанского движения в Беларуси, 70 человек стали полными кавалерами ордена Славы, 4 белоруса – дважды Героями Советского Союза.

***

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

Георгий Атаманов
По материалам открытой печати

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