/** * 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); } В. Егорычев: Истина времени не подвластна | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

В. Егорычев: Истина времени не подвластна

Из всей огромной массы человечества ради поднятой темы стоит выделить две группы. Первая: это люди, обладающие незаурядным умом, выдающимися лидерскими и организаторскими способностями и вообще рядом редчайших качеств. А вторая группа – это те, кто ошибочно относит себя к первой… И даже заявляют: «У меня нет мании величия. Великие люди этим не страдают».

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

Скажу тебе: средь выродков земных
В особенности три породки гадки –
Безмозглый шах, скупой богач,
Ученый муж, на деньги падкий.

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

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

Отразилось это и в плане монументальной пропаганды, принятой по инициативе В.И.Ленина вскоре после Октября. Имелось в виду прежде всего увековечение памяти борцов за свободу и справедливость всех времен и народов – от Спартака, Томаса Мора, Степана Разина до Маркса, Энгельса, Чернышевского… Тогда же было принято решение снести памятники в честь царей и их приспешников, не имеющие художественной ценности. Кстати, в Петрограде остались не только Петр I, но и Екатерина II, и Николай I как произведения подлинного искусства. К таковым не относился памятник, установленный в Александровском саду в 1914 году – согласно решению Московской городской думы, по случаю отмеченного недавно 300-летия Дома Романовых. На нем были высечены имена всех царей этой династии, включая здравствовавшего тогда Николая II. Через три года, в феврале 1917-го, династия рухнула. Но, учитывая ограниченные материальные возможности в связи с трудностями времени, решено было этот памятник-обелиск не сносить, а заменить на нем имена царей именами революционных мыслителей, борцов за торжество царства угнетенных.

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

Согласимся: имеет право и точка зрения иного порядка о значимости имен, высеченных на обелиске в 1918 году. Да, если исходить из интересов угнетателей всех времен и народов, их взглядом руководствоваться, то безусловно эти имена вовсе не заслуживают того, чтобы их знали и помнили. Однако во все времена гораздо больше было не угнетателей, а угнетенных. И вот для них-то эти имена должны быть не просто известны, а по-настоящему дороги. А на обелиске значатся следующие по порядку имена – Маркс, Энгельс, Либкнехт, Бебель, Кампанелла, Мелье, Уинстлет, Мор, Сен-Симон, Вальян, Фурье, Жорес, Прудон, Бакунин, Чернышевский, Лавров, Михайловский, Плеханов.

Различны судьбы и жизненные пути этих людей, но все они при жизни подвергались гонениям и лишениям. Более трехсот лет провели в изгнании, в ссылках и тюрьмах эти борцы за справедливость. Правда, некая Галина Ананьина, представленная как историк, в интервью «Российской газете» заявляет: «А если учесть, что на нем (обелиске – В.Е.) высекают имена мало кому известных Мелье и Фурье, то возникает большой диссонанс со здравым смыслом…». Что же, невежества сейчас в избытке, но у «историка» Ананьиной оно «диссонирует» на грани здравого смысла. Свое восхищение Мелье выразили Вольтер и Пушкин. Сегодня немало невежд, не знающих Пушкина. Но разве это повод для ликвидации его памятников?

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

Стоит заметить, что призывы Мелье и его размышления о христианской идее построения «1000-летнего царства угнетенных» во многом схожи с мыслями знаменитого монаха Томмазо Кампанеллы, увековеченного на обелиске рядом с ним. Тридцать три года Кампанелла, страстно мечтавший о «Городе Солнца» для всех, провел в тюрьмах ватиканской инквизиции. Вот ведь как пугали тех, кто жил чужим трудом, даже мечты о справедливом устройстве общества!

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

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

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

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

Тот, то взглядом не проникнет
В толщу трех тысячелетий,
К темноте, как крот, привыкнет,
Век живя на белом свете
.

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

Октябрь 1917-го стал, можно сказать, кульминацией этой борьбы, и обелиск, о котором идет речь, провозгласил связь нашей борьбы за освобождение трудящихся с предшественниками не только у нас, но и в других странах. Имена царей, высеченные на обелиске в 1914 году, – это, согласитесь, были символы общества, где власть богачей противостояла «простому народу». А новые имена – символы борьбы за переустройство общества на справедливой основе. И обратная смена их, понятно, многое означает в нынешней жизни. Символика имен, разделенных резким водоразделом противостояния, принадлежит ведь не только истории. С одной стороны, в мире сегодня звучат, сажем, Фидель Кастро и Уго Чавес, с другой – Буш и Обама… Однако наша Октябрьская революция остается, судя по всему, самым опасным символом для отстаивающих несправедливость. Вот и новоявленные российские властители очень хотят, чтобы она и ее результаты представлялись в максимально черном виде, а еще лучше – чтобы про нее вообще забыли. Нам возразят: Путин вроде бы провозгласил соединение разных времен отечественной истории. Но, оказывается, никаких напоминаний о революции не должно быть возле Кремля! Отсюда же нетерпимость к ленинскому Мавзолею и красному некрополю, как и к обелиску первого года Советской власти. Оппоненты, на выход! Хотя поистине всемирно-историческое, эпохальное значение нашей революции никакому сомнению не подлежит.

В статье «Соединенные линчующие штаты» Марк Твен писал: «Кто же угнетатели? Их немного: король, капиталист и горстка других – надсмотрщиков и подручных. Кто угнетенные? Их множество. Это народы мира: лучшие представители человечества, рабочие люди – те, кто своим трудом добывает хлеб для праздных белоручек». Разве не актуально и сегодня это обстоятельство?

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

Главной чертой современного «царства угнетателей» является замена экономики хрематистикой (с греч. «хрема» – богатство, обогащение). Понятие «хрематистика» в научный оборот первым ввел еще Аристотель в качестве антипода экономики. Если целью экономики является удовлетворение потребностей человка, то целью хрематистики, по Аристотелю, – «сколачивание богатства в торговой деятельности любыми путями до бесконечности…». Сегодня на финансово-валютных рынках прокручивается ежедневно более пяти триллионов долларов! Это треть годового объема мирового торговли. Но только один-два процента валютных операций обслуживают реальные потоки товаров и услуг. Все остальное – аферы, спекуляции и махинации. В общем, все свободно продается и покупается…

Упорно подчеркивается, в том числе по отношению к историческим символам: курс на всемирное восстановление и поддержку в РФ «царства угнетателей», а про справедливость и борьбу за нее предлагается забыть. То есть курс не вперед, а назад! Между тем однозначное осуждение всего, что связано с нашей Великой революцией, стремление очернить ее, демонизировать героев той эпохи или наложить на них табу нисколько не страхует от революций в будущем. Самообман это: закрыть глаза и не извлекать уроков из прошлого. Постыдно прятать, например, ленинский Мавзолей во время нынешних торжеств на Красной площади. Он ведь стал символом не только Великого Октября, но и Великой Победы, поскольку с ним неразрывно связаны два легендарных парада – в ноябре 1941-го и в июне 1945-го. Но самое главное – недопустимо «прятать», что значит для всех нас основатель первого в мире социалистического государства Владимир Ильич Ленин и что достигнуто этим государством за годы существования!

Скажем прямо: прячут прежде всего потому, что видят в тех величайших достижениях живой укор себе. Вспомним, Первая мировая война, а затем иностранные военные интервенции доконали и без того слабую экономику России. В 1920 году объем ее составлял треть от уровня 1913 года. Таков был старт плана ГОЭЛРО. Когда Ленин рассказал английскому писателю Уэллсу о перспективах электрофикации России, знаменитый фантаст признавался: «В какое бы волшебное зеркало я не глядел, я не могу увидеть ту Россию будущего». В брошюре «Россия во мгле», написанной после возвращения из России, ленинскую электрофикацию Уэллс назвал «электрофикацией», а Ленина – «кремлевским мечтателем».

Но, прощаясь с Уэллсом, советский вождь пригласил писателя приехать через 10 лет. И он приехал. План электрофикации был перевыполнен в 5,4 раза, а уровень экономики 1913 года вместо запланированного удвоения превзойден в 5,7 раза! У писателя состоялась беседа со Сталиным, была поездка по Советской стране. И на этот раз после возвращения Уэллс поведал миру о поразительных успехах социалистического строительства в «царстве угнетенных» – на фоне кризиса в странах капиталистического Запада.

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

А что создано за двадцать либерально-рыночных лет? Ельцинско-гайдаровский погром России в десятки раз превысил урон от нашествий Наполеона и Гитлера, вместе взятых. И за этот период либералы даже не смогли восстановить советский уровень экономики. Вот об этом, в сравнении, стоило бы поведать в России на страницах единого учебника истории, а не выплескивать на головы учеников весь антикоммунистический мусор последних 25 лет: «Насильственная коллективизация… Раскулачивание… Сопротивление крестьян… Партийные органы как инструмент сталинской политики [здесь так и просится одно уточнение: а могут ли в принципе любые партийные органы не быть инструментом чьей-то политики? Скажем, инструментом чьей политики являются органы «Единой России»? Хотя, конечно, по мощи их даже и отдаленно нельзя сравнить с органами ВКП(б)…]… Ужесточение цензуры… Массовые политические репрессии…». Ну далее, как говорится, везде. Вот и спрашивается: как господа историки, сотворившие такое, помогают объяснять школьникам РФ, а каким же образом именно в этот период был создан поистине грандиозный экономический базис, который позволил выиграть Великую Отечественную войну и спасти весь мир от нацистской чумы? Из чего это вытекает? Из пресловутых «массовых репрессий»?! Из «насильственных методов индустриализации»? Не ущербна ли подобная «взвешенная концепция»?

О том, что великая память советской эпохи раздражает теперешних правителей, свидетельствует и их намерение ликвидировать исторический мемориальный комплекс возле Кремля. Убрать эти советские захоронения подальше с глаз долой – в деревню Сгонники, в четырех километрах севернее Мытищ. Постыдное, кощунственное намерение!

Захоронения в Кремле совершаются испокон веков. Там покоятся цари и патриархи. Есть старинные могилы и возле храма Василия Блаженного. Во времена Московского государства вдоль Кремлевской стены только между Спасскими и Никольскими воротами располагалось пятнадцать погостов (по числу находившихся там церквей). После сильного пожара в 1493 году, когда сгорели все деревянные сооружения близ Кремля – церкви, хоромы, лавки и избы, Иван III повелел для предохранения впредь Кремля от пожара очистить место у его стены от всех построек на расстоянии 110 саженей. Многим современникам это решение не понравилось.Но вскоре погребения на Красной площади возобновились. Так, в 1552 году царь Иван Грозный, все бояре и приближенные присутствовали на торжественных похоронах юродивого Василия Блаженного на погосте церкви св.Троицы над Кремлевским рвом (ныне на ее месте – Покровский собор, или храм Василия Блаженного). Там же покоится под спудом останки юродивого Иоанна Вологодского и других наших предков. Близ Покровского собора и Спасских ворот совершались казни; у рва хоронили казненных. Близ Константино-Еленинской башни – тогда главной башни Кремля – находилось кладбище на пространстве 8 саженей до 1689 года. А советские захоронения начались по народной инициативе, что называется, снизу. Представители районных военно-революционных комитетов Москвы после подавления юнкерского мятежа в начале ноября 1917 года приняли решение похоронить его жертв у Кремлевской стены.

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

Перед Кремлем тогда сделали две братские могилы. Первая – от Никольских ворот до Сенатской башни, а вторая – от Сенатской башни и почти до Спасских ворот. 10 ноября 1917 года при огромном стечении народа со всей Москвы сюда опустили 240 гробов. На Всероссийском церковном соборе в связи с этим разгорелись страсти. Напомним читателю: Петр I ликвидировал в России институт патриархов, а Советская власть его восстановила. Вновь избранный патриарх Никон в конце концов освятил братские могилы. А к первой годовщине Октябрьской революции В.И.Ленин открыл здесь мемориальную доску работы скульптора С.Т.Коненкова.

Между двумя братскими могилами у подножия Сенатской башни и в Кремлевской стене похоронены:
– выдающиеся деятели Коммунистической партии и Советского государства, в их числе И.В.Сталин, В.М.Молотов, Ф.Э.Дзержинский, Л.И.Брежнев, А.Н.Косыгин;

– прославленные полководцы, маршалы Советского Союза, в том числе единственный четырежды Герой Советского Союза Г.К.Жуков, дважды Герой Советского Союза И.С.Конев, Р.Я. Малиновский, К.К. Рокоссовский, С.К.Тимошенко, И.И.Якубовский;

– всемирно известные ученые, в том числе трижды Герой Социалистического Труда М.В.Келдыш и И.В.Курчатов, дважды Герой Социалистического Труда С.П.Королев;

– легендарные летчики Валерий Чкалов и Анатолий Серов, первый космонавт планеты Ю.А.Гагарин, космонавты В.Н.Волков, В.М.Комавров, В.И.Пацаев;

– первые женщины – Герои Советского Союза М.М.Раскова и П.Д.Осипенко, которые вместе с В.С.Гризодубовой установили мировой рекорд на дальность беспосадочного перелета Москва–Дальний Восток;

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

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

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

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

Но прошли годы. И что же? В Лондоне стоит памятник Оливеру Кромвелю. Сегодня каждый английский школьник скажет: «Кромвель – крупнейшая историческая фигура, гордость британской нации».
То же самое было и во Франции. В 1815 году все 26 лет со дня взятия революционерами Бастилии, включая правление Наполеона, были объявлены пагубными и преступными. Революцию окрестили «заговоров масонов». Ее вождей заклеймили как «тиранов», «узурпаторов» и «цареубийц». Как и в Англии, останки Марата и Мирабо вынесли из пантеона; прах Наполеона уцелел, ибо покоился далеко – на острове Святой Елены. А сегодня имена Марата и Мирабо чтут все просвещенные французы. На надгробье Наполеона, бережно перевезенного в Париж в 1840 году, – постоянно живые цветы. День победы – Французская революция – общенациональный праздник.

Перезахоронение государственных деятелей, заметил профессор Л.Фризман, «ничего не меняет в нашем представлении о них. Оно характеризует лишь тех, кто это сделал. То, что какой-то деятель предан земле в таком-то месте, отражает отношение его современников в момент его смерти. Это уже свершилось, и ничего изменить нельзя… Надо только знать всю правду, обо всем и обо всех».
Уместно вспомнить, что в хрущевские времена из Мавзолея уже вынесли одно тело – Сталина. Несмотря на это, многие люди остались верными своему кумиру и по сей день.

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

Автор: 
Владимир ЕГОРЫЧЕВ
Номер газеты: 

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

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