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

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

Слово о Карле Марксе

5 мая 1818 года в г.Трир (Германия) родился может быть самый великий в истории планеты Земля человек, имя которого вне всякого сомнения сохранится человечеством в веках.

В чем его величие и почему его будут помнить люди?

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

Имя этому человеку — Карл Маркс.

Говорить о Марксе можно много. Но сегодня хотелось бы затронуть один вопрос - создание им международного союза рабочих и его борьба с буржуазной идеологией и оппортунизмом, поскольку эта проблема сейчас является одной из насущнейших для мирового коммунистического и рабочего движения.

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

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

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

Маркс - создатель I Интернационала.

Величайший мыслитель и новатор в науке, Маркс был не только крупнейшим ученым, но и пламенным борцом, политическим деятелем, организатором и вождем первой пролетарской партии - «Союза коммунистов», которая существовала с 1847 по 1852 год и была предшественницей I Интернационала.

Начало созданию «Международного товарищества рабочих» - I Интернационала было положено 28 сентября 1864 года на международном митинге в Лондоне, подготовленное деятельностью Маркса, Энгельса и их сторонников на протяжении почти двадцати лет.

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

Создание I Интернационала и первые годы его деятельности приходятся на период, начавшийся со времени буржуазной революции во Франции (1789 год) и закончившийся франко-прусской войной (1870 год), был восходящей линией буржуазии. В конце этого периода в Англии, Франции, Германии начала создаваться современная машинная индустрия. Быстро росли фабрики и заводы. Разорялись ремесленники и крестьяне. Происходил рост внутреннего рынка и усиливался обмен между отдельными странами. В орбиту капитализма втягивались колониальные страны. Создавался всемирный рынок, всемирное разделение труда.

В этот же период произошел коренной перелом в транспорте. Изобретенный в 1807 году пароход к 1870 году почти вытеснил парусный флот, а железнодорожная сеть во всем мире с 195 километров в 1835 году выросла до 200000 километров в 1870 году.

Наряду с быстрым ростом промышленного капитализма и его техники росла численность рабочего класса и происходили качественные изменения в нем. У рабочих крепло сознание, что, только соединив свои силы, они смогут осуществить свое дело, дело освобождения пролетариата от капиталистического ига. Усиливались тенденции и стремления к интернациональному объединению. Таким образом, зрела почва для создания международного объединения пролетариата.

Маркс и Энгельс всей своей деятельностью с 1845 по 1864 год старались укрепить и усилить в рабочем классе те тенденции, которые вели пролетариат от экономической борьбы к политической, от стихийного движения к организованному, к созданию пролетарской революционной партии.

Начало 60-х годов XIX века ознаменовалось новым подъемом рабочего движения в Европе. Толчком послужил кризис 1857-1859 гг., который был первым мировым кризисом, охватившим промышленность Англии, Франции и ряда других стран.

Укреплению интернациональных связей между рабочими разных стран способствовал ряд других событий. В их числе – начавшаяся в 1861 году гражданская война в США, всемирная выставка 1862 года и польское восстание 1863 года. Расправа правительства Александра II с польскими революционерами, боровшимися за национальную независимость, вызвала резкий протест в европейских странах со стороны рабочего класса.

В Англии, по инициативе Маркса и Энгельса, их сторонники провели ряд внушительных митингов, на которых рабочие требовали от правительства вмешательства в польские дела; раздавались даже голоса, требовавшие войны против самодержавной России.

28 сентября 1864 года в Лондоне, в зале святого Мартина, прошел большой митинг. Его рганизаторы послали к Марксу Ле-Любе с просьбой принять участие в митинге и прислать на митинг оратора от немецких рабочих.

Маркс в письме от 4 ноября 1864 года писал Энгельсу: «Я направил Эккариуса, который очень удачно справился с делом, а я присутствовал тоже…».

Эккариус накануне выступления имел длительную беседу с Марксом, по сути дела был проинструктирован Марксом по всем основным вопросам своего выступления.

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

«Я знал,- писал Маркс Энгельсу,- что на этот раз здесь фигурировали действительные силы как с лондонской, так и с парижской стороны, и потому решил отказаться от своего обычного правила отклонять все подобные предложения».

Заветное желание Маркса осуществилось: было создано международное пролетарское объединение.

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

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

Эта трудность сказалась уже при выработке «Учредительного манифеста» I Интернационала, творцом которого, как и ряда других документов, был Маркс. Маркс писал: «Было очень трудно провести дело так, чтобы наши взгляды были изложены в такой форме, в которой они были бы приемлемы для теперешнего уровня рабочего движения». И он блестяще справился с возложенной на него задачей. В «Учредительный манифест» были включены все идеи «Манифеста коммунистической партии», но в такой форме, что они были понятны для самого отсталого рабочего.

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

«Учредительный манифест» заканчивается лозунгом, что: «Пролетарии всех стран, соединяйтесь!»

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

«Учредительный манифест» и устав, составленные Марксом, были приняты Генеральным советом на заседании 1 ноября 1864 года. От имени Генерального совета Марксу была выражена признательность за заботы и составление такого прекрасного манифеста.

В основу построения I Интернационала был положен принцип демократического централизма.

На первом этапе, с 1865 по 1868 год, главным противником Маркса в Интернационале, кроме зараженного буржуазностью тред-юнионизма, был прудонизм.

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

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

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

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

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

Под руководством Маркса пролетариат перешагнул через прудонизм. С правооппортунистической опасностью, которая была главной опасностью на первом этапе Интернационала, ко времени Брюссельского (1868 год) и особенно Базельского (1869 год) конгрессов было покончено. Прудонизм был разгромлен. Маркс писал по этому поводу Энгельсу: «С ослами прудонистами покончено».

После разгрома прудонизма в Интернационале стало невозможным серьезное выступление против марксизма под флагом открытой защиты частной собственности. Поэтому оппортунистические элементы начали выступать, прикрываясь дымовой завесой пустопорожних, якобы революционных, фраз и социалистической фразеологией. Михаил Бакунин дал имя новому оппортунистическому течению — бакунизм.

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

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

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

В 1868 году на конгрессе буржуазной организации «Лиги мира» Бакунин выступил с открытым заявлением, что он враг коммунизма и ненавидит коммунизм.

Бакунина и его сторонников отделяли от Маркса глубокие, принципиальные разногласия по основным вопросам революционной борьбы. «Марксизм и анархизм построены на совершенно различных принципах, несмотря на то, что оба под социалистическим флагом выходят на арену борьбы. Краеугольный камень анархизма — личность, освобождение которой, по его мнению, является главным условием освобождения массы, т.е. по мнению анархизма освобождение массы невозможно до тех пор, пока не освободится личность, в виду чего его лозунг: «Все для личности», тогда как краеугольный камень марксизма — масса, освобождение которой, по его мнению, является главным условием освобождения личности, т.е., по мнению марксизма, освобождение личности невозможно до тех пор, пока не освободится масса, в виду чего его лозунг: «Все для массы» - писал И.В. Сталин в работе «Анархизм или социализм». Сталин вскрыл корни сектантства бакунистов - их боязнь масс и авантюризм.

Еще накануне вступления в ряды Интернационала Бакунин применил подлый двурушнический метод, ложь, притворство и обман. 22 декабря 1868 года он обратился с письмом к Марксу, в котором старался уверить его, что отныне он не знает другого общества, другой среды, «кроме мира рабочих». Бакунин называл себя учеником Маркса и говорил, что Интернационал будет его отечеством. Почти одновременно он же написал письмо руководителю буржуазной организации «Лига мира», в котором клеветал на Маркса.

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

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

В 1872 году на Гаагском конгрессе Бакунин, Гильом и группа их сторонников были исключены из рядов Интернационала. Маркс лично участвовал в работах конгресса и беспощадно громил бакунистов.
Насколько положение было серьезно, можно судить по тому, что накануне Маркс писал Кугельману: «Вопрос идет о жизни или смерти Интернационала».

Возглавляя I Коммунистический Интернационал, проводя огромную революционную, теоретическую и практическую работу, Маркс пристально изучал положение дел в России. В целях более полного ознакомления с положением рабочего класса в России Маркс в исключительно короткий срок изучил русский язык, читал книги на русском языке и по просьбе русских революционных организаций выполнял работу секретаря русской секции в I Интернационале.

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

В 1872 году I Интернационал фактически закончил свое существование.

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

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