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

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

Рождение СССР: как это было

В октябре семнадцатого года борьба за власть ещё далеко не закончилась. Представительство большевиков в органах старого местного самоуправления было незначительным. В губернских городах у них было 7% мест, в уездных — всего 2%. Но власть на местах постепенно переходила к Советам рабочих, солдатских и крестьянских депутатов, где их позиции были преобладающими.

Установление Советской власти в первые месяцы после Октябрьской революции проходило в основном бескровно. Лишь в нескольких городах было оказано вооружённое сопротивление: в Центральном промышленном районе (Иваново-Вознесенск, Кострома, Тверь, Ярославль, Рязань) многие местные Советы фактически властвовали ещё до Октября.

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

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

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

Украина

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

Центральная рада строила свою политику на основе украинского сепаратизма. Февральская революция 1917 года открыла возможность осуществления проекта «Украина», задуманного польскими панами Потоцким и Чацким ещё в XVIII веке. Его главные постулаты: «Украинцы и русские – разные народы. Московиты (москали) — отсталые варвары, препятствующие процветанию Украины». Австрийцы использовали эту идеологию для натравливания малороссов (украинцев) на «клятых москалей», чему истинные украинские националисты истово предались, получив на это солидное финансирование.

Возглавлял Центральную раду идеолог украинизации М.С. Грушевский, военное ведомство — масон Симон Петлюра. Была провозглашена независимая Украинская народная республика. Украинский историк В.А. Савченко отмечал, что только 10% населения (интеллигенция и часть крестьян) можно назвать настоящими украинцами, в то время как большинство не поддерживало политику украинизации и не желало говорить на украинском языке. При этом Рада претендовала на заглавную роль для антибольшевистских окраин. Она требовала раздела финансов империи и участия в переговорах с Германией. Для поддержания новых порядков был создан Украинский фронт, состоявший из военных формирований националистов-«сичевиков» и остатков войск Юго-Западного и Румынского фронтов под командованием генерал-полковника Щербачёва, не признавшего власть большевиков. Одновременно происходило разоружение солдат «русского происхождения», не проживающих на Украине.

Киевские большевики, естественно, поддержали Октябрьскую революцию в Петрограде и объявили об установлении власти Советского правительства. Однако руководство Киевского военного округа не подчинилось центральной петроградской власти и приказало ликвидировать большевицкий ревком. Войска окружили Мариинский дворец, где он располагался, и обстреляли здания киевской Думы, Исполнительного комитета и Комитета большевиков. Почти все члены Киевского комитета РСДРП(б) и ревкома были арестованы, а власть передана Генеральному секретариату Центральной рады. В Киеве начались уличные бои. Воспользовавшись неразберихой, националистические украинские части взяли под свой контроль государственные учреждения.

13 ноября руководство штаба Киевского военного округа подписало соглашение о прекращении огня с ревкомом и покинуло город. Через три дня на совместном заседании Советов рабочих и солдатских депутатов Рада была признана в качестве регионального совета на Украине. Ещё через три дня универсал Украинской народной республики провозгласил Украину автономией в составе Российского государства со столицей в Киеве. Совет народных комиссаров признал право Украины на самоопределение. Но вскоре Центральная рада резко изменила свою позицию, осудила большевистский переворот и заявила, что «будет решительно бороться против всех попыток поддержать такое восстание на Украине». Генеральный секретариат Украинской народной республики назвал большевиков «врагами Украины». В ответ Совет народных комиссаров принял решение «считать Раду в состоянии войны с нами». 5 декабря подпоручик Владимир Александрович Антонов-Овсеенко был назначен главкомом войск «для борьбы против Центральной рады и Каледина».

8 декабря в Харьков прибыли красные отряды под командованием представителя старинного графского рода зауряд-прапорщика Рудольфа Фердинандовича Сиверса и выходца из высокоинтеллигентной дворянской семьи прапорщика Юрия Владимировича Саблина. Через несколько дней здесь было образовано Украинское советское правительство. Начались выступления сторонников Советской власти и в других городах. Произошло успешное восстание в Мариуполе. 18 января после упорного боя со сторонниками Центральной рады одесский пролетариат, поддержанный несколькими судами черноморской эскадры, взял в свои руки власть в Одессе. Началась подготовка похода на Киев. Поскольку Антонов-Овсеенко сосредоточился на борьбе с Калединым, то руководство главным ударом было возложено на начальника штаба фронта подполковника эсера Михаила Артемьевича Муравьёва, ранее руководившего разгромом войск Керенского — Краснова, наступавших на Петроград.

Красноармейцы потеснили калединцев и захватили Новочеркасск, Ростов и Таганрог. В то же время удалось остановить наступление оренбургских казаков атамана Дутова. Украинский националистический фронт тоже оказался не готов к столкновению с Красной Армией. Их воинские части разоружались по требованию большевиков или просто разбегались. Вскоре Советская власть была установлена в Полтаве.

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

Из двадцатитысячного войска, оборонявшего Киев от Красной Армии, тысяча двести составляли гайдамаки и «вильне казацтво». Войска старой русской армии предпочли сохранять нейтралитет, а Богунский и Шевченковский полки выступали против Рады.

При подходе Красной Армии правительство Украинской республики подало в отставку и вместе с Грушевским покинуло Киев. После нескольких дней ожесточённых боёв удалилось и военное руководство. 9 февраля красноармейцы вошли в Киев.

Рада с остатками войск укрылась в Житомире. Муравьёв, упоённый победой, не спешил организовывать преследование, надеясь, что разгромленная самостийная держава распадётся сама собой. Вероятно, так бы и произошло, но самостийники успели договориться с Германией. В Бресте был подписан договор, по которому Центральная рада обещала поставки продовольствия истощённым войной странам австро-германского блока. В ответ немецкие войска взяли под защиту остатки незалэжной державы. В реальности это означало оккупацию, но свидомые украинцы готовы поделиться собственной независимостью с любым, кто защитит их от клятых москалей. Германские войска вступили на землю Украины. И тут выяснилось, что Красная Армия, с успехом громившая сичевиков, была не в состоянии противостоять регулярной армии и отступила. 1 марта германо-украинская коалиция вошла в Киев, причём Петлюра самостийно и торжественно это сделал без согласования с союзниками, за что был изгнан с поста военного министра.

Первые государственные образования в составе РСФСР

Внутри самой Российской федерации, как грибы, после революционного дождя вырастали независимые республики.

Терская Советская Республика была провозглашена в марте 1918 года в Пятигорске. Терский совет принял законы, предусматривающие роспуск вооружённых формирований казаков и отчуждение казачьей земли. Восставшие против такого произвола казаки силой захватили большую часть Терской области.

Следом были созданы Кубано-Черноморская и Ставропольская Советские Республики. В июле 1918 года на 1-м съезде Советов Северного Кавказа в Екатеринодаре (ныне Краснодар) была образована Северо-Кавказская Советская Республика, в которую вошли все три Советские Республики.

Однако эти земли стали базовыми для Добровольческой армии Деникина, и в январе 1919 года пришлось республику упразднить.

Социалистическая Советская Республика Тавриды со столицей в Симферополе была создана в марте 1918 года. Председателем Совета народных комиссаров республики был избран А.И. Слуцкий. Он сразу же отправил телеграмму в Москву с просьбой удостоверить, что «Крым к Украине не отходит». Нарком по делам национальностей И.В. Сталин телеграфировал Слуцкому, что сведения об отходе Крыма к Украине не обоснованы, что, «по имеющемуся у нас документу германского правительства, ни немцы, ни Киев на Крым не претендуют, берут только материковую часть Таврической губернии».

На самом деле немецкие власти ввели в заблуждение правительство Советской России, заранее подготовив планы оккупации. Украинская народная республика не могла своими силами аннексировать Крым, но с готовностью приняла военную помощь Германии.

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

18 апреля 1918 года отряд Украинской армии вторгся в Крым на бронепоездах. За ним вошли кайзеровские войска.

Большинство руководителей Таврической ССР, включая Антона Слуцкого, были арестованы поднявшими мятеж крымско-татарскими националистами. Их перевезли в Алушту, подвергли пыткам и расстреляли.

Советская Социалистическая Республика Тавриды была ликвидирована.

Донская Советская Республика с центром в Ростове-на-Дону была образована 23 марта 1918 года на землях Области Войска Донского. Имена руководителей Донской республики Ф.Г. Подтёлкова и М.В. Кривошлыкова хорошо известны благодаря рассказу о них на страницах «Тихого Дона» М.А. Шолохова.

Вскоре на Дону вспыхнули казачьи восстания, спровоцированные земельным переделом. Казаками низовых станиц был захвачен Новочеркасск, но красногвардейцы выбили повстанцев из города. После вторжения на Дон немецких войск казаки свергли Советскую власть в Новочеркасске и объявили о создании Всевеликого Войска Донского.

10 мая казаки арестовали Подтёлкова, на следующий день он был повешен.

За несколько месяцев казаки при поддержке белогвардейцев и немцев вытеснили красногвардейцев с Дона. Германский корпус генерала Кнёрцера оккупировал Ростов, Таганрог и Миллерово.

К середине августа шестидесятитысячная Донская казачья армия под командованием генерала П.Н. Краснова контролировала почти всю территорию Донской Советской Республики (ДСР). Советские войска с боями отошли к границам Воронежской и Саратовской губерний и влились в состав Южного фронта. Правительство ДСР приняло решение о самороспуске.

Туркестанская Автономная Советская Республика

Иная судьба ожидала одну из самых крупных советских республик в составе РСФСР. Туркестанская Автономная Советская Федеративная Республика была провозглашена 30 апреля на 5-м съезде Советов Туркестанского края в Ташкенте. Хотя здесь, как и везде, борьба шла жесточайшая. В документах съезда было определено: «Туркестанская Советская Федеративная Республика, управляясь автономно, признаёт и координирует свои действия с центральным правительством Российской Советской Федерации». В состав ТСФР вошла территория бывшего Туркестанского края (Закаспийская, Самаркандская, Семиреченская, Сырдарьинская и Ферганская области).

Сразу же после провозглашения советской республики был создан Туркестанский военный округ. В дореволюционной России коренное население не подлежало воинской повинности, и до 1920 года Красная Армия здесь формировалась добровольцами. Вместе с ними действовали красногвардейские отряды, партийные дружины и бойцы-интернационалисты из военнопленных Первой мировой войны. Вот такая объединённая военная группировка отстаивала Советскую власть в Средней Азии. Со временем здесь был создан полноценный боеспособный Туркестанский фронт.

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

Киргизская Автономная Советская Республика

Там же, в Средней Азии, была создана ещё более крупная советская республика, входящая в то время в состав РСФСР – Киргизская Автономная Социалистическая Советская Республика. Имя республике дал самый многочисленный народ киргис-кайсаков, который мы сейчас знаем как казахов.

Ранее в Оренбурге, тогда находящемся во власти атамана А.И. Дутова, собрался Всекиргизский съезд, на котором была провозглашена Алашская автономия. «Автономия киргиз слагается из областей и входит в Российскую Федерацию наравне с другими народностями». То есть даже националистическое правительство предпочло остаться в России. В Алашскую автономию вошли: Букеевская Орда, районы Закаспийской, Ферганской, Самаркандской, Амударьинской областей и Алтайской губернии, населённые киргис-кайсаками (казахами). А также вошли области: Уральская, Тургайская, Сырдарьинская, Семиреченская, Акмолинская и Семипалатинская — целая огромная страна!

Однако после установления в Акмолинске Советской власти делегаты уездного съезда Советов телеграфировали в Наркомат по делам национальностей РСФСР: «Постановление второго общекиргизского съезда... о киргизской автономии под названием Алаш-Орда как соглашение самозванное, кучкой кадетов, считаем недействительным». 26 августа 1920 года М.И. Калинин как председатель ВЦИК и В.И. Ленин как председатель Совнаркома, подписали Декрет об образовании Автономной Киргизской Социалистической Советской Республики в составе РСФСР. 22 сентября того же года ВЦИК новым декретом ввёл в состав Киргизской АССР Оренбургскую губернию, а город Оренбург стал столицей республики. Позже столица была переведена в город Ак-Мечеть (Кзыл-Орда).

В 1925 году Киргизская АССР была переименована в Казахскую АССР. В Конституции СССР 1936 года она уже стала Казахской Советской Социалистической Республикой.

***

Независимость Бухарского эмирата сразу же после революции признало Временное правительство. Декрет Советской власти подтвердил самостоятельность Бухары. Однако вскоре последовала попытка свержения эмира красногвардейцами при поддержке младобухарцев. Она оказалась неудачной. Пришлось повторно подтверждать независимость эмирата.

Закавказье

По другую сторону Каспия, в Закавказье, установление Советской власти проходило ещё тяжелее, хотя именно Закавказская Федерация, в конце концов, стала участником подписания Союзного договора.

В Тифлисе участники разогнанного Учредительного собрания и местные националисты создали «Закавказский комиссариат».

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

Азербайджанские националисты, изначально выступавшие за автономию в составе России, стали требовать независимости, связывая свои надежды с Османской империей, которая после развала Кавказского фронта получила возможность распространить своё влияние на Закавказье и Центральную Азию. Османы строили планы по созданию Туранской империи, в которую должны были войти также Северный Кавказ, северная Персия и Туркестан.

Такие перспективы вызывали беспокойство Великобритании. Напомним, что по секретной англо-французской конвенции 1917 года Россия была поделена на «зоны действий». В зону британского действия входили Дон, Кавказ и Туркестан.

Финляндия и Прибалтика

В Финляндии Советская власть установилась уже в первые месяцы после Октябрьской революции. 22 января 1918 года был образован высший революционный орган — Исполнительный комитет финляндских рабочих. Через неделю Красная гвардия заняла столицу Гельсингфорс. Сразу же был создан революционный Совет народных уполномоченных Финляндии, который принял декларацию «К рабочим и гражданам Финляндии!», где объявил себя революционным правительством страны. Затем последовали восстания в других южных городах: Або, Таммерфорсе, Пори, Котке, Лахти, Выборге. Таким образом, в советской части Финляндии, хоть и меньшей по размеру, проживало 2/3 населения страны.

Довольно быстро Советская власть была установлена также и в Эстонии. Однако Временный земский совет Эстляндской губернии не признал её легитимности и провозгласил себя верховной властью до созыва Конституционного совета. В ответ 19 ноября 1917 года Земский совет был распущен большевиками.

В Латвии, как и во всей России в 1917 году, создавались рабочие, солдатские, крестьянские советы, а также объединённые местные советы. 29–30 июля в Рижском замке прошло заседание Совета рабочих, солдатских и безземельных (поскольку большинство крестьян здесь были таковыми) депутатов Латвии. Был выбран Исполнительный комитет Латвии (Исколат), в котором все 27 депутатов представляли РСДРП (трое из них были меньшевиками). Исколат принял декларацию, в которой объявил, что является центральным органом власти для всех революционных советов на территории Латвии.

После оккупации Риги немецкими войсками 21 августа 1917 года Исколат переехал в Валку. Здесь 8–9 ноября он принял резолюцию «О Советском правительстве и его задачах», в которой провозглашал Латвию как государство с политической автономией в составе Советской России. Это решение было подтверждено II Съездом Советов депутатов Латвии.

***

В обстановке послереволюционной неразберихи и анархии повсеместно стали возникать и межнациональные конфликты.

Осенью 1917 года в Грозном завязалось настоящее сражение между бойцами вернувшегося с фронта Чеченского конного полка Кавказской туземной дивизии и терскими казаками. Грозный превратился в осаждённую крепость. Добыча на нефтепромыслах полностью прекратилась.

Образование советских республик вне России

Октябрьская революция действительно показала пример для угнетённых народов многих стран. В 1918 году в результате народных выступлений было создано несколько советских республик вне пределов России, но все они просуществовали недолго:

Эльзасская советская республика (ныне департаменты Верхний и Нижний Рейн) была провозглашена 10 ноября и просуществовала до аннексии Эльзаса-Лотарингии Францией;

Республика Банат — государство, провозглашённое в румынском Тимишоаре 1 ноября после распада Австро-Венгерской империи;

Тарнобжегская Советская Республика с центром в городе Тарнобжег была провозглашена на территории Галиции 6 ноября 1918 года — собравшиеся на митинг крестьяне под предводительством социалиста Томаша Домбаля и ксендза Эугениуша Оконя взяли власть в свои руки, к ним присоединились города Кольбушова, Мелец и Сандомир; были сформированы советы и проведён набор в крестьянскую милицию; в начале 1919 года польская армия заняла Галицию и ликвидировала Тарнобжегскую Республику.

В 1919 году родилось ещё несколько советских республик:

Бременская Советская Республика существовала с 10 января по 9 февраля в немецких городах Бремене и Бремерхафене; Бременская республика, наряду с Баварской Советской Республикой, – самые значительные явления из революционных событий в Германии;

Лимерикский совет — советская республика на юго-западе Ирландии, удерживала власть в городе двенадцать дней;

Венгерская советская республика занимала примерно четверть территории Венгрии, отделившейся к тому времени от Австрии, просуществовала сто тридцать три дня;

В 1920 году была создана Гилянская Советская Республика в иранском остане Гилян, просуществовала до сентября 1921 года.

Второй Всероссийский съезд народных депутатов

Взамен упразднённого Учредительного собрания создавался объединённый Совет рабочих, солдатских и крестьянских депутатов. В конце января 1918 года в Таврическом дворце прошёл объединительный II Всероссийский съезд народных депутатов.

Съезд одобрил декрет о роспуске Учредительного собрания и удалил из законодательства указания на временный характер советского правительства («впредь до созыва Учредительного собрания»).

Важнейшим решением Съезда стало принятие резолюции «О федеральных учреждениях Российской Республики». Фактически она послужила основой государственного устройства страны послереволюционного времени.

С докладом по этому основополагающему вопросу выступил нарком по делам национальностей Иосиф Виссарионович Сталин.

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

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

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

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

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

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

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

Был и другой путь: объединить все русские области, а окраины «отпустить» в свободное плавание. Кстати, такую формулировку использовали перестройщики во время развала Советского Союза. Но реальность неизменно показывала, что «независимые» государства, вычлененные из Большого Союза, не оставляют своих попыток взыскать с метрополии моральные, финансовые и территориальные «убытки». Со всеми «отпущенными на свободу» государствами нам предстояла бы война. Как это впоследствии случилось с Польшей, Финляндией, а теперь с Украиной.

Впрочем, подобное поведение отделившихся окраин характерно для всех стран независимо от времени и места. За примерами далеко ходить не надо: распад Югославии, отделение Пакистана от Индии и многое другое.

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

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

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

Чтобы все эти положения стали общим для всех законом, необходимо было принять общую Конституцию. Разработку основных положений Конституции Российской Федеративной Республики было поручено Центральному исполнительному комитету.

Всероссийский съезд советов определил официальное название страны - Российская Советская Федеративная Социалистическая Республика. В таком виде РСФСР подписала союзный договор об образовании СССР. И сохранила своё название уже в составе Советского Союза вплоть до 1991 года.

На Съезде был принят закон о социализации земли — важнейший для крестьянской России. Большинством голосов была утверждена Декларация прав трудящегося и эксплуатируемого народа, отвергнутая на Учредительном собрании.

***

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

Владимир Анищенков

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