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

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

Геополитический вывих

В череде событий, которые не назовешь рядовыми, запомнился прошлогодний октябрьский саммит Высшего Евразийского экономического совета. Точнее, тогда в Минске прошли два саммита. Второй — глав государств СНГ — ничего нового не принес, лишь подтвердил рыхлый статус Содружества как общей площадки для встреч руководителей эсэнгэвских стран. Зато первый принял решение разработать договор о Евразийском экономическом союзе (ЕЭС), который должен вступить в силу с 1 января 2015 года. Таким образом была открыта дорога к более тесному объединению стран таможенной «тройки». Среди комментариев, заполонивших СМИ, были не только оптимистичные. Некоторые аналитики склонялись к мысли, что ЕЭС может постичь судьба Союзного государства Беларуси и России. Больше четырнадцати лет прошло с тех пор, когда был заключен договор о его создании, но оно так и не состоялось. О причинах этого геополитического провала участники минских саммитов не упоминали. Хотя уроки его, казалось бы, следовало учесть. Тем более что главная причина неудачи с созданием Союзного государства и развитием интеграции в масштабах СНГ — одна. И ее как шила в мешке не утаишь. В чем убедили и те, октябрьские саммиты, и события, развернувшиеся вокруг них.

Что ныне лежит на весах
За два дня до совещаний на высшем уровне президент Беларуси Александр Лукашенко встретился с руководителями средств массовой информации СНГ. Больше всего, как и ожидалось, интересовали их интеграционные проблемы. «На постсоветском пространстве, — с горечью заметил Лукашенко, — не принято громко заявлять о ценностях, которые объединяют народы наших стран».

Об этих ценностях он напоминал постоянно. О многовековой общей истории и колоссальном, по его выражению, опыте совместной жизни, о богатой, как старался всегда подчеркнуть, советской культуре и великом русском языке — тех духовных скрепах, что сближали нас и роднили. А выступая на пленарном заседании ХV Всемирного конгресса русской прессы, проходившего прошлым летом здесь же, в Минске, назвал главную объединяющую наши народы ценность — стремление к справедливости. То, о котором со свойственной истинному таланту глубиной понимания писал Ф.Достоевский: «Высшая и самая резкая характеристическая черта нашего народа — это чувство справедливости и жажда ее».

Эта особая духовная ценность, подчеркнул Лукашенко, положена в основу белорусской государственности и модели развития. «Мы в Беларуси, — напомнил он, — не смогли и не захотели взять на вооружение рационалистические заповеди индивидуализма, воплощённые в философии свободного рынка, согласно которой выживает сильнейший. В свое время мы отказались от радикальных реформ, потому что они катком прошлись бы по судьбам сотен тысяч людей. И сохранили родство с подлинными духовными ценностями русского мира и русской цивилизации (в широком смысле этого слова), к которым все мы с вами принадлежим».

О главной объединяющей наши народы ценности властители остальных «незалежных» стран СНГ не просто умалчивали. Они поднялись против тех, кто ее отстаивал, причем не только внутри своих стран. Российские «реформаторы» пошли в атаку на Белоруссию, которая не растоптала принципы социальной справедливости: не распродала общее достояние нуворишам и не допустила кричащего разрыва в доходах людей. И, ломая, как требовал Запад, односторонним взвинчиванием цен на газ и нефть фундамент Союзного с ней государства — равные экономические условия, предусмотренные договором, оправдывали свои действия необходимостью прагматизма и экономии в интересах россиян. Но, как часто бывает, хозяев выдала их пропагандистская челядь. «Надоели спекуляции дружбой народов… Пора отказаться от ссылок на духовное родство — его на рыночные весы не положишь», — изо дня в день вбивали в мозги россиянам кремлевские телерупоры типа Николая Сванидзе.

Истинная причина атак, а заодно и цель «реформаторов» еще ярче высветились к четвертому году первого путинского президентства. Тогда в Минске, на семинаре руководящих работников республиканских и местных органов управления, Лукашенко определил основные черты белорусской государственной идеологии. Доминирующий в мире либерализм он назвал исключительно агрессивной идеологией социального неравенства людей, наживы и индивидуализма. Отметив, что провал социалистического эксперимента не означает смерти коммунистических идей, которые, по его убеждению, «будут живы, пока жив человек, поскольку в их основе — стремление к равенству и социальной справедливости», он заявил: «Коммунистическая идеология, основанная на идеологии марксистско-ленинской, должна стать одной из главных составляющих белорусской государственной идеологии».

Вот тогда-то российские «реформаторы» и перешли от атак к войне против Белоруссии — экономической, торговой, пропагандистской: в лютые морозы стали отключать ей газ, еще сильнее душить удавкой цен, перекрывать дорогу ее продуктам, травить разнузданной клеветой, как самого злейшего врага России. За что мстят, понимали не только белорусы, но и россияне, возмущение которых не могли скрыть даже сторонники режима, обласканные Кремлем.

«Лукашенко имеет в России бешеную популярность, несмотря на то, что против него практически во всех электронных СМИ, особенно в государственных, объявлена вендетта», — признал весной 2007 года в интервью сетевому журналу «Полярная звезда» бывший лидер «Конгресса русских общин», ныне вице-премьер Дмитрий Рогозин. И, заявив, что не существует неодолимых препятствий для завершения процесса создания Союзного государства Белоруссии и России, добавил: «Я полагаю, что главной проблемой в этом процессе является наша российская бюрократия, которая боится, что феномен Лукашенко может негативно отразиться на ее судьбе… Ежели объединительный процесс завершится, нынешний белорусский президент может легко стать лидером Союзного государства. И уж он-то не станет миндальничать с публикой типа Грефа, Кудрина и того же Чубайса. Не исключаю, что иным из этой команды придется обучаться швейному мастерству в какой-нибудь краснокаменской колонии. Вот и вся проблема, почему Союзное государство Белоруссии и России не движется ни туда ни сюда. Да ещё и сопровождается постоянными скандалами...»

В «скандалах» этих и конфликтах от 60 до 90 процентов россиян, как показывали опросы, всегда становились на сторону Лукашенко. Народ не хотел предавать духовное родство с белорусами. Родство, которое с приходом Путина на президентский пост почти десять лет подрывала его «реформаторская» команда, отвергшая главную ценность, объединяющую братские наши республики. Из-за устроенных ею завалов — и экономических, и пропагандистских, и юридических в виде пресловутых скобок, за которые Путин настоял вынести вопросы о принятии Конституционного акта Союзного государства, проведении референдума в Белоруссии и России, создании полноправных наднациональных органов управления — так и не удалось завершить объединительный процесс.

В Кремле не любят об этом вспоминать. Обходят молчанием «неудобное» обстоятельство и многие авторитеты в сфере геополитики, порой даже окрашенные в левопатриотический цвет: не время, мол, налицо перемены, сближаются Казахстан, Белоруссия и Россия. Да и Путин уже стал другим, развернулся к интеграции в СНГ.

Свет в кремлевском тоннеле?
Перемены и впрямь заметны. Вовсю идет подготовка договора о ЕЭС. В Союзном государстве установлены равные цены на газ — и уже иным, более близким к единому, стало экономическое пространство. Нет торговых, пропагандистских, психологических войн, крепнут двусторонние связи. Изменился и Путин. Раньше, оправдывая повышение цены на газ для Белоруссии, он утверждал: «Это способствует нашей интеграции». А сейчас, когда российская сторона ввела на продажу его для белорусов понижающий интеграционный коэффициент, признал, что интеграции способствуют снижение, выравнивание цен. И теми односторонними их повышениями Кремль, значит, разваливал экономический фундамент Союзного государства. Раньше он не раз обвинял в нежелании объединяться с Россией Александра Лукашенко. А сейчас называет его самым последовательным и верным сторонником объединения.

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

После таких перемен, казалось бы, только и остаётся поверить, что Путин, как заговорили политики и эксперты, стал собирателем земель разорванной на части державы. И будет идти вперёд, развивать интеграцию на самом продвинутом направлении. Таким направлением, бесспорно, является достройка Союзного государства. Здесь куда более высокий, чем в таможенной «троице», уровень интеграции. И, что особенно важно, в Союзном договоре Белоруссии и России поставлена цель не просто экономического, как в договоре о ЕЭС, сближения его участников, а восстановления на постсоветском пространстве полноценного государства из двух братских республик. Как стержня, ядра, к которому присоединились бы другие страны СНГ.

Насколько близка душе их народов такая цель, все увидели сразу же после заключения Союзного договора. «Правда» уже писала об этом. Напомню: за то, чтобы присоединиться к Союзному государству, высказались более 90 процентов жителей Таджикистана, проголосовали большинство депутатов киргизского парламента. С таким же требованием выступили и участники массового митинга в Астане. Оценивая ситуацию, эксперты пришли тогда к выводу: Казахстан войдет в Союзное государство уже через два-три года. По просьбе коммунистического руководства Молдавии Парламентское собрание Союза Белоруссии и России предоставило молдавскому парламенту статус постоянного наблюдателя. Вопросом присоединения к Союзному государству занялся координационный совет в армянском парламенте. Даже Леонид Кучма, тогдашний президент Украины, признанный самостийник западного уклона, под напором митингов и собраний в крупнейших её городах сменил позицию. «Покажите нам преимущества Союза — куда мы после этого денемся?» — сказал он на одном из саммитов СНГ.

И, конечно же, Путину, развернувшемуся в последнее время к интеграции с постсоветскими странами, следовало бы сосредоточить усилия на самом желанном для народа направлении. Тем более что уникальный шанс восстановить державу российские «реформаторы» загубили под его руководством, подменив создание Союзного государства проектами других объединений — сначала Таможенного, а затем Евразийского экономического союза. О том, что под новыми интеграционными вывесками совершается отступление, бросок назад, много раз говорил Лукашенко. «Вместо того чтобы создавать Таможенный союз, нам просто надо было сделать Союз. Потому что проект Союзного государства был очень продвинутым направлением, — пояснил он на встрече с российскими журналистами. — И было бы логично к Союзному государству, к тому, что мы уже наработали и чего достигли, подтянуть Казахстан и другие государства. Но, вместо того чтобы двигаться по накатанной колее и, основываясь на том, чего достигли в Союзе Беларуси с Россией, подтягивать к этому другие государства, делать более привлекательным наш Союз, мы занялись иными проектами».

Этот бросок назад совершался под мощным пропагандистским прикрытием. Создание Таможенного союза и ЕЭС прокремлевская политическая элита преподнесла как прорыв в будущее. А «заморозку» строительства Союзного государства, которое стало бы ядром, объединяющим разрушенную державу, — как естественное, закономерное явление, вызванное объективным обстоятельством: слишком сложной ситуацией, которая создалась после развала страны на независимые республики.

Историю не обманешь
Увы! За этими доводами скрывался обычный обман. Куда более сложной была ситуация после распада Российской империи. Множество «самостийных» государств, интервенция Антанты и ее союзников: на Советскую Россию навалились 14 стран — от США до Великобритании, Франции и Японии. Но даже в тех немыслимо трудных условиях, вышвырнув интервентов, большевики восстановили огромную державу.

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

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

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

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

Благо, в раскрутке этой идеи им помогает Запад с его нервозной реакцией на любые шаги российского руководства к сближению с соседями. Как, например, нашумевшее заявление бывшего госсекретаря США Хиллари Клинтон: «Путин создает новую версию Советского Союза. Назовут это Таможенным союзом, или Евразийским союзом, или как-нибудь в этом роде, не будем обманываться. Все мы знаем, каковы реальные цели, и нужно найти эффективные пути замедлить или предотвратить их воплощение». После такого заявления да ещё и ответа Путина на выпад американской госсекретарши — «никакими окриками и одергиваниями интеграция на постсоветском пространстве остановлена быть не может» — многие россияне, естественно, призадумались: а не осуществляет ли он и вправду пугающие Запад планы восстановления великой державы.

«Дайте Родину мою!»
Надежду на это, а кое у кого — и уверенность, подкрепляли эмоциональные патриотические порывы Путина. Вроде его обращения к многотысячной толпе своих сторонников на Манежной площади, когда, призывая любить Россию, процитировал он проникновенные строки Сергея Есенина:

Если скажет (у Есенина: крикнет. — О.С.) рать святая:
«Кинь ты Русь, живи в раю!»
Я скажу: «Не надо рая,
Дайте Родину мою!»

Какую Родину — Есенин знал точно. После поездки в США, душой отвергнув разлагающий Запад дух чистогана («Вот она — мировая биржа, вот они — подлецы всех стран»), он писал:

Эти люди — гнилая рыба,
Вся Америка — жадная пасть.
Но Россия — вот это глыба!
Лишь бы только —
Советская власть.

О духовной присяге и верности Есенина Советской России, жизнеустройство которой отвечало высшей и самой характерной черте ее народа — чувству справедливости, Путин умолчал. Потому что ему такая Россия — а это был Советский Союз — чужда, как и остальным, кроме Лукашенко, правителям эсэнгэвских стран. В этом довелось убедиться и во время того октябрьского саммита Высшего Евразийского экономического совета в Минске. «Премьер-министр Турции Эрдоган обратился ко мне: нельзя ли Турцию принять в Таможенный союз?» — сообщил на заседании совета президент Казахстана Нурсултан Назарбаев. И, предложив: «Может быть, принять», пояснил для чего. «Куда на Запад ни поедешь, сразу задают вопрос: вы создаёте Советский Союз или что-то там создаете под Россию? И приходится объяснять, что ничего подобного нет. Турция — большая страна, примем ее — и вопросы закончатся».

Как велики должны быть неприятие советского прошлого и пресмыкательство перед Западом, чтобы дойти до столь унизительного способа оправдания — за что? — за попытку углубить экономическую интеграцию с братскими республиками, которые входили в единое государство! И какой изощрённой должна быть хитрость, чтобы рыхлой «глобальной интеграцией» прикрыть отказ от воссоздания разрушенной державы. Своего лукавого коллегу поддержал и Путин, добавив, что присоединиться к Таможенному союзу хотела бы также Индия. Тогда уж, понятно каждому, вопросы: «Вы создаете Советский Союз или что-то там под Россию?» — точно должны «закончиться».

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

Чем же не импонировало оно Путину? Добровольностью союза наций, который был основан на ясном сознании братского единства, на равноправии? И почему, вопреки этому демократическому принципу, он предложил ввести Белоруссию в состав России? «Такого не предлагал даже Сталин, которого «демократы» считают деспотом и диктатором», — заметил тогда Лукашенко. Что предложение это нереально и заведомо неприемлемо, к тому же ставит крест на возможности воссоединения в новый Союз других постсоветских республик, в Кремле, конечно же, понимали. Но, заявив себя сторонниками «самого радикального объединительного процесса», обвинили в срыве его Лукашенко. И, прикрываясь этим «веским обоснованием», стали мстить Белоруссии — по сути, за принципы справедливости, сохранившиеся в ее укладе.

То, в каких уродливых и жестоких формах велась «холодная война» против Белоруссии и её президента, объясняется лишь одним. Социальная справедливость — категория классовая. И месть российской олигархической власти была классовой местью. Она-то и стала объективным обстоятельством, «заморозившим» строительство Союзного государства. И отнявшим у миллионов людей право вернуть свою общую Родину.

У последней черты
В последнее время процесс государственного объединения России и Белоруссии так и не сдвинулся с места.

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

В такой ситуации программные мысли, высказанные Путиным в Валдайском клубе, должны бы вселить надежду на кардинальные перемены. Да вот «загогулина». Вопрос обретения и укрепления национальной идентичности, который Владимир Владимирович объявил фундаментальным, он намерен решить… на основе отказа от этой идентичности. Потому что национальная идентичность нашего народа, как известно, воплощена в высшей и самой характерной его черте — чувстве и жажде справедливости. Какая же может быть справедливость при капиталистическом укладе, растоптавшем ее и разделившем людей на тех, кто ограбил большинство, жирует за счет труда этого большинства, и всех остальных? Да и национальную идею, которая, как заявил Путин, не развивается по рыночным правилам, российские «реформаторы» вынашивают и разрабатывают на той же, капиталистически-рыночной основе.

Не диво, что рыночный дух торгашества и конкуренции продолжает разобщать и дезинтегрировать, как точно подметил В.Байнев, всех и вся по всем направлениям. Иного и быть не могло. Путин остается в рамках своего буржуазного мировоззрения и вместе со всеми институтами и структурами не устраняет несправедливый социально-общественный строй, а совершенствует его. Результат налицо. Увеличивается разрыв между бедными и богатыми. До 130 выросло число долларовых миллиардеров, 80 из которых живут в Москве и получают сверхприбыли на ограблении окраин. «Образцом» совершенствования стала благотворительность олигархов, заставившая вспомнить убийственно точное замечание Прудона: «Благотворительность — забава грабителей».

Из-за отказа верхов от главной русской ценности — стремления к справедливости — Россия потеряла всё. Прахом пошли надежды на высокую конкурентоспособность при капитализме. Иначе опять-таки не могло быть. Чем достигнута такая конкурентоспособность Запада? Представьте бытовую коллизию. Если бандит ограбил десятки людей и его хозяйство стало богаче, чем у ограбленных, и работает эффективнее, то это не значит, что он выиграл в экономическом соревновании. То, что Запад ограбил третий мир, а затем постсоветские страны и, продолжая грабёж всеми методами, тем самым создал базу для своего ускоренного научно-технического развития, известно всем. Без этого грабежа и хитроумных финансовых насосов, выкачивающих деньги из государств почти всей планеты, он никогда не обеспечил бы себе даже минимальной конкурентоспособности. И Россия, вступившая в капитализм, не имей она природных богатств, опустилась бы после советского времени не в середину, как сейчас, а в хвост полутора сотен стран, барахтающихся со своим капиталистическим укладом на грани от средненького достатка до бедности.

За внутренними проблемами и заботами далеко не все могут увидеть и понять, что российские «реформаторы» уводят от создания Союзного государства. Но то, как отказавшиеся от ценностей русского мира нувориши и политическая элита срастаются с Западом — и духовно, и материально, — видно всем. Тем более что делают они это в открытую, как Дмитрий Медведев, заверивший западных партнеров на первых своих смотринах на Давосском форуме: «Мы одной крови».

Сегодня уже ясно, что при нынешнем буржуазном руководстве России Союзное государство с Белоруссией создано не будет. Для этого нужны другая власть, другой строй. Единственной политической силой, которая неотступно выступала и выступает за создание Союзного государства и восстановление державы, были и остаются коммунисты. «Партия, — записано в программе КПРФ, — борется за воссоздание братского Союза советских народов». Такая задача поставлена в программных документах всех партий, входящих в СКП—КПСС. Решить ее можно только в борьбе за социальную справедливость, которая была основой жизнеустройства в Советском Союзе. А это значит — в классовой борьбе. Иного не дано. Потому что у нынешних буржуазных властителей на постсоветском пространстве самый опасный геополитический вывих: на ценностном уровне.

Автор: 
Олег СТЕПАНЕНКО, «Правда»
Номер газеты: 
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
16 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.