/** * 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); } На перекрестке цивилизаций | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

На перекрестке цивилизаций

У Александра Зиновьева нет плана «обустройства» России. Он не Солженицын! Он не причисляет себя к такого рода умникам. Зиновьев не желает участвовать в «оргии разоблачительства», в которую с головой окунулись журналисты и деятели искусства преимущественно еврейской национальности.

В обществе социальное неравенство возникает из иерархии чинов и должностей (более низкого или высокого положения человека в управленческом аппарате).

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

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

Зиновьев верно говорит, что «коммунистическое общество есть не однопартийное, а беспартийное», ибо почти ни у кого из управленческого аппарата, да и рядовых членов общества не было собственных убеждений.

Тот факт, что коммунисты предали марксизм-ленинизм в критическую минуту, еще раз доказывает правильность мысли Зиновьева, что советское общество было беспартийным.

При Брежневе социализм богател и жирел одновременно (т.е. обогащался и хирел, положительные тенденции сопровождались отрицательными). Такова, по мнению Зиновьева, диалектика жизни.

«Реформаторы» и «демократы» погубили Россию: с падением социалистического строя в СССР развалилась на части великая держава. Эту горькую истину разделяет Зиновьев.

Александру Лукашенко нужно осуществить «контрперестройку» (термин Зиновьева) или войти в «рыночную экономику» Запада – третьего не дано! Если он поставит себе такую цель и начнет воплощать ее в жизнь, он будет прогрессивным политиком. Если же захочет постепенно входить в «рыночную экономику», его сметут, как мусор!

Едва Лукашенко попытался воспрепятствовать бесконтрольному грабежу Беларуси, как страны Запада отлучили его от «демократии», лишили прав законности, несмотря на то, что народ избрал его президентом и доверил свою судьбу.

Государственный «переворот» и ГКЧП спровоцировали Горбачев, Ельцин и западные спецслужбы – такой вырисовывается ситуация со слов Зиновьева. Горбачев, видимо, надеялся разделить власть с Ельциным, но последний – бесцеремонно оттолкнул его. Ловя рыбу в мутной воде, Горбачев сам себя поймал на крючок, который зацепился за штаны на его заднице.

Ельцин установил сталинский «демократический» режим – режим волюнтаризма и произвола, режим господства кучки преступников над массами народа. Но если власть Сталина была воплощением диктатуры пролетариата (пусть и волюнтаристской), то власть Ельцина – это антинародная власть, полуфашистская власть (хоть и в облике «демократии»). К сожалению, Зиновьев не указывает на это внутреннее и коренное различие между властью Сталина и Ельцина, хотя правильно характеризует внешнюю форму обеих диктатур.

Зиновьев пишет о третьей мировой войне, в которой Запад одержал победу. Третья мировая война – это «новая форма войны», в чём он, безусловно, прав.

Зиновьев утверждает, что «путч» 1991 года был сговором между тремя сторонами: Горбачевым, Ельциным и «путчистами». К ним я бы добавил тайного режиссера – западные спецслужбы.

Русские «прошляпили» страну (как выразился Зиновьев), после чего о нравственности разложившегося народа не стоит вести речь! Откуда взяться новой морали и новым представлениям о жизни? Где найти силы для восстановления целостной России? Пожалуй, только в идее гуманной русской цивилизации.

Руководители бывших республик, ныне независимых государств продолжают процесс «разрушения и разграбления своих стран под диктовку Запада, без поддержки которого они давно были бы выброшены на помойку истории». Так не без основания думает Зиновьев.

Зиновьев допускает, что русский народ исчезнет с исторической арены как «великий народ». До чего мы дошли, если лучшие люди страны так думают?!

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

Зиновьев верно говорит, что «социальную основу новой власти образуют преступники, предатели, перевертыши». Почему, спрашивается, российские коммунисты не разоблачают нравственный облик ее представителей, как и тех, кто ей предшествовал – диссидентов и «демократов»?

Зиновьев сожалеет, что писал критические книги о социализме, в глубине души не сомневаясь в его незыблемости в будущем. Если бы он знал, что социализм будет уничтожен в России, он бы не занимался «подрывной» работой. После известных событий он льет крокодильи слезы по погибшей советской стране.

Зиновьев не верил в созидательные силы русского народа в тот момент, когда стал «соучастником беспрецедентного в истории предательства и покрыл себя несмываемым позором на все следующие века».

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

По оценке Зиновьева, разрушительные последствия новой («теплой») войны «уже в десятки раз превзошли потери в войне с Германией в 1941-1945 годах». Не преувеличение ли это? Нет! Новая по форме война отбросила страну на сотни лет назад!

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

Зиновьев трижды прав, говоря: «Сейчас нужна беспощадная, бескомпромиссная ясность мысли в оценке сложившейся ситуации. В стране идет настоящая война, направленная на полный ее разгром и полное разрушение самого народа, а тут бесчисленные трепачи «заполняют» некий вакуум!». Слова Зиновьева призывают к действию ради русского государства!

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

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

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

Зиновьев гордо заявляет: «И только за эту Россию я готов сражаться до последней капли крови, и сегодня – за Россию социалистическую. Россия купцов и монархии мне глубоко чужда». Если уж такой авторитетный интеллектуал, как Зиновьев, выступает за социалистическую Россию, то это есть веский аргумент в пользу программы коммунистов, ставящей своей целью восстановление единой России.

Зиновьев пишет: «Нельзя понять положение в России, игнорируя аспект международный, ибо он стал решающим в судьбе нашей страны». Не свидетельствует ли осторожность Геннадия Зюганова о его желании учитывать международный аспект?

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

Зиновьев справедливо говорит, что «солженицынская концепция сталинского периода является ложной. Это фальсификация истории». Точно сказано!

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

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

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

Что Запад хочет от России? Ответ Зиновьева прост: «Россия нужна Западу не как партнер в дележе мира, а лишь как зона дележа. Русским в планах Запада уготована судьба, аналогичная судьбе незападных народов, то есть, судьба заурядная и позорная для бывшей великой страны и второй сверхдержавы планеты».

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

Оригинально суждение Зиновьева о судьбе цивилизации: «В США не более 10% подлинно дееспособного населения, но этого достаточно, чтобы удерживаться. В России не больше 1% людей способны тянуть цивилизацию». Кто, в таком случае, в прошлые века создавал великую русскую цивилизацию? Не преуменьшает ли Зиновьев творческий потенциал русского народа? Или он ведет речь только о высшем звене управления, не беря в расчет низшую, бытовую основу цивилизации?

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

О судьбе русского народа Зиновьев пишет: «А в далеком будущем, я предполагаю, что русскому народу светит – если слово «светит» здесь уместно – полное исчезновение с исторической арены. Неутешительный прогноз!».

Зиновьев, проживший за границей почти 20 лет, свидетельствует: «На Западе меня потрясло то, что я увидел там то же самое, что и дома. Та же самая государственная бюрократия, власть, идеология, идеологическое оболванивание, то же самое насилие над личностью. Только все во много раз сильнее». Убедительно!

Об идеологических основах западного и советского общества читаем у Зиновьева: «А проиграл коммунизм потому, что его идеология суть идеалистическая, в то время как идеология, выработанная западным послевоенным обществом, - реалистическая, чисто практическая, рассчитанная на низкий интеллектуальный уровень и низменные страсти. Поэтому она и работает. Западная идеология исходит из того, что человек есть гнусная тварь. Каковой он, правду сказать, на самом деле и является. Поэтому западное общество и правовое по своему характеру: оно исходит из предпосылки, что от людей надо защищаться. А коммунизм все хотел втолковать людям: будьте хорошими, - и полагал, что от этого они хорошими и станут. Не стали». Это означает, что Россия не поднимется на ноги, не приобретет былого величия без великих идей, без всечеловеческих идеалов, без стремления народа к справедливой жизни. Россию объединяли высшая идея и государственная власть.

«Без идеологии у российских коммунистов нет никаких перспектив. Старая никуда не годится, а новой идеологии не существует, при таких обстоятельствах нет оснований считать их серьезной общественной политической силой», - заявляет в 1993 году Зиновьев. Так ли это? Быть может, новые коммунисты восстановят единство страны. Однако вопрос о «новой идеологии» для коммунистов до сих пор остаётся открытым. Над разработкой этой «новой идеологии» ещё придётся поработать.

Зиновьев указывает на ненаучный характер термина «демократия»: «…в западной идеологии, в пропаганде путём видения и идеализации привлекательных частностей западной государственности создан идеологический миф о демократии. Его и навязывают другим народам».

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

Продолжение в следующем номере газете

Автор: 
Виталий РОДИОНОВ, член Союза писателей и Союза композиторов Беларуси
Номер газеты: 

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

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
1 + 6 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.