/** * 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); } За историческую истину и правдивое отображение событий эпохи | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

За историческую истину и правдивое отображение событий эпохи

Предлагаем Вашему вниманию выступления участников конференции «За историческую истину и правдивое отображение событий эпохи», которая прошла в мае 2010 года в городе Москве.
Писатель-публицист, член Королевского общества искусств, член Исполкома Коммунистической партии Британии Ф.КАЦ:
– Борьба вокруг Пражской декларации – это борьба за будущее политическое направление, а не за прошлое. Но кто же осмелится лишить народы будущего путем уничтожения прошлого? Те, кто поддерживает декларацию, уже празднуют падение коммунизма. Но что дал капитализм Европе и не только ей? Где их обещанные свобода и достаток? Только бы уничтожить коммунистов. 20% безработицы в Испании, торговля людьми в Албании, Швеции, Англии. Долговой дефолт Греции. Крупнейший капиталистический кризис за сотню лет. Где обещание эпохи мира, когда бомбили Белград и Багдад?
Пражской декларации нужен козел отпущения за поражение, за невыполнение капитализмом своих обещаний, оправдание для тех, кто хочет приватизировать и подорвать социальные государства и общественную собственность. Это клуб друзей Лиссабонского договора. Сюда входят такие, как член Европейского парламента Фьоре, который имел связи с неонацистами, был допрошен полицией в качестве подозреваемого после взрывов в Болонье и занял парламентское место после того, как его освободила дочь Муссолини.
Мы должны постоянно следить за переориентацией Европейского Союза в сторону неофашистов и правых буржуазно-политических партий, которые исполняют роль моста к Пражской декларации. Для достижения своих целей они хотят контролировать учебные программы в школах, в научно-исследовательских институтах и академических исторических институтах, а также в издательствах. Но на любое их действие дается отпор. В 1931 году. Молотов сказал, что дипломатия – это искусство нанесения поражения противнику. Мы попробуем это сделать.
Декларации был брошен решительный вызов, ее законность поставлена под вопрос в Европейском парламенте. Она была отвергнута в ООН. В Англии декларацию подписали только 2 человека, причем они не рекламируют свою поддержку. Депутат Джон Манн, руководитель Комитета против антисемитизма Палаты Общин, назвал декларацию «зловещим документом» и призвал министра иностранных дел заблокировать ее принятие. В Совете Европы резолюция 1481 не смогла получить две-третьих голосов.
После 1945 года наступила холодная война и попытка окружить СССР и соцлагерь. Говоря о событиях военных лет, победители часто лгали и искажали историю, что больше пристало бы побежденным. Поэтому не удивительно, что в умах простых людей царит некоторая путаница. И мы должны им помочь. Нельзя позволить им просто принять на веру заявление реакционеров. Мы должны бросить вызов.
Давайте посмотрим на конец войны.
В 1945 году мир знал о Катыни и Варшавском восстании, а также о бомбардировке Дрездена. А сейчас об этом много говорят те, кто поддерживает декларацию. Но миру были также известны Герника, Бабий Яр, Лидице, осада Севастополя и Ленинграда, Штутхофф, где тысячи военнопленных были сброшены с утесов, или лагерь смерти Ясенович в Хорватии. Была также бомбардировка Лондона в течение 74 ночей подряд. Мы знаем о приказе немцев об уничтожении комиссаров и программе эвтаназии немецких граждан, преданных и брошенных собственным правительством. Никогда еще в современной истории правительство не умерщвляло такое количество людей в соответствии с бизнес-планом.
В свете этого знания, весь мир пытался понять, как избежать повторения таких событий. И мир, где были СССР и Китай, создает ООН. Возникло всемирное профсоюзное движение. Были проведены Нюрнбергский трибунал и Токийский трибунал. Были заложены основы новых международных отношений и кодексы поведения, которым следуют люди сегодня, были созданы именно тогда. Сюда входят Женевская конвенция (1949), Конвенция о геноциде (1948), а также Всемирная декларация прав человека и Бреттенвудские соглашения с их попыткой урегулировать мировые финансы.
Советский Союз был частью этого процесса. Он был приводным ремнем поражения фашистов и их союзников. Именно на долю этой страны приходится 75% фашистских потерь. Если кто-то хочет проводить в жизнь положения декларации, они должны быть готовы к тому, что им будет дан отпор. Если они хотят бередить раны, пусть делают это, но пусть боятся последствий.
Есть события в жизни любого мужчины и женщины, которые определяют все их существование. Они придают жизни значение и являются моральным компасом, так сказать. В их число входит победа 45-го года. Нельзя делить победу. Она не подлежит переоценке или повторным переговорам. Мы не будем пассивно наблюдать за новыми репрессиями против коммунистических партий и запретам на символы «Серпа и молота» на флаге, который был вознесен над Рейхстагом. Мы не допустим поругания могил павших.
Компартия Британии провела демонстрацию у посольства Польши в Лондоне в знак протеста против закона, который запрещает изображение серпа и молота, символов сокрушивших фашизм. Мы не будем праздно стоять, пока дни памяти холокоста меняются на дни «жертв коммунизма». Мы против изменения школьных программ, их искажения, когда становится неясным, кто и на чьей стороне воевал, и за что умирали наши родные и близкие.
 
Доктор исторических наук, ведущий научный сотрудник Института российской истории Российской академии наук Ю.Н.ЖУКОВ:
– Уже сегодня смешно говорить о том, что мы победили. Важно говорить о том, как мы победили, почему мы победили и не забывать, что не народ вообще сам по себе боролся против захватчиков. Не было такого. Весь народ – и Красная Армия, и те, кто находился в тылу, и те, кто оказался на временно оккупированной территории, уходил в партизаны, воевали за нашу советскую Родину, за первую республику рабочих и крестьян. Они знали, что они защищают. Они защищали, каждый из них, свою власть.
Сегодня пропаганда нынешнего режима обо всем этом умалчивает. Чтобы скрыть свою беспомощность, свое воровство и распродажу страны, они предлагают людям иное. Что якобы и до 22 июня 1941 года и сразу после 9 мая 1945 года страна находилась в жутких сталинских застенках, страдала и истекала кровью в тюрьмах и лагерях. Ни Путин, ни Медведев не хотят признать того, что сегодня в их лагерях, в их тюрьмах народу сидит больше, чем в 37-м году во всем Советском Союзе. Более того, с легкой руки «Мемориала» идет подмена понятий. Не говорится, за что человек сидел, говорится, что его репрессировали. 31 октября минувшего года мне довелось быть в Архангельске. Вечером я посмотрел по телевидению передачу, посвященную этому «мемориальскому» дню. И в Архангельске есть свой «соловецкий камень». Собралось человек 15. Журналист подходит к одному пожилому человеку и говорит: «Что для Вас 31 октября?» И он говорит: «С тех пор, как моего отца за крупную растрату посадили (за крупную растрату – он не стесняясь это говорил), я ненавижу советскую власть и коммунистов». И вот такие вещи сегодня пропагандируются. Невозможно доказать «мемориальцам», что и тогда были бандиты, убийцы, воры, казнокрады, взяточники, были шпионы, были враги, те, кто надевал мундир врага и шел против своей страны. Вот таким образом работает сегодняшняя пропаганда, пытаясь, с одной стороны, фигурою молчания скрыть подлинные события, происходившие накануне войны, во время войны и подменить их своими очередными домыслами. Обратите внимание, что буквально накануне празднования было совершено две идеологических диверсии с легкой руки властей, режима. Во-первых, не оправданные покаяния сначала Путина, потом Медведева за якобы расстрелянных НКВД польских офицеров в Катыни. До сих пор нет ни одного документа, который принял бы нормальный суд нормальной страны. Все, что предлагали в качестве доказательств вины Берия и Сталина, было уже отвергнуто Конституционным судом этого режима, Главной военной прокуратурой этого режима, потому что те бумажки, которые им принесли, не являются доказательством. Тем не менее, продолжается покаяние. Почему? Да очень просто. Северный поток проходит по Балтийскому морю. Он проходит в экономической зоне Польши. Поляки долгое время не давали разрешение на прокладку подводного газопровода. А потом вдруг дали. А наш режим стал посыпать голову пеплом за Катынь, в которой еще не известно кто виноват. Мало этого, выпускают на экран фильм Никиты Михалкова, который обошелся стране в 40 миллионов долларов государственных денег. О чем фильм? Опять же, о войне. Но какой? На фронте уголовники. Разумеется, все отступают. Сознательно такие люди, как Михалков, уходят от другого. Заполярье, там Красная армия отошла примерно на 30-40 километров, чтобы занять линию обороны, удобную для обороны. И с этого рубежа не сдвинулась три года, и с этого рубежа наступала в 44-м году. Об этом, разумеется, фильмы не делают, где можно было бы показать мужество и стойкость красноармейцев начсостава. Ни слова не вспоминают о том, что на Юго-Западном фронте наши войска перешли границу и пошли вглубь Румынии. Только страх обхода вынудил войска отступить. Да, можно говорить об отступлении на центральном участке фронта, но тогда нужно вспомнить героику 16-й армии, которой командовал генерал Лукин. Два месяца эта армия вела бои в районе Смоленска. Дважды полностью погибал кадровый состав армии, дважды его формировали. Отступившая к Москве армия была уже третьего формирования. Не бежали, не сдавались в плен, не попадали в окружение. Два месяца не подпускали врага к Москве. Может быть, именно во многом благодаря этому, Москва и устояла в декабре.
Я об этом говорю только для того, чтобы вы знали – все, что сегодня льется мутным потоком со страниц российских газет, журналов, с экранов телевидения любого канала, это сознательная антигосударственная, антисоветская, антикоммунистическая пропаганда. Режим, который не может создать ничего, пытается оболгать страну, которая сумела за 15-20 лет, включая войну, стать сверхдержавой.
 
 
Доктор исторических наук, руководитель Центра военной истории России Института российской истории Российской академии наук Г.А.КУМАНЕВ:
– По окончании многих коали­ционных войн прошлого, при оценке их хода, уроков и последствий, зачастую на первый план выдвигается вопрос о том, каков был вклад каждой из победивших стран в разгром общего врага. И это далеко не второстепенная тема нередко становилась предметом острых и жарких споров политиков, военных деятелей, дипломатов, публицистов и историков.
Различные позиции в Советском Союзе и на Западе по данной проблеме еще резче обозначились после победы над фашизмом, что нашло отражение в изданной во всех воевавших странах, а также нейтральных государствах обширной военно-исторической литературе.
К сегодняшнему дню она насчитывает сотни тысяч одних только наименований. Во многих таких изданиях с особой настойчивостью читателям навязывается мнение, будто важнейшие сражения Второй мировой войны, Великой Отечественной войны проходили не на советско-германском фронте и исход вооруженного противоборства двух коалиций решался не на суше, а, главным образом, на море и в воздушном пространстве, где вооруженные силы США и Великобритании осуществляли интенсивные боевые действия. Приведем только один характерный в этом отношении пример. Американский генерал Х.Патиссон в предисловии к книге Э.Зимке «От Сталинграда до Берлина» отметил следующее: «Нельзя согласиться, как утверждают постоянно русские, что Красная армия была главным архитектором победы во Второй мировой войне». Сам же автор этой книги без тени смущения заявил, что «вклад Советского Союза в победу в Европе был важным, но не решающим, так как война на Востоке была сухопутной войной только на одном фронте, в то время, как на Западе, союзники воевали на двух сухопутных фронтах, провели кампании в воздухе и на море».
Выдвигая тезис о решающем вкладе США и Великобритании в победу, западные авторы охотно использовали и такой нехитрый прием: о многих битвах и сражениях наших войск и вообще о событиях, происходивших на советско-германском фронте, и в период Дальневосточной кампании Красной армии в их публикациях просто не упоминается или упоминается крайне скупо.
Характерен такой пример. Во время подготовки к очередному юбилею победы в США был создан национальный комитет по празднованию годовщины победы. И вскоре этот комитет с участием историков огромным тиражом подготовил красочный юбилейный буклет. Когда я в составе делегации прибыл в Соединенные Штаты, то каждый из нас получил этот буклет. Стали с ним знакомиться и убедились в том, что советско-германский фронт там присутствует только дважды, это 22 июня 1941 года и 8 мая 1942 года в связи с новым немецким наступлением на восточном фронте. Там была приложена хроника важнейших событий Второй мировой войны, в которой, как оказалось, не нашлось места решающим битвам Второй мировой войны, выигранным Красной армией. Не было там и упоминания о той Дальневосточной кампании Красной армии, в которой на Дальнем Востоке активно участвовали союзные войска. Словом, не там, где сражались и побеждали наши воины, а где-то на другом театре военных действий, на другом каком-то материке решались и решились судьбы Второй мировой войны, судьбы мировой цивилизации.
Что касается суждений по рассматриваемому вопросу некоторых современных отечественных доморощенных публицистов, писателей, историков приверженцев так называемого горбачевского «нового мышления», то за последние десятилетия трактовка ими итогов победы все больше концентрировалась на отрицании значения и решающего вклада СССР в разгром гитлеровского блока, а также на якобы неоправданных огромных потерях Красной армии. Некоторыми нашими ангажированными публицистами, писателями, недобросовестными историками без какой-либо ссылки на правдивые документы приводятся фантастические данные об общих людских потерях СССР и Красной армии, приводятся данные от 30 до 50 миллионов одних только убитых наших солдат. Идет и продолжается, вспыхивая по мере приближения к очередному празднику победы, соревнование, кто больше выдаст на-гора вот этих печальных данных о наших потерях. Подобные домыслы, рассчитанные на доверчивого и малоискушенного читателя, конечно, не выдерживают серьезной и обоснованной критики.
 
И.о. секретаря по идеологической работе ЦК КПБ, депутат Палаты представителей Национального собрания Республики Беларусь, кандидат исторических наук, доцент В.С. ЛЕОНЕНКО:
– Проблема фальсификации советского периода истории и особенно истории Великой Отечественной войны не нова. В ее основе лежали и лежат определенные геополитические интересы. Всем известно, что усилия по искажению итогов Второй мировой войны на Западе предпринимались сразу же после ее окончания. Западным политикам трудно было признать очевидное: именно Советский Союз сыграл решающую роль в разгроме нацистской Германии. Этот факт разрушал политические мифы и стереотипы, которые насаждались в общественном сознании европейцев, не укладывался в «прокрустово ложе» идеологических клише: «все, что делает Запад – правильно и замечательно; все, что делает Советский Союз – разрушительно и плохо», «западная демократия несет людям свободу, коммунизм несет миру угрозу».
Присвоить себе победу полностью было невозможно, потому что было живо поколение, которое являлось непосредственным участником всех событий, перенесло все муки и страдания от нацистского режима и радость своего освобождения советскими воинами. Заметим, что искажения четко определяли положение и место победителей и побежденной стороны. Германия и Советский Союз в общественном сознании разводились по разные стороны. Германия – агрессор, ответственная за развязывание Второй мировой войны, страны антигитлеровской коалиции вместе с СССР принесли освобождение от нацизма, они – победители в войне. И вот внутри антигитлеровской коалиции и предпринимались попытки умалить роль и значение Советского Союза во Второй мировой войне. Со временем стали использоваться более тонкие методы: полуправда, смещение акцентов на незначительные факты и события. Однако сам факт существования Советского Союза как субъекта международных отношений и международной политики, его авторитет и геополитическое влияние в послевоенном мире не оставляли никаких шансов фальсификаторам.
В настоящее время мы наблюдаем качественно иную тенденцию в подходах и оценках исторического периода 30 – 40-х годов ХХ века. Происходит не только отрицание роли СССР в освобождении народов Европы от нацизма, но, наоборот, на него возлагается вина за развязывание войны наряду с Германией. Освободителями человечества уже считаются западные демократии (без упоминания нашей страны). И если ранее в роли фальсификаторов выступали западные историки, политики и военные, то теперь инициаторами выступают представители политических элит постсоветских и постсоциалистических государств.
Совершенно очевидно, что предпринятые попытки заново переписать историю Второй мировой войны имеют под собой идеологические, политические и социальные основания. Представляется, что здесь мы имеем дело с феноменом либерально-националистического реванша, который с принятием на сессии ПА ОБСЕ 3 июля 2009 года. резолюции «Воссоединение разделенной Европы: поощрение прав человека и гражданских свобод в регионе ОБСЕ в ХХI веке» приобрел законченную политическую форму. В данной резолюции либералы попытались покончить с коммунистической идеологией (достаточно почитать то, что рекомендуется членам ОБСЕ). Одновременно новые власти, пришедшие после разрушения СССР и мировой системы социализма, решили свести счеты с бывшим СССР и его правопреемником – Россией.
Следует отметить, что в начале 90-х годов и в Беларуси националистами и поддерживающими их историками предпринимались подобные попытки. Ревизии были подвергнуты две позиции: партизанское движение и деятельность белорусских коллаборационистов. Партизаны стали представляться банальными бандитами, грабившими местное население. Те же, кто сотрудничал с оккупантами, объединяясь под «бела-чырвона-белым» флагом, рисовались истинными патриотами и борцами за «беларускую незалежнасць». Однако никому не удалось навязать белорусскому обществу свои оценки этой страницы нашей истории. Белорусы хорошо помнят, что в период немецкой оккупации в республике были созданы 260 лагерей смерти и 70 еврейских гетто. Только в Тростенце погибло 206,5 тыс. человек. По количеству жертв он стоит после Освенцима, Майданека и Треблинки. На принудительные работы было вывезено 399 374 человека, в их числе 33 244 ребенка.
Белорусский народ восстал против оккупантов. На территории республики действовало 1108 партизанских отрядов, из них 1003 входили в состав 213 бригад, 105 сражались как самостоятельные боевые единицы. В партизанских формированиях сражалось 374 тысяч бойцов. Кроме того, во всех населенных пунктах действовало подполье. Общеизвестна трагическая история Минского подполья. Белорусские подпольщики насчитывали 70 тысяч. Всего за годы войны Беларусь потеряла 2 млн. 200 тысяч человек. Не оценим вклад белорусского народа в Великую Победу. На фронтах войны сражались 1 млн.300 тысяч белорусов и уроженцев республики.
Белорусское общество избежало исторической амнезии. Благодаря политической воле Президента Республики Беларусь А.Г.Лукашенко удалось сформулировать национальную идею, объединяющую граждан страны, восстановить национальные государственные символы, приостановить нравственный распад общества. В нашей республике уважение к ветеранам, забота о них возведены в ранг государственной политики. Патриотизм отнесен к важнейшей духовно-нравственной ценности, которая формирует у молодых людей установку к исполнению гражданского долга во всех сферах общественной и государственной деятельности.
Накануне празднования 65-й годовщины Великой Победы с участием нашего президента А.Г.Лукашенко в Минске был заложен фундамент нового комплекса Музея истории Великой Отечественной войны, который сделает доступным для посетителей огромного количества документов и экспонатов, которые сегодня находятся в хранилищах. Своевременным и полезным для молодых людей является и изучение курса «История Великой Отечественной войны», а также проведение республиканского конкурса творческих работ школьников по ее проблематике, в которых учащиеся искренне стремятся осмыслить суть и дать собственную оценку важнейших событий войны. Огромное эмоциональное воздействие на гостей оказывает восстановленный исторический комплекс «Линия Сталина», где реконструированы события начала войны.
Следует отметить, что Компартия Беларуси проводит целенаправленную работу по патриотическому и гражданскому воспитанию молодежи. Поскольку идеалы, идеологические и нравственные установки партии во многом сопрягаются с политическим и социально-экономическим курсом руководства страны, это дает возможность действовать совместно с органами власти на местах. Белорусские коммунисты участвуют во всех общественно значимых событиях страны. Так, при Минском горисполкоме создана и активно действует Общественная молодежная палата, с которой Минский горком партии очень тесно сотрудничает по многим направлениям общественно-политической деятельности.

Номер газеты: