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

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

Правда истории – правда жизни

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

Однако наша история не исключение, а наиболее яркое выражение общего правила. Если сравнить два учебника по истории любой европейской страны – один, написанный в начале ХХ века, а другой – столетием позже, – то сложится впечатление, что читаешь об историях разных стран… Но главное, что отличает изменения в восприятии отечественной истории от того, как это происходит в других странах, – мощная негативистская струя в её интерпретации. Проще говоря, всякий её пересмотр сопровождается её очевидным уничтожением. В этом видении Запад провозглашается или подразумевается нормой, а Россия – нарушением, дефектом нормальности. Следовательно, делается вывод, чтобы стать успешной страной, России и русским (постсоветским странам и народам тоже) надо отказаться от собственной идентичности, сменить цивилизационный код. Однако для самого Запада европейскость России отнюдь не аксиоматична для российской интеллигенции. Наоборот, для элитарного и массового сознания Запада sinequanon именно азиатский, а не европейский характер России…

Надо избавиться от полонившего нашу культуру гнетущего комплекса неполноценности и увидеть очевидное: история России – одна из самых успешных среди историй многих стран и народов…

Запад – лишь малая часть современного мира, а его лидерство в человеческом сообществе – не более чем кратковременный исторический эпизод.

***

Грандиозные успехи и достижения русских и России обеспечены в сжатые сроки и оплачены высокой ценой, но, делая поправку на масштаб, время, сложность задач и агрессивный внешний контекст, вряд ли более высокой, чем аналогичные достижения Запада. Упоминание о «цене» здесь неслучайно. Даже позитивный взгляд на русскую историю указывает, что оборотной стороной её успехов была непропорционально высокая человеческая цена. Что уж говорить о «чёрной легенде», где наше прошлое предстаёт нескончаемой чередой катастроф и кровавых преступлений с миллионами жертв!.. Однако представление об имманентныхрусской истории жестокости и варварства вдребезги разбивается при её сравнении с историей Запада.

Начнём с Ивана Грозного, чьё прозвище на иностранные языки переводится как «Ужасный», хотя семантические значения этих слов совсем не близки. Так вот, этот царь казнил около четырёх тысяч человек, а его английская современница, «пошлая девица» Елизавета I, –89 тысяч своих компатриотов. И что же? Один монарх вошёл в историю символом жестокости, а другой считается величайшим государственным деятелем Британии. Разорение Иваном VI Новгорода Великого выглядит детской шалостью на фоне альбигонских войн, когда крестоносцы вырезали больше половины населения Южной Франции. Потери России в Смутное время рубежа XVIи XVII веков составили, по некоторым оценкам, до четверти населения. Тридцатилетняя война стоила Германии не меньше половины населения… Жертвами революции и Гражданской войны в России стали 16 млн. человек – цифра колоссальная и беспримерная. Но в отношении к общей численности населения Франция в эпоху своей Великой революции понесла потери больше, чем Россия, или, в случае минимальных оценок, сопоставимые с российскими. Не говорю уже о Германии, цена капиталистической революции (так нередко называют Тридцатилетнюю войну) в которой оказалась ещё выше (См.: Есть ли у нас будущее? – «Литературная газета», 2008. 0 11-17 июня).

Социальная и антропологическая цена советской коллективизации сравнима с огораживаниями, массовыми захватами общинных крестьянских земель в Англии. 72 тысячи бродяг и нищих, повешенных в Англии первой половины XVI века; массовая высылка английских крестьян, ставших бродягами, на галеры; изгнание 15 тысяч крестьян из графства Сазерленд (в XIX веке, и это лишь один эпизод) и многие другие вещи из того же ряда были ничем не краше и не гуманнее высылки кулаков в СССР 1930-х годах. А доля жертв в общей численности населения в советском и в английском случаях сопоставима.Такова была страшная цена, заплаченная за модернизацию, причём европейская цена вряд ли существенно ниже российской.

Ещё один жупел – сталинские репрессии, подлинные масштабы которых значительно меньше оценок, ставших общим местом и составляющих предмет тщательно культивируемого мифа. Какова же реальность? В общей сложности с 1930 по 1953 год через лагеря и колонии прошли 18,3 млн. человек, то есть ежегодно в местах заключения в среднем находилось около 1,5 млн. человек (когда больше, когда меньше). Для сравнения: в демократической России конца 1990-х годах насчитывалось почти столько же заключённых при меньшей численности населения страны; сейчас – 890 тысяч человек. Собственно «политики», то есть осуждённые за контрреволюционные преступления, в общей численности зэков сталинских лагерей составляли 20,2 % (3,7 млн.). Из них были приговорены к расстрелу 786 тысяч человек. Что и говорить, очень много. Однако это равно суммарной статистике убийств (без умерших от ран и пропавших без вести) в России в течение последних пятнадцати лет.

Даже в праведном негодовании не стоит изображать Сталина хуже, чем он был. В нашей истории хватало подлинной крови, но, в общем, она была ничуть не более кровавой, чем история многих европейских стран и народов. Отличие от Европы в данном случае состоит в следующем. Там «хвост рубили по частям»: процесс модернизации, включая раскрестьянивание, занял десятилетия и даже столетия, а в России его отрубили сразу. Наши основные потери от и вследствие модернизации сконцентрировались по времени, уложились в какие-то 30-40 лет ХХ века. Форсированный и жестокий характер модернизации (а где она была мягкой и гуманной?), хронологически совпавшей с Великой Отечественной войной, стал причиной беспрецедентного социального и морально-психологического стресса, вызвал русский этнический надлом. Ведь главной человеческой силой модернизации и костяком вооружённых сил империи были русские, на которых и без того традиционно падала непропорционально высокая социальная нагрузка…

Поэтому самое парадоксальное и потрясающее в русском успехе то, что он был достигнут не благодаря, а вопреки обстоятельствам – вопреки природно-климатическим и геополитическим факторам. Рождение мощного государства в северных евразийских пустынях выглядело вызовом здравому смыслу и самой человеческой природе… (Там же).

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

На просторах России стали понимать: настоящий правитель не тот, который сидит в царском кресле, а тот, кто сажает в него. Из интервью бывшего замминистра энергетики РФ В. Милова следует, что все члены путинского правительства проходили в 2 000 году собеседование у… миллиардера Абрамовича. Тот из кандидатов в министры, кто посчитал это унизительным или оскорбительным для себя, немедленно вылетал из колоды претендентов.

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

Обратимся к сочинской декларации, принятой в 2008 году по итогам российско-американских переговоров. На встречу с журналистами, слетевшимися в Бочаров Ручей, Путин вышел в костюме колониального покроя. Однако шапка явно была не по Сеньке. Где в этом документе твёрдая, непреклонная решимость Кремля оказывать сопротивление наступлению НАТО?

Вдумаемся в содержание преамбулы: «Ссылаясь на наше Совместное заявление от 13 ноября 2001 г. о новых отношениях между Россией и США, а также Совместную декларацию от 24 мая 2002 г., мы вновь подтверждаем, что эра, когда России и США рассматривали друг друга как врага или как стратегическую угрозу, закончилась».
Блок НАТО поглотил за минувшее время целый ряд бывших союзников России и вплотную приблизился к нашим границам, а декларация переполнена политлирикой: «Мы отвергаем мышление по принципу «игры с нулевой суммой» времён «холодной войны», когда «то, что было хорошо для России, было плохо для Америки» и наоборот. Напротив, мы полны решимости работать вместе, а также с другими государствами для решения задач, связанных с глобальными вызовамиXXI века, переводя российско-американские отношения из состояния стратегического соперничества в стратегическое партнёрство.
Нагоняющие туман выкрутасы дипломатического языка касательно размещения ПРО не могут не вызвать восхищения (См.: Иван Болтовский. Российский спрут. – «Правда», 2008. – 10-16 июня).

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

Американцы ждут не дождутся, когда орбитальная космическая система радиолокационной разведки ФРГ заработает на полную мощь. Спутниковая группировка США самостоятельно сегодня не в силах обеспечить постоянное наблюдение за интересующими её объектами на Земле. Эта задача решается с помощью союзников по НАТО и России, у которой нет спутников, подобных немецким, способным давать изображение с разрешением 0,7 метра при любых освещении и метеоусловиях. Оно нам надо? Научно-производственное предприятие ОАО «Информационные спутниковые системы» собирается использовать в изготовлении спутников многофункциональные французские платформы, что означает технологическое сращивание нашей «оболочки» с натовской. Так происходит «смягчение российских озабоченностей» на деле, в соответствии с тем, что сказано в сочинской декларации. Читатель вправе скорректировать вывод, но сам факт чего стоит.

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

С тела государства содран защитный правовой покров – отсюда его летальная восприимчивость к любой заразе извне. Действие инфекции усиливается с тем, что коррупционная вертикаль совпала с властной, пустившей глубокие корни в самый доходный бизнес, который является государствообразующим.
В. Милов, прошедший путь в органах исполнительной власти от ведущего специалиста Федеральной энергетической комиссии до замминистра энергетики в 2 000 году полагает, что «взятки и слияние чиновников с бизнесом стали нормой на всех уровнях власти», в результате чего сложилась «криминальная система управления страной». Уши её торчат повсюду. Наружу они высовываются при «выводе важных активов из государственной собственности под контроль частных лиц, выкупе собственности у олигархов по баснословным ценам за государственный счёт (Абрамович взял «Сибнефть» за 100 млн. долл., а продал за 13,7 млрд. – И.Б.), установлении монополии друзей президента Путина на экспорт российской нефти (Там же).

Непрозрачность многомиллиардной собственности, которая отчего-то не тревожит ни президента, ни правительство, ни законодателей, порождает мягко говоря, непонятки, которые тянут на сотни миллионов долларов. Круговая умиротворённость властей не может не беспокоить. Особенно, когда недоуменные вопросы обращены к такому гиганту, как «Газпром».

Чего ждать от власти, находящейся под внешним управлением и кормящейся соками спекулятивного бизнеса, ставшего питательной почвой коррупции и криминалитета? Эта язва своими размерами поражает всякое воображение. Говоря о качестве российского предпринимательства, профессор РГТЭУ М. Мусин привёл статистику выявленных сотрудниками университета, хищений, составивших 15,5 триллиона рублей, «которые были выведены по фиктивным договорам в теневой сектор экономики всего за несколько последних лет. В эту цифру входят и суммы откатов, которые получили чиновники, покрывая незаконный бизнес или откусывая куски от бюджетного пирога». Власть опирается прежде всего на столичных торгашей. Московские фирмы «отмывают» 10 % ВВП из ежегодно расхищаемых его 27 %. «Можно поименно указать, – заявляет Мусин, – около 300 тысяч московских компаний, руководители которых по закону должны провести ближайшие 5-10 лет в местах не столь отдалённых. А они продолжают воровать у страны немалые деньги» (Там же).

И если «элита» всё-таки помнит о бренности сущего и держит это в головах, то для неё было бы естественно подумать, что она после себя оставит, с каким именем сойдёт под «вечны своды», не настал ли час для покаяния…

Сегодня в обществе и элитах оформилась потребность в стабильности, нормальности, возвращении государства и чётких правил игры, то есть консервативное, антиреволюционное настроение. Революционный маятник от точки «Хаос» движется к точке нового Космоса-порядка. Ergo революция завершилась или находится в нисходящей фазе. По крайней мере на первых взгляд дело выглядит таким образом. Однако, как говорил герой популярного советского фильма, «меня терзают смутные сомнения…». Если ситуация действительно столь стабильна и развивается от хорошего к лучшему, почему же неподдельный, экзистенциальный страх у российского правящего класса вызвали «цветные» революции в постсоветском пространстве?.. Активность Кремля в последнее время проникнута стремлением воспрепятствовать именно революционной смене власти. Это хорошо прослеживается во всех сферах деятельности российской власти – политической, организационной, идеологической, культурной и т.д. Создание прокремлёвских молодёжных организаций, стерилизация избирательного процесса, чрезмерное ужесточение антиэкстремистского законодательства, концепция «суверенной демократии», неоправданное репрессирование уличной активности, «приручение» рок-музыкантов и писателей и т.д. – всё это, а также многое другое представляет выстраиваемую властью многоэшелонированную контрреволюционную защиту.

Ясно, что над нашим поколением не одержишь победу: мы сами раздавили фашизм. А вот над теми, чьё сознание ещё подобно воску, верх взять они стремятся, хотят вылепить потребные им бездуховные существа. Ну а без души не будет и народа.

Да, у нас были свои крупные недостатки, бесспорно, но они не носили характера межнациональной вражды, к чему мы пришли сейчас. Это был единый советский народ. И куда я ни приезжал – или на соревнования (волейбол), или в гости, или отдыхать, – в любой республике мне было хорошо, и везде были такие же люди, как я. Для меня люди делятся на порядочных и непорядочных, на злобных и добрых. По душевных качествам делятся люди, а совсем не по национальному признаку.Национальными играми заняты политики, и на этом зарабатывают они себе не только политический капитал, а настоящий капитал, доллары. Это видно зримо.
Не люблю людей, которые получили от Советской власти буквально всё, а теперь кричат: «Распроклятая, трижды распроклятая!». Надо же объективно на всё смотреть. На героев и гениев равняться надо. А когда нам предлагают жит просто телом… «Бери, тут нет большой науки, / бери всё то, что можно взять. / На что же привешены нам руки, / как не на то, чтоб брать, брать, брать». Вот нам предлагают это…

Верно, многие устали. Порой можно слышать: да отстаньте вы с вашей историей, с вашей победой, с вашей борьбой. Эту, довольно большую числом, часть нашего общества важно подбодрить и оживить. Чтобы пополнить ею ту часть, которая хочет жить по-человечески, а не по-скотски. Вот я свою задачу так и вижу: будить и не давать уснуть. Радостно удивляюсь, что всё больше молодёжи с бόльшей симпатией относятся к нашему прошлому, чем к настоящему. Я даже удивляюсь, насколько едины многие в неприятии чужого образа жизни и чуждой эрзац-культуры. Это обнадёживает, укрепляет уверенность: мы отстоим наши ценности.
Главным источником потенциальной дестабилизации России оказывается правящий класс. Постоянно индуцируя волны нестабильности, он управляет страной в режиме «управляемого хаоса», от которого к хаосу неуправляемому – лишь одни шаг. И шансы, что сей роковой шаг будет сделан, растут. Для массы людей идея революции не табиурована культурно и приемлема психологически. Выльется ли подобная готовность в революционную стихию? Это как раз зависит от того, найдутся ли у революционной пехоты вожаки и сложится ли революционная констелляция, где одним из главных факторов всегда оказывается поведение элит. Готовы ли они консолидированно тушить революционный пожар или же разбегутся в разные стороны при первых искрах? Во всех предшествующих революционных кризисах разбегались, но такое поведение не обречено повторяться. Во-вторых, социальный аспект революционного кризиса будет неразрывно переплетён с национальным, точнее, с русским этническим. Ведь главный социальный вопрос современной России – русский вопрос. Русские составляют социально подавленное и этнически ущемлённое большинство страны, социальное и национальное измерения в данном случае совпадают… (Там же).

***

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

«Литературная газета» и некоторые другие издания пишут об этом постоянно, а толку?!

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

Лично я за свободу и вольнодумство, я сам всегда смеялся над советскими писателями, жутко боявшимися хоть на полградуса отойти от линии партии. Но мы сегодня живём в стране, где свободы слова больше, чем здравого смысла. Ведь казалось бы: езжай за свой счёт и ругай кого хочешь! Однако ж нет: у нас развилось неведомое на Западе «державопоносительство» за казённый счёт. Оказывается, за публичное презрение к Отечеству можно ещё и суточные получать. Сквернослова-то понять можно: сами по себе его книжки там никому не нужны, Запад всегда ценил российского писателя не за талант, а за политическую бодливость. Но как понять государство, которое само финансирует чёрный пиар против себя? И когда же наконец наша продвинутая творческая интеллигенция поймёт, что патриотизм – это всего лишь порядочность по отношению к собственной стране! (См.: Юрий Поляков. Государственная недостаточность. – «Литературная газета», 2004. – 22-28 сентября. – С. 3).
Разве не прав маститый литератор?

В том же ряду стоят изданные за казённый счёт школьные учебники, после которых родная история кажется чем-то постыдным и хочется, как говорится, сыграть за другую команду. С той же государственной недостаточностью в сфере образования связано вытеснение литературы из учебных программ. А ведь именно родное слово, отточенное классиками, закладывает в нас национальный культурный код. Человек, вовремя не прочитавший Пушкина, Толстого, Достоевского, Чехова, Шолохова, будет иметь к России скорее паспортную, нежели духовную принадлежность!

Уверен, читатель дополнит проблему собственными наблюдениями.

Любой человек, интересующийся историей, неизбежно задумывается над природой саморазрушительных процессов в обществе. Когда землетрясение обрушивает колосса на глиняных ногах, это понятно. Но ведь СССР-то рухнул в эпоху «сейсмического» затишья!
Мудрый Спиноза в своё время не только призвал в чрезвычайных ситуациях не плакать, не смеяться, а понимать, но и подсказал, как это делать: «Истинное есть показатель (index) как самого себя, так и ложного».

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

Надо сказать прямо: люди, составляющие нашу отечественную «герострату», принципиально считают российскую цивилизацию низшей по сравнению с Запада и убеждены, что она для своего же блага должна исчезнуть как самодостаточное культурно-историческое целое, став подчинённой частью западного мира… Что лежит в основе этого неприятия, что приводит людей в «герострату» – особенности личности, специфика биографии, особое семейное воспитание или какие-то параисторические энергии, пронизывающие нас, – вопрос сложный, не изученный и даже табуированный. Но такие люди были всегда и везде. Гейне, например, явно предпочитал Францию родной Германии, хотя был выдающимся немецким поэтом.

«Герострата» особенно востребована во времена революционных сломов, ибо, во-первых, любит и умеет ломать, во-вторых, не испытывает к объекту ликвидации никаких привязанностей. А ведь, как известно, даже опытные хирурги стараются не оперировать близких людей: рука может дрогнуть. У настоящего представителя «геростраты» не дрогнет, лишён он и «патриотических предрассудков». Достаточно вспомнить, например, «гарвардских плохишей» периода шоковых реформ, наводнивших коридоры нашей власти своими друзьями – американскими экспертами в штатском. Кстати, национальная принадлежность чаще всего ни при чём. «Герострата» – принципиально внеплеменное явление, как бы кому не хотелось объяснить политические взгляды того или иного деятеля формой его носа или девичьей фамилией его жены.
Но ведь сегодня, скажете вы, питомцев «геростраты» во власти почти не осталось! Согласен: они уже, хочется думать, не определяют нашу внутреннюю и внешнюю политику, хотя нынешняя внутренняя и внешняя политика во многом определяется именно тем, что ни успели наворотить за своё недолгое пребывание у кормила (имеются в виду оба значения этого слова). А вот в информационно-идеологической сфере (прежде всего в электронных СМИ) представители «геростраты» до сих пор занимают ключевые позиции.

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

Например, откровенная антигосударственность, царившая в эфире в 90-е, ныне стала невозможна, и ей на смену в качестве эвфемизма пришёл изобретательный антисоветизм, когда пришёл изобретательный антисоветизм, когда важнейшая, во многом трагическая часть нашей истории изображается исключительно в духе глумливого негатива. В результате старики, честно прожившие жизнь, уходят, чувствуя себя соучастниками некоего страшного преступления. А молодёжь вступает в мир с сознанием несмываемого родового советского греха… Возможно, отпрыск революционного клана Николай Сванидзе именно так и борется со своими семейно-коммунистическими комплексами, но с ними, полагаю, лучше бороться всё-таки в тихом кабинета психоаналитика, а не в телевизионной студии общероссийского канала… (Там же).

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

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

Впрочем, зрителям ответ на этот вопрос давно уже известен. А вот власть, как обманутая жена, всё у нас узнаёт последней…
Итак, на мой взгляд, «государственная недостаточность» в наших головах имеет по преимуществу эфирное происхождение… И мы никогда не выйдем из общенационального кризиса, если телевидение, оставаясь нашим «коллективным бессовестным», будет продолжать клонировать даже не граждан мира, но своего рода граждан магазинов «dutyfree» (Там же).

Оппоненты, на выход!

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

Для либерализма как идеологического прикрытия колониальной экспансии империалистов-глобализаторов российский криминал хорош тем, что он в высшей степени антинационален, как и «либеральный» капитал. Криминал жаждет для своих рук максимальной свободы от вмешательства государства, не считаясь с его интересами. Либерализм даёт её – бери, сколько можешь проглотить!

Либерализаторы используют криминал в роли «пятой колонны», через которую осуществляют свою экспансионистскую политику. Отмечая глубокое родство их душ, профессор МГУ А. Панарин, возглавлявший Центр социально-философских исследований, писал, что «современные либералы ставят интересы «мировой демократии» заведомо выше национальных интересов, суверенитета и целостности России. Но дело не ограничивается одной только идеологической стороной. Речь идёт о конкретных интересах шайки приватизаторов, собственность которых заведомо не является легитимной и функционирует к тому же по контрпродуктивной спекулятивно-ростовщической и компрадорской модели».

Союз либерализма, капитала и криминала – это страшный спрут, который душит Россию. Выход только один: отрубить его ядовитые щупальца, впившиеся в тело нашего народа. В противном случае у нас нет будущего.

Владимир Егорычев, кандидат исторических наук, член Союза писателей Беларуси

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