/** * 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); } ВЛАДИМИР ЕГОРЫЧЕВ – О ФИЛОСОФИИ ЛЕНИНИЗМА | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

ВЛАДИМИР ЕГОРЫЧЕВ – О ФИЛОСОФИИ ЛЕНИНИЗМА


…Никогда власть капитала не могла держаться иначе, как насилием и надругательством, которые даже и в прошедшие времена вызывали возмущение.
В.И. Ленин

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

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

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

Выдающееся достижение марксизма – материалистическое понимание истории – является теорией пролетарской революции, поскольку его сущность состоит в концентрированном идейном выражении того общественного бытия, которое производится пролетариатом и которое определяет всё его бытие. Оно является таковым, поскольку борющийся за освобождение пролетариат обретает в нём своё ясное самосознание. Поэтому величие того или иного пролетарского мыслителя, представителя исторического материализма, измеряется глубиной и широтой, с которой его взгляд охватывает эти проблемы, и, кроме того, – интенсивностью, с которой он в состоянии разглядеть тенденции, ведущие к пролетарской революции, обеспечивающие действенное бытие и ясное сознание рабочего класса. Если следовать этим критериям, Ленин – величайший мыслитель, которого революционное движение пролетариата выдвигало со времён Маркса.

Ленин вовсе не «обобщил», как иногда пишут, какие-то отдельные случаи, имеющие смысл, ограниченный во времени и пространстве. Напротив, действуя как истинный исторический и политический гений, он и теоретически, и исторически разглядел в проблемах развития России (от вопросов возникновения капитализма в условиях полуфеодального абсолютизма до проблем претворения в жизнь социализма в отсталой крестьянской стране) проблемы всей современной ему эпохи. А именно вступление капитализма в его высшую, империалистскую фазу и возможность обратить в пользу пролетариата решающую на этой стадии борьбу между буржуазией и рабочим классом. Взглядом гения Ленин распознал коренную проблему начала XX века – проблему надвигающейся революции.

Актуальность революции – вот коренная идея философии, всего мировидения Ленина. Исторический материализм как теоретическое понятийное выражение освободительной борьбы пролетариата мог быть осознан и сформулирован только тогда, когда его практическая актуальность уже была поставлена на повестку дня истории. Средства для устранения общественного зла не могут быть изобретены, т.е. придуманы каким-нибудь учёным, а должны быть открыты в экономических отношениях эпохи. В тот момент, когда в нищете пролетариата стала явственно различима её революционная сторона, которая и ниспровергнет старое общество. Примечательно замечание К. Маркса в одной из ранних работ, где он назвал пролетариат «материальным оружием» философии, призванным осуществить революцию (К. Маркс и Ф. Энгельс. Соч., Т. 1. – С. 428-429). Утописты охотно разрабатывают планы будущего общественного устройства. Материалистическое понимание истории требует определения той тенденции, которая свойственна уже теперь существующему общественному порядку. Не надо разрисовывать будущее, необходимо изучать настоящее. Таким образом, исторический материализм как теория имеет в качестве своей предпосылки всемирно-историческую актуальность пролетарской революции, являющуюся основой целой эпохи, исходным пунктом её понимания и ядром марксистского учения. Ленин был единственным, кто конкретизировал марксизм, включив в это учение итоги поступательного движения исторического процесса со времени смерти Маркса, приобретшего отныне совершенно практический характер. Вот почему он является единственным по настоящее время теоретиком, выдвинутым освободительной борьбой пролетариата, такого же всемирно-исторического масштаба, как Маркс.

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

Именно об этом писал В.И. Ленин, когда рассматривал понятие «завершение буржуазно-демократической революции»: «Если его употребляют в широком смысле, то под ним разумеют решение объективных исторических задач буржуазной революции, «завершение» её, то есть устранение самой почвы, способной родить буржуазную революцию, завершение всего цикла буржуазных революций. В этом смысле, например, во Франции буржуазно-демократическая революция завершена была лишь 1871 годом (а начата в 1789 г.). Если же употребляют слово в узком смысле, то имеют в виду революцию отдельную, одну из буржуазных революций, одну из «волн», если хотите, которая бьёт старый режим, но не добивает его, не устраняет почвы для следующих буржуазных революций» (Ленин В.И. Полн. собр. соч., Т. 19. – С. 246-247).
При этом не всякая политическая революция является составным элементом социальной революции, а лишь та, которая, говоря словами К. Маркса, имеет «социальною душу», то есть служит развитию социальной революции, и в первую очередь, смене способа производства.

«Напротив, политическая душа революции состоит в стремлении классов, не имеющих политического влияния, уничтожить свою изолированность от государства и от господства. Её точка зрения есть точка зрения государства, абстрактного целого, которое существует только в результате отрыва от действительной жизни и которое немыслимо без организованной противоположности между всеобщей идеей человека и его индивидуальным существованием. Поэтому-то революция с политической душой, в соответствии с ограниченной и раздвоенной природой этой души, организует господствующий слой в обществе за счёт самого общества» (Маркс К., Энгельс Ф. Сочинения. Изд. 2-е. – М., 1995. – Т. 1. – С. 447).

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

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

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

Невозможность экономического врастания капитализма в социализм конкретизировала историческую задачу пролетариата по высвобождению из идеологической общности с другими классами и обретению своего ясного классового сознания. Ленин был первым – и в течение длительного времени единственным – выдающимся руководителем и теоретиком, кто подошёл к этой проблеме с центральной в теоретическом отношении и потому с практически решающей стороны – со стороны организации. Организационный план большевиков вычленял из более или менее хаотичной массы всего рабочего класса группу ясно осознающих свои цели, готовых на любое самопожертвование революционеров – партию. Организационная идея Ленина исходит из факта революции, из факта актуальности революции. Партия как строго централизованная организация наиболее сознательных элементов пролетариата – и только их – мыслится в качестве инструмента классовой борьбы в революционный период. Коммунисты, следовательно, на деле являются самой решительной, всегда побуждающей к движению вперёд частью рабочих партий всех стран. Другими словами, коммунисты представляют собой принявшее зримую форму классовое сознание пролетариата. Русский историк-эмигрант Фёдоров Г.П. писал в 1926 году: «Почвой большевиков была созданная Лениным железная партия. Создание этой партии было свидетельством огромных социальных возможностей. Вся страстная, за столетия скопившаяся политическая ненависть была сконцентрирована в один ударный механизм, бьющий с нечеловеческой силой» (Фёдоров Г.П. Лицо России. – Париж, 1967. – С. 117). Руководящая партия рабочего класса может выполнить своё назначение только в том случае, если в этой борьбе она постоянно находится на один шаг впереди борющихся масс, чтобы быть в состоянии указывать им путь. Но только на один шаг впереди, чтобы оставаться руководителем их борьбы.

Размышляя о современном положении коммунистических партий в России, следует отметить, что причиной краха КПСС был кризис коммунистической идентичности. Он зримо проявился, когда Хрущёв разделил КПСС на две партии – городскую и сельскую. Одновременно руководство сознательно игнорировало и даже поощряло возникновение и растущее значение рабочей аристократии, постоянно присутствующее расхождение непосредственных повседневных интересов между определёнными слоями рабочего класса. Класс, разделённый по местническим, цеховым и прочим признакам, создаёт новую дифференциацию. Слои, поднявшиеся в своём жизненном положении до мелкобуржуазного уровня и занимающие определённые должности в партийной и профсоюзной бюрократии, в местных органах власти, приобретают известное преимущество в формальном образовании, повседневных административных делах перед остальными слоями рабочего класса. Это означает, что их влияние в организациях пролетариата способствует затемнению классового сознания всех рабочих и толкает их в сторону молчаливого союза с буржуазией. В результате пролетариат уже не противостоит в своей враждебности буржуазии как единое целое (См.: Б.К. Кучкин. Философия Ленина. – «Слова и дела», 2016. – № 16 (89). – С. 5).

Не следует забывать слов Ленина о том, что «без ясной и правильной теории не может быть правильной практики». Стихия свободных рыночных отношений, идеологической сердцевиной которой является либерализм, с её возможностью применить – как правило, за солидное вознаграждение – свою энергию и таланты, являлась и является действенным оружием капитала. Советская общественно-политическая система отгораживалась от этой стихии, но вирус мещанства и частнособственнической идеологии проникал через все возможные щели и щёлочки и в наше общество.
Во второй половине 1980-х годов «рыночные» отношения стали громко заявлять о себе и в КПСС. Прием в её ряды в 1969-1970-е годы по 2—-3 миллиона новых членов привеёл к «разжижению» партии, ослаблению её идейных основ. Следствием этих процессов стала горбачёвщина, сползание к правой социал-демократии, оппортунизму и ревизионизму в теории и на практике. Опубликованный в начале августа 1991 года новый проект Программы КПСС был откровенным проявлением ренегатства...

Сегодня основная часть тех, кто восстанавливал партию в начале 1990-х, отошла от активной партийной работы либо ушла из жизни. А это был самый ответственный, самый надёжный партийный кадровый фильтр.

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

При этом далеко не всегда есть основания говорить о позитивном.

Сотрудничество КПРФ с представителями предпринимательского класса со стороны партии базируется не на идейной основе, а на необходимости решать многочисленные материальные проблемы. Продолжает расти себестоимость выборных кампаний и партийных мероприятий. Партия обременена серьёзной недвижимостью в виде помещений для обкомов, горкомов и райкомов. Всё это требует соответствующих средств. Рынок, в том числе и политический, диктует свои правила. Власть делает всё, чтобы поставить КПРФ под свой контроль, заставить конкурировать за второе-третье места с ЛДПР, СР, «Яблоком» и другими партиями, при этом она всеми средствами обеспечивает единоличное, абсолютане лидерство «Единой России».

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

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

Превосходство Ленина в этом ключевом вопросе далеко не исчерпывается громкими словами «политическая гениальность», «практическая принципиальность» и т.п. Это теоретическое превосходство в оценке исторического процесса в целом. В деятельности Ленина на протяжении всей его жизни не было ни одного практического решения, которое не было бы прямым фактическим и логическим следствием его теоретических установок. При этом основную посылку философии Ленина составляет требование конкретного анализа конкретной ситуации. Для марксиста данное требование образует вершину подлинной теории. Тот пункт, где теория действительно осуществляется, где она – именно поэтому претворяется в жизнь, в практику.

Ленин мог руководить людьми и влиять на них потому, что им самим в исключительной мере всецело руководила и владела единая мысль, единственная цель – революция. Именно всеобъемлющая преданность идее обусловила простоту и скромность поведения, отмеченные всеми. Он был образцом аскетизма и скромности, и это долго служило примером для подражания среди членов партии. Без сомнения, Сталин был прав, характеризуя эту черту Ленина как «одну из самых сильных сторон Ленина как нового вождя новых масс» (Сталин И.В. Соч., Т. 6. – С. 55). В поведении Ленина не было никакого корыстного расчёта, бескорыстие глубоко укоренилось в его характере. Твёрдой убеждённости Ленина придавало особую силу полное отсутствие личных притязаний. Искренность простота и прямолинейность Ленина-человека наложили отпечаток и на деятельность Ленина-мыслителя. Английский философ Бертран Рассел, будущий Нобелевский лауреат, встречавшийся с Лениным в 1920 году, подчёркивал: «При встречи с ним, не зная кто он, трудно догадаться, что он наделён огромной властью или вообще в каком-нибудь смысле является знаменитым. Ленин спокоен, чужд всякого страха и совершенно лишён какого-либо своекорыстия. Он олицетворение теории. Чувствуется, что материалистическое понимание истории вошло в его плоть и кровь. Он напоминает профессора желанием сделать свою теорию понятной, а также своей склонностью к разъяснениям» (Рассел Бертран. Практика и теория большевизма. – М.: Наука, 1991. – С. 20-21).

Его исключительная образованность, искусство анализа, его выдающаяся способность выстраивать в определённом порядке факты и доводы проявлялись независимо от тонких нюансов в чередовании света и тени. В философии Ленина всё выражено ясно, чётко, блестяще, решительно. Ленин был не просто теоретиком революции. Теория у него никогда не отрывалась от действия. Он был революционером-практиком, а практика революции не допускает жалости и исключений из правила. Именно это единство теории и практики сделало Ленина личностью сложной и исключительно великой.

Менее всего Владимир Ильич походил на ортодоксального адепта, восторженно внимающего великим учителям. «Великие кажутся нам великими, – записывает он девиз газеты «Парижские Революции (1789-1794), – лишь потому, что мы сами стоим на коленях» (Ленин В.И. Полн. собр. соч., Т. 29. – С. 18).

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

И совсем, казалось, бы крамольное для ортодоксального уха: «Мысль о превращении идеального в реальное глубокá: очень важна для истории. Но и в личной жизни человека видно, что тут много правды… Различие идеального от реального тоже не безусловно»; «…мир не удовлетворяет человека и человек своим действием решает изменить его». Иными словами, «сознание человека не только отражает объективный мир, но и творит его». А посему, пишет Ленин в другом месте, «продолжение дела Гегеля и Маркса должно состоять в диалектической обработке истории человеческой мысли, науки и техники» (Там же, С. 104, 131, 194, 195, 215).

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

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

В самом деле, гордиться было чем. Значительно возросли производство зерна, добыча угля и нефти, выплавка чугуна и стали, протяжённость железных дорог, численность учащихся. Но у цифр есть своя магия. «Если нищему, имеющему три копейки, – иронизировал по этому поводу Ленин, – вы дадите пятачок, увеличение его «имущества» сразу будет «громадное»: на целых 167 %. Но надо сравнивать «не сегодняшний наш пятачок со вчерашним нашим алтыном, а данные, сравнивающие то, чтό мы имеем, с тем чтό необходимо цивилизованному государству…». Иначе это будет «глупой казённой игрой в цифирьки…» (Ленин В.И. Полн. собр. соч., Т. 23. – С. 20, 125, 126). Почитайте вышедшую в 1915 году в Петрограде книгу «Северо-Американские соединённые штаты и Россия». В ней не проценты, а цифры производства на душу населения. Так вот, будучи крупнейшим экспортёром зерна, Россия производила его «на душу» почти вчетверо меньше Канады, втрое меньше Аргентины и вдвое – США. Иными словами, страна вывозила хлеб за счёт недоедания собственного населения. Столь же удручающими были и другие цифры. По общей численности крупного рогатого скота, лошадей и свиней Россия уступала США почти в 5 раз. По добыче угля – более чем в 17 раз, нефти – более чем второе, по выплавке стали – более чем в 7 раз, по протяжённости железных дорог – более чем в 6 раз, по числу учащихся – почти втрое. И всё это без пересчёта на душу населения. Так что с «процветанием» было плохо. Не очень-то получилось и с «благостностью»: столыпинская реформа внесла вопрос о собственности, о земле в каждый крестьянский дом. Смута вошла в каждую семью…

Но может быть, этого не знали в «верхах»? Знали. В апреле 1914 года депутат Думы граф Мусин-Пушкин делился своими наблюдениями с наместником на Кавказе, графом Воронцовым-Дашковым: «Революцию никто не хочет и все её боятся… Но все приходят к убеждению, что она неизбежна, и только гадают, когда она наступит и что послужит толчком» (Аврех А.Я. Царизм и IV Дума. – М., 1981. – С 110).

Весьма информированный и опытный интриган князь М. Андроников докладывал великому князю Николаю Николаевичу: «Конечно, путём репрессий и всякого рода экзекуционных и административных мер удалось загнать в подполье на время глубокое народное недовольство, озлобление, повальную ненависть к правящим, – но разве этим изменяется или улучшается существующее положение вещей?» (Государственная деятельность П.А. Столыпина. Сб. статей. – М., 1994. – С. 141). Вместо решения неотложных проблем российская «элита» втянула страну в разрушительную войну, против которой яростно выступали Ленин и большевики.

***

Среди гениальных черт Ленина особое место занимает величайшее искусство политического стратега и политического тактика. Его дальновидности, проявлявшейся в умении заранее предвидеть ход событий в самых непредсказуемых ситуациях, соответствовала исключительная интуиция, которая подсказывала ему, где, когда и каким образом нанести удар или отступить. В течение примерно 20 лет Ленин разработал концепции и методы борьбы пролетариата за власть в России под руководством опытной и преданной своему делу рабочей партии. Конкретные способы сочетания пропаганды и агитации, проведения забастовок и демонстраций, формирование классовых союзов, укрепления партийной организации, решения вопросов национального самоопределения, анализа внутри- и внешнеполитической ситуации, характеристики уклонов, использования парламентской деятельности, подготовки вооружённого восстания – все эти нововведения, рассматриваемые зачастую как просто «практические» меры, на самом деле представляли решающее теоретическое продвижение по развитию марксистской теории.

Вся жизнь В.И. Ленина – это последовательное применение материалистической диалектики, диалектического метода к основным вопросам общественного развития. Поэтому можно с полным основанием говорить о ленинизме как новой фазе в развитии диалектики. Ленин не только восстановил чистоту марксизма, но и развил марксистское учение, конкретизировал и сделал его более содержательным и зрелым. Ленинизм – это теория исторического материализма, поставленная на повестку дня пролетарской борьбой. «И всё же, хотя Ленин был великим – быть может, величайшим во все времена – революционером, в основе его гения лежало созидательное, а не разрушительное начало, – пишет известный английский историк Эдвард Карр в своей 14-томной работе «История Советской России». – Участие Ленина и большевиков в деле свержения царизма было незначительным. Они не сыграли существенной роли в свержении Временного правительства. С июля 1917 года падение Временного правительства стало неизбежным. То главное, чего достиг Ленин, осуществилось после бескровной победы революции в октябре 1917 года и свидетельствует о великой созидательной роли этого государственного деятеля» (Карр Э. История Советской России. Кн. 1: том 1 и 2. Большевистская революция. 1917-1923. – М.: Прогресс, 1990. – С. 40). Построение первого в истории человечества государства трудового народа – государства рабочих и крестьян, государства социальной справедливости, социалистического государства – есть практическая реализация философии В.И. Ленина, материалистического понимания истории.

Владимир ЕГОРЫЧЕВ, кандидат исторических наук

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

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