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

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

Уроки Ленина и XXI век

Ленин и ленинизм. Эти два слова в начале двадцатого века не значились ни в одном словаре. Грянул Октябрь 1917 – и вот уже мир не знает личности, которая была бы более известна, нежели Ленин. Его политический, государственный, моральный гений оказал такое влияние на умы и сердца людей, что его знают во всех уголках мира!

В чем же причина столь огромного влияния Ленина и ленинизма? Есть много причин. Одна из них состоит в том, что ленинизм – это важнейший вклад в науку об обществе. Он анализирует множество явлений, которым другие теории уделяют мало внимания, особенно тем, которые связаны с положением трудового народа. Мировой наукой признано, что социализм в его ленинском варианте явился важнейшей идеологией двадцатого века. Ленинизм складывался в острой конкурентной борьбе с многими политическими движениями и отстоял свое право быть первым!
Широко известно, что Ленин один из самых издаваемых и читаемых авторов в мире и что вокруг него ведутся страстные споры, дискуссии. Все это говорит само за себя. И все же, в чем причина актуальности его мыслей, идей, произведений?
Да, конечно, это был великий ученый. Да конечно, величайший революционер – преданный, мужественный, бесстрашный, каких в истории было мало. Никто из живших на Земле не сделал так много для людей труда, как Ленин. От Ленина трудящиеся получили в наследство Страну Советов. И все же мне думается, что причина его современности, его молодости, актуальности в том, что Ленин так глубоко понял социализм, так вжился в его идею, так почувствовал его, как вживается в свое творчество великий художник. Ленин представлял социализм не только как объективную неизбежность, как выход страны из тупика, как творчество масс, как решение проблем социальной справедливости, как эффективную организацию общественных отношений.
Сегодня над Лениным глумятся вчерашние благополучные студенты, которые без лишнего усердия «проходили» и «сдавали» курс наук; не признанные в советскую пору «гении», только-только начинавшие свои несмелые опыты в искусстве, из всех периодов жизни настоящего гения выбирают его тяжелую болезнь последних лет. Грифов («грефов» и сокуровых) тянет на мертвечину. Они жаждут поставить своим «тельцом» точку в отечественной кинолениниане. Если бы они действительно проходили курс наук, то, по крайней мере, бы знали, что только повторяют тех современников противников Ленина и его партии, которые немало желчи и яда излили на него и когда он был жив, деятелен в «прекрасном и яростном мире», и когда тяжко болел.
Парадоксом нашего времени являются те, кто хулил марксизм. Они принесли ему гораздо меньше вреда, чем те, кто клялся и божился марксизмом. Не потому ли сегодня в Восточной Европе, да и у нас выросло число тех, кто чурается самих слов «социализм», «коммунизм», «ленинизм»!? Им захотелось найти виноватого. Одни указывают на Маркса: «Он, он во всем виноват!» Другие говорят: «Нет, Маркс всего лишь писал книги по коммунизму. Виноват тот, кто претворял эти книги в жизнь. Ленин! Вот истинный виновник всех трагедий». Анти-ленинская пропаганда небывалого размаха способствовала одурачиванию народа. Этот фактор явился элементом антикоммунистической пропаганды. Антикоммунизм был важнейшей составляющей западной идеологии, а необходимый компонент антикоммунизма - дискредитация вождей.
Самое страшное состоит в том, что вследствие разгрома той социальной системы, которая была создана в нашей стране благодаря усилиям таких титанов человечества, как Ленин и Сталин, Россия утратила способность выживать в современных условиях на планете, защищать себя и отстаивать свое историческое достоинство. К этому Запад и стремился. Всегда, особенно с первых дней существования советской системы, утвердившейся под ленинским руководством.
Совершено великое преступление против лучших людей нашей страны. Оно продолжается, поддерживается так называемой интеллектуальной и культурной элитой. В советские годы в жизнь нашей страны была вне​сена устремленность в будущее. Были внесены необыкновенный динамизм, особое историческое напряжение… И это было великим мобилизующим и организую​щим фактором, который определял всю жизнь страны, начиная от высших кругов и кончая низшими», - таков вердикт положению дел, данный А. Зиновьевым в «Правде» за 20-21 января 2004 года.
Сегодня мы удивляемся: мол, смотрите, в иных капиталистических странах социализма-то оказалось больше, чем в социалистических! А удивляться-то не​чему. Как раз в таких капстранах к Марксу и Ленину относятся с большим уважением, чем порой это случается у нас. Да- да, это ведь в социалистической Польше памятник Ленину скинули, а «приютили» его... в капиталистической Италии! Ведь в Италии не оклеивали заборов плакатами с изображением Ленина, не ис​пещряли газетные и журнальные статьи его цитатами, не оглушали население песнями о дорогом Ильиче... Короче, там не пере​кармливали народ словами «Ленин» и «ленинизм», там просто читали гениального мыслителя и брали у него те идеи, которые актуальны сегодня.
Чтобы понять, кем для нас был и остается Ленин, надо перечитать его заново, познакомиться, наконец с ним самим, а не его двойником. Не усвоив уроки прошлого, невозможно найти бу​дущий путь. Надо делать то, чего не делали в советское время: по-настоящему изучать и осмысливать труды Ленина, его опыт создания борьбы за деятельную, боевую партию. Освободиться от мифов и стереотипов, которые не выдержали испытания временем, и бороться за молодежь.
Зададимся вопросом: мог бы настоящий Ленин служить прикрытием для жуликов, мог бы настоящий ленинизм стать идеологическим основанием кровавой диктатуры? Если непредвзято вчитаться в ленинское творческое наследие, то можно убедиться: нет, не мог. Для того, чтобы Ле​ниным прикрывать и покрывать всякое безобразие, надо было из Ленина сотворить «анти-Ленина». Что и было сделано.
Удивительные вещи можно услышать в наше крутое время. Один местный «тутэйшы» политик в пылу полемики назвал Ленина маразматиком. Успокоили его довольно просто, одним вопросом: «А вы смогли бы за всю вашу ставшуюся жизнь переписать, даже ни о чем не задумываясь, 55 ленинских томов, не считая опубликованных сборников его работ?» Историк-профессионал не может руководствоваться эмоциями или наспех подобранными фактами. Он не должен и ограничиваться критикой.
Приходят на память слова из​вестного деятеля освободитель​ного движения в России П.Л. Лаврова: «Если личность, сознающая условия прогресса, ждет сложа руки, чтобы он осуществился сам собою, без всяких усилий с ее стороны, то она есть худший враг прогресса, самое гадкое препят​ствие к сему. Всем жалобщикам о разврате времени, о ничтожестве людей, о застое и ретроградном движении следует поставить во​прос: а вы сами, зрячие среди слепых, здоровые среди боль​ных, что вы сделали, что содействовать прогрессу?».
В сегодняшнем разговоре об истории нужны, на мой взгляд, не эмоции, не отдельные факты и примеры, а целостный анализ исторического процесса в диалек​тическом единстве всех его сторон, объективного и субъективного. Убежден: лишь высокая методоло​гическая культура позволяет все​сторонне, конкретно- исторически рассмотреть изучаемый предмет, проанализировать взятые в совокупности противоречивые тенденции, вскрыть корни явлений. На базе серьезных исторических ис​следований только и можно ярко показать, как жили, трудились, во что верили миллионы людей, как соединялись победы и неудачи, открытия и ошибки...
«Не заноситесь, - обращался Ленин к коммунистам - не чвань​тесь тем, что вы коммунисты. Может быть, коммунисты-то вы и хорошие, но дела не знаете!».
Как часто Ленин сокрушался: «Мы на практическую работу для исполнения насадили коммуни​стов со всеми их прекрасными качествами, но для этой рабо​ты совершенно непригодных». Что, такой подход характеризует «маразматичность» Ильича? Но такой Ленин был не нужен послеленинским партийным руководи​телям.
А ведь эти убийственные для чванливых руководителей слова давно уже были опубликованы в Полном собрании сочинений Ле​нина. Ну и что? Кто его читал? Единицы. Стояли себе на полках 55 ленинских томов и никому не мешали жить. Так давайте же со​вершим первый акт очищения Ле​нина от налипшей на него демагогии. Давайте прочтем хотя бы эту речь его на своем собствен​ном пятидесятилетии. И увидим, что настоящий Ленин - это тот, который предупреждал партию об опасности попасть в положе​ние зазнавшейся партии. Вот та​кого Ленина не стали бы сегодня сбрасывать с пьедестала. И так, шаг за шагом, будем изучать Ленина, настоящего Ленина. Будем счищать с его облика липкие сле​ды демагогов и оборотней, ря​дившихся в одежды из ленинских цитат. Будем помнить и то, что и сегодня нам все еще пытаются навязать представление о Ленине, основанное на перевранных исторических фактах, на пере​дернутых ленинских цитатах. Я давно уже заметил, что есть люди, которые читают Ленина не для выяснения истины, а для по​иска на него улик, так сказать, со​бирают на него «компромат»,
К слову сказать, компромат на Ленина собрать нетрудно: он ведь был живым человеком и, естествен​но, были у него и ошибки, и пере​хлесты, и просчеты, и недостаточно обоснованные решения. Может быть, одним из способов умерщ​вления ленинизма и было превра​щение Ленина в икону, в бога? Ведь в деяния бога обычно не вникают, богу или верят или не верят. Вчера верили, кричали: «Слава!» Сегодня не верят, кричат: «Долой!».
В отдельной публикации невозможно рассказать обо всех фактах надругательства над ленинскими идеями. Но еще об одном из них просто не могу умолчать. Из многочисленных воспоминаний известно, каким обаятельным человеком был Владимир Ильич. Кржижановский писал о «душевной опрятности» Ленина, Горький - о магнетизме, притягивающем к нему людей».
«Необыкновенный народный вождь исключительно благодаря своему интеллекту, чуждый какой бы то ни было рисовки, не поддающийся настроениям, без эффектных пристрастий, но обладающий могучим умением раскрыть сложнейшие идеи в самых простых словах и дать глубокий анализ конкретной обстановки при сочетании проницательной гибкости и дерзновенности ума», - таким увидел, понял и так оценил Ленина легендарный американец Джон Рид. Можно привести и еще многие, многие высказывания достойнейших представителей человечества о поразительной по силе влияния роли Ленина в истории, о редкостных и высоких его человеческих качествах.
Но вот «верные ленинцы» просто сил не жалели, чтобы доказать обратное: дескать, каким же не​приятным человеком был Влади​мир Ильич, каким хвастуном и бах​валом. Когда сегодня перечитываю материалы «застойных» съездов, не могу не удивиться: да как же мы такое терпели. Причем, чем удуш​ливее становилась атмосфера в стране, тем звонче разносились клятвы в верности Ленину. Как же тут винить тех, у кого поневоле происходило отождествление Ле​нина с теми делами, что творились от его имени. Может быть, не все наши выморочные руководители уничтожали Ленина и ленинизм умышленно… Может быть, они просто поняли: тянуться за гением трудно и хлопотно, не лучше ли гения принизить до собственного уровня? И принизили. Сотворили из Ленина такого же пустозвона и хвастуна, какими были сами.
Сегодня, стремясь использо​вать свой час, привлекая к себе внимание наглой беззастенчиво​стью и спекулируя на трудностях, переживаемых ленинизмом, они пытаются низвергнуть все и вся, вносят в умы людей сумятицу и неразбериху, ничего не решая, но и не упуская случая раскритиковать и поставить в неудобное положение друг друга. На наших глазах проис​ходит измельчание национальных лидеров. Куда подевались фигуры, подобные де Голлю, Черчиллю, Сталину, Рузвельту, Кеннеди, кото​рые вели нацию за собой? Лидеры, начиная с Хрущева, который, как подчеркивал В.М. Молотов, «не ра​ботал с Лениным и не вполне пони​мал ленинизм», не вели нацию, а крадучись следовали за ней. У них чувствуется нехватка знаний, фак​тов, широких взглядов, понимания перспективы. Они не способны по​буждать и поднимать свой народ к совершенству, сосредоточить вни​мание наций на будущем. Вместо героев в конце концов появились предатели, приведшие государ​ство к распаду, нации - к девальвации, а народ - к нищете и вымиранию. Все эти партии, союзы общественно-политические движения нуждаются, как в хлебе, в вождях - честных и умных людях, которые выражают их надежды, знают, нужно делать сегодня, куда и как вести завтра. «Ни один класс в истории не достигал господства, если он не выдвигал своих политических вождей, своих передовых представителей, способных орга​низовать движение и руководить им», такова была мысль Ленина.
Однако теперешняя действи​тельность как бы заново беспощадно подтверждает истинность принципиальных выводов В. И. Ленина, заодно укрепляет в оценке его как непревзойденного политика-учёного, политика-организатора, величайшего революционера новейшего времени. Идеологические «блудники» - яковлевы, волкогоновы, афанасьевы и иже с ними, бывшие в КПСС далеко не рядовыми ее членами, оправдывая публичную измену коммунистическим идеалам, в опровержение марксизма-ленинизма варьируют еще бернштейнианские «откры​тия» об «устарелости», «утопично​сти» коммунистических идей, чуж​дости их «естественной» природе человека, прогрессивном перерож​дении капитализма. Но на поверку несостоятельность этих выводов обнаруживается даже при кратком общем анализе.
Все идеалы - и христианские, и буржуазно-демократические, и коммунистические, и любые другие, порождаемые общественным сознанием, всегда опережают действительность, предвосхищают будущее и поэтому носят в определенной мере элемент утопичности, недостижимости на данный момент. Однако это не означает, что общественная практика не может близиться к идеалу. Маркс, Энгельс, Ленин подчеркивали, что коммунистические идеалы не есть открытие, а есть сгусток всего лучшего: передового, гуманного, что выработало человечество. И это действительно так. Что в них противоречит общечеловеческим ценностям? Однако воплощение в жизнь в обществе, расколотом на классы, - дело, по выражению Ленина, «архисложное» и общепланетарное.
Он предупреждал (и в этом был, безусловно, прав), что ком​мунистическое общество не по​явится само по себе, стихийно, не свалится, как манна небес​ная. Оно может быть построено в результате осознанной, целе​направленной воли трудящихся в ожесточенной и длительной борь​бе с эксплуататорскими силами, которые никак не заинтересова​ны в таком обществе. События в мире являются подтверждением этого. Очевидно, что и трудящие​ся постсоциалистических стран, находящиеся ныне в насиль​ственном «дрейфе» к капитализму, все глубже осознают, что они потеряли в результате свержения социалистического строя, кото​рый за 70 лет своего становления (примерно одна сотая процента исторического времени цивилизо​ванного общества) не мог достиг​нуть в полной мере желаемого. Однако при этом вызвал необ​ратимые прогрессивные измене​ния во всех регионах мира, стал реальной альтернативой экс​плуататорским обществам. При всех искажениях и догматизации теоретического наследия Ленина, марксизм-ленинизм демонстри​рует живучесть. Наступает как бы новое его прочтение и видение, глубоко научное и критическое, в условиях мировой конвергенции социализма в капитализм.
В чем видится путь развития и главные смыслы ленинизма - с высоты нашего нынешнего опыта?
Очень схематично их можно выстроить так. В 1899 году Ленин пишет ортодоксально марксист​скую книгу «Развитие капитализ​ма в России». В ней он говорит о неизбежности распада общины, об исчезновении крестьянства с его разделением на буржуазию и пролетариат и о буржуазно-демократическом характере на​зревающей русской революции.
Опыт крестьянских волнений с 1902 года, революция 1905-1907 гг. и первые шаги реформы Сто​лыпина приводят его к принципиально новому видению: крестьянство не просто распалось и даже не просто сохранилось как «класс в себе», но и выступает как носитель большого революционного потенциала. Программный стержень крестьянства - предотвращение раскрестьянивания, кото​рое означает импортируемый с 3апада капитализм.
Капитализм этот - периферийный, он несет России не прогресс, а одичание. Поэтому возможен союз рабочего класса и крестьян​ства. Революцию, которую осуществит этот союз, будет не пред​сказанная Марксом пролетарская революция, устраняющая исчер​павший свою прогрессивную по​тенцию капитализм, а иного типа- предотвращающая установ​ление в стране периферийного капитализма. Выдвижение этой программы означало полный раз​рыв с ортодоксальными маркси​стами (меньшевиками).
Поэтому-то меньшевики ока​зались в союзе с буржуазными ли​бералами и даже в Гражданской войне участвовали в основном на стороне белых. Очень важна и для того времени и сегодня развитая Лениным концепция империа​лизма как нового качества миро​вой капиталистической системы. Маркс в «Капитале» принял аб​страктную модель равномерного распространения капитализма по всему свету. Исчерпание воз​можности развития производи​тельных сил в разных странах мира привело бы в этом случае к мировой пролетарской рево​люции. В ленинской концепции мироустройства эта абстракция преодолена. Мир не становится равномерно капиталистическим, возникает центр из небольшого числа империалистических стран и периферия из колоний и полуколоний, которую этот центр эксплуатирует. В главных чертах этот миропорядок, который мы сегодня называем глобализацией, «золотым миллиардом» и т.д., был верно описан уже Лениным.
Из концепции империализма и периферийного капитализма следует, что на периферии возникает потенциал революций иного типа, нежели в метрополии. Это рево​люции против империалистического угнетения и эксплуатации Они сопрягаются с национально-освободительным движением, так что движущей силой в них становится не только пролетариат, но и широкие союзы, прежде всего - с крестьянами. Уже это создавало основу для того, чтобы преодо​леть важную догму марксизма, согласно которой революция должна начаться в странах само​го развитого капитализма. Меня​лось и само содержание понятия «мировая революция». Ведь, строго говоря, российская рево​люция положила начало именно мировой революции. Она прока​тилась по странам, где проживает большинство человечества. Да, это страны крестьянские - Китай, Индия, Мексика, Индонезия. За​пад этой революции избежал, но ведь не только на Западе живут люди.
Важно не упустить из виду, что Ленину приходилось разрабатывать свое учение в обстанов​ке полного господства понятий и формул марксизма. Требовать их пересмотра было невозмож​но по многим причинам. Отсюда: «марксизм - не догма, а руковод​ство к действию». Поэтому Ленин сознательно снижал оригинальность своих тезисов, представлял их частным развитием положений Маркса.
Представим себе возможность проникнуть в творческую лабора​торию Ленина и увидеть самые главные методологические трудности, которые пришлось ему преодолеть, чтобы прийти к своим выводам. Конечно, трудно говорить за другого. Взяв отдаленно схожие случаи в истории научных революций, я могу предположить следующее. Во-первых, в тот момент было очень трудно отка​заться от картины истории человечества, которая была внедрена в сознание российской интеллигенции системой образования. А в среде левой интеллигенции она была усилена философией Геге​ля и марксизмом. Это- евроцентризм, представление о том, что якобы существует некая «столбо​вая дорога цивилизации» с пра​вильной сменой этапов, форма​ций. Эту дорогу прошел Запад, и другим надо по ней пройти - чем быстрее, тем лучше. Это устой​чивый стереотип. Признать, что Россия - самобытная цивили​зация, что она может нарушить «правильный» ход истории, было для европейски образованного марксиста очень трудным шагом. Это значило внутренне признать правоту славянофилов, которые в среде социал-демократов вы​глядели архаическими реакцио​нерами. Уже сказать, как Ленин, что «Лев Толстой - зеркало рус​ской революции», было страшной ересью. При этом необходимо было не стать диссидентом, изго​ем в среде социал-демократов.
Второе редкое и психологиче​ское качество - такая свобода и ответственность мысли, при ко​торой ты, следуя новому знанию, отказываешься от своих вчераш​них взглядов, которые как раз и создали тебе авторитет, собрали единомышленников и которые, по всем признакам, как раз обещают большой политический успех. Ведь книга «Развитие капитализ​ма в России» была целым собы​тием, а заявленную в ней концеп​цию можно было плодотворно расширять и дорабатывать как в научном, так и в политическом плане. Наконец, требовались большая отвага и самоотвер​женность, чтобы пойти напере​кор уважаемым и даже чтимым авторитетам - и памяти самого Маркса, и Плеханову, и друзьям по социал-демократии.
В своей концепции империа​лизма и теории революции Ле​нин сразу вышел на важнейшие общие закономерности, отве​чающие на критические вопросы многих стран и целых цивилизаций. Это те страны, которые переживали кризис модернизации, находясь на периферии капиталистической системы, В идейном плане ленинизм означал начало современного национальна освободительного движения и крушения колониальной системы.
Особенно это касалось Азии. Ведь до сих пор Восток был лишь объектом международной политики Запада. Роли были четко распределены: «Запад есть 3апад, Восток есть Восток, и с места они не сойдут». В Ленинском представлении мира Азия и Африка выходили на мировую арену как полноправные субъекты политики, как страны назревающих больших революций. Поэтому-то Ленин стал для народов Востока не просто уважаемым политиком, но и символом.

Окончание в следующих номерах.

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