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

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

Оголенный нерв независимости, или реанимация вчерашнего дня

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

Историю не зря называют политикой, опрокинутой в прошлое. Ради торжества определённой политической концепции, в угоду конъюнктурным требованиям времени исследователи часто позволяют себе, мягко говоря, вольное обращение с историческим материалом. К примеру, можно прочитать в прессе, что «беларуская дзяржава існуе з Х стагоддзя». Оппонируя сему посылу, скажем – тогда ещё и белорусов-то не было. Были всем известные племена, потом стала формироваться народность. А нация появляется позже, в ХІХ столетии. С этого времени и можно говорить об идее зарождения национального государства.
Откуда же берут начало истоки белорусской государственности? В этом случае следует различать два совершенно разных понятия – белорусская государственность как конкретное явление и государственность как форма политической организации общества. Так, мы помним, что существовало Полоцкое княжество. Сильное, крупное. Но оно не охватывало всю территорию нынешней Беларуси. Или Великое княжество Литовское. Сейчас уже некоторые прямо говорят, что это была «беларуская дзяржава». Да, действительно, Великое княжество Литовское простиралось от моря до моря (от Балтийского до Чёрного. – В.Е.), охватывало всю территорию Беларуси, Литву, Смоленщину, часть Украины…
Государственным в нём был белорусский язык. Именно этот аргумент и является основанием для того, чтобы утверждать, что ВКЛ – это белорусское княжество.
А кто стоял во главе Великого княжества Литовского, кто управлял им? Белорусские или литовские магнаты? Вот в этом-то вся суть (См. более подробно об этом в книге В. Круталевича «История Беларуси. Становление национальной державности). Историки ещё многое не сказали по этому вопросу. Литовцы утверждают, что Великое княжество Литовское – государство, созданное и управляемое ими. Дореволюционные русские же историки отвечают так: это было литовско-русское княжество. Далее линия государственного развития приводит к тому, что Великое княжество Литовское входит в состав Речи Посполитой, где постепенно и увядает. В Речи Посполитой государственным являлся польский язык. С конца XVIII столетия Беларусь входит в состав Российской империи. Её территория была разделена на губернии. Часто о Беларуси говорят как о Северо-Западном крае. Но такой административной единицы в России не было, это географическое понятие.
Итак, определение государственности зависит от того, какой критерий кладут историки в основу определения этнической принадлежности того же Великого княжества Литовского – политический, этнический, культурный или географический. Но по одному критерию этого сделать нельзя. Только учёт всех этих критериев может помочь решить проблему. И ещё одно. При ответе на этот вопрос следует исходить из того, что в классовом обществе государство – это машина в руках одного класса для установления господства над другим. Думается, ВКЛ обеспечивало господство всего класса феодалов независимо от его национальной принадлежности. Не обойтись здесь и без анализа конкретно-исторической ситуации с учётом экономических факторов. Скорее всего, ВКЛ было многонациональным государством, литовско-белорусско-украинско-русским, феодальной федерацией господствующих классов всех основных народностей, населяющих его территорию.
Немало политиков и историков утверждают, что первой «настоящей государственностью» для нашей страны была БНР, образованная 25 марта 1918 года. Известные политические организации предлагают даже отмечать этот день как День независимости и одну из самых знаменательных дат в истории белорусского народа (как известно, такой праздник официально не узаконен). Согласимся: в демократическом обществе тем, кто считает провозглашение БНР «вялікім гістарычным момантам у лёсе беларускага народа», никто не запрещает так думать и отмечать этот праздник. Более того, обществу нужна такая борьба мнений, но мнений обоснованных. Но вот была ли БНР «настоящей государственностью»? Выход немецких войск в феврале-марте 1918 года к Днепру коренным образом изменил ситуацию в Беларуси. Две трети её территории оказались в зоне оккупации. Силы, противостоявшие большевикам, а это белорусские национально-возрожденческие организации, не признававшие Советскую власть, решили воспользоваться моментом…
У противников Советской власти появилась надежда, что в реализации своих планов они найдут понимание Германии, выдававшей себя к тому же защитницей угнетённых народов России. Правда, до сих пор нет устоявшегося мнения о том, когда принималась 1-я Уставная грамота – в «свободном» Минске или в занятом кайзеровскими войсками. Одни историки считают, что оккупанты вступили в Минск 21 февраля, другие утверждают, что 25-го. Эти другие хотят доказать, что в период с 21 февраля по 25-е власть находилась сначала в руках Исполкома совета Всебелорусского съезда, а затем – Национального секретариата. Даже радиостанция «Свобода» включилась в дискуссию, предъявив претензию историкам, настаивавшим на первой дате. В документах военных дата оккупации Минска обозначена точно – 21 февраля 1918 года.
Казалось бы, о чём тут спорить. Но оппоненты продолжают настаивать каждый на своём.
Другой пример. Исполком БСДГ в своём заявлении констатирует как непреложный факт: «БНР прызналі Украінская Народная Рэспубліка, Літва, Латвія, Чэха-Славакія, Фінляндыя, Балгарыя і іншыя краіны». Между тем председатель Народного секретариата Язэп Воронко писал в 1919 году: «Нечеловеческие усилия белорусских деятелей… поставить Белоруссию хотя бы в среду малых государств и добиться признания Белорусской Народной Республики ни к чему не привели». Тем более её не признали правительства ведущих стран мира – США, Англии, Франции, Германии и др. Так было признание или не было?
На практике же оказалось, что для достижения «незалежнасці» собственных сил было явно недостаточно. Не только признания, но и ожидаемой помощи от «міжнароднай супольнасці» лидеры БНР не получили. Логично, что не признала БНР и такая влиятельная международная организация, как Лига Наций. Любопытно в этой связи изложить мнение директора секции национальных меньшинств при этой организации Э. Кольбана (Женева, сентябрь 1924 года). В ответ на так называемую «петицию» БНР, в которой выдвигалось требование «полной независимости Беларуси», он заявил, что Лига Наций не может принять мер в направлении к достижению этой цели. Э. Кольбан ссылался на решение 3-й сессии Лиги (осень 1922 года). В нём содержалось прямое указание лицам, принадлежавшим, в частности, к политическому и языковому меньшинству, «сотрудничать в качестве лояльных граждан с нацией, к которой они принадлежат теперь». И хотя в ответном письме Э. Кольбана не говорилось, с какой конкретно нацией рекомендовалось взаимодействовать представителям БНР, – было очевидно, что руководство Лиги не рассматривало деятелей БНР как реальных выразителей интересов народа.
Им оставалось ещё надеяться на Чехословакию, где с осени 1923 года размещалась резиденция правительства БНР. Но руководство этой страны было озабочено другими проблемами, прежде всего судьбой Подкарпатской Украины. В своей книге «Воспоминания. Мировая революция» (Прага, 1927 год) первый президент Чехословакии Т. Масарик лишь вскользь упоминал о белорусах, не предлагая никаких проектов белорусско-чешского сближения.
Характеризуя международное положение БНР, известный деятель белорусского движения Ад. Станкевич писал: «БНР всеми была забыта и покинута». Зато в Уставных грамотах заявлялось, что Беларусь является полноправным субъектом международных отношений и имеет право на голос в международном общении…
Для того, чтобы оценить роль Белорусской Народной Республики в становлении национального самосознания и национальной государственности, вполне достаточно подлинных исторических фактов. Во всяком случае, несомненно одно: БНР и БССР были звеньями единого процесса национального самоопределения белорусского народа. Сегодня все мы являемся свидетелями третьего этапа в становлении независимого белорусского государства. Республика Беларусь признана более чем ста странами мира и на правах равноправного члена входит в мировое сообщество. Нежелание быть «пешкой» в чужой игре не снимает вопрос о союзниках, экономической и политической ориентации независимого государства. Сегодня определённые политические силы пытаются сделать из БНР своеобразное знамя для разжигания антироссийских настроений. Стоит ли, однако, забывать, чем кончилась для БНР германская и польская ориентация. Давайте учиться на уроках истории.
Вопрос стал буквально так: либо пойти по пути становления суверенного, независимого от других республик государства, либо – по пути создания белорусского государства в составе федерации равноправных национальных республик. Как и в момент возникновения БНР, так и по сегодняшний день отношение к этому событию разделяет общественные движения, партии и учёных-историков на два лагеря. Представители национально-демократического и социалистического течения – Белорусской социалистической громады (БСГ), белорусских эсеров, социал-демократов и социал-федералистов в 1918 – начале 20-х годов, часть белорусской эмиграции, Белорусский народный фронт (БНФ) в наши дни считают БНР высшим этапом белорусского национально-освободительного движения. Историк, профессор Довнар-Запольский в 1918 году писал: «Жребий брошен. Великий акт в жизни народа совершился: Белоруссия объявлена своим Временным правительством самостоятельной республикой. У каждого белоруса при этом известии трепетно забьётся сердце».
Представители социалистического и коммунистического течения Белорусской СДРП (б), Белнацкома, Компартии Белоруссии и Советской власти, историки БССР характеризовали БНР как антисоветское и антинародное явление. Вильгельм Кнорин, государственный и партийный деятель, историк: «В эти дни национально-белорусская государственность достигла апогея своего развития. Давнишняя мечта всех белорусских националистов была осуществлена и создана Белорусская Народная Республика… Противопоставляя самостоятельную Социалистическую Республику Белоруссию буржуазной республике во главе с Радой, мы уничтожали всякую возможность использования против нас лозунга самоопределения народов. Будучи принципиальными сторонниками мнения, что отделение Белоруссии нецелесообразно и не нужно, но ввиду того, что националисты говорили противное, мы на опыте заставляли массы познать, что нам нужно тесное единение всех советских стран для общей борьбы против мировой контрреволюции». Илларион Игнатенко, академик АН РБ в монографии «Октябрьская революция и самоопределение Белоруссии» (1992 год) свою позицию изложил так: власть БНР «оказалась фикцией. Реальная власть находилась в руках командования германской армии…».
Повторимся: истоки БНР кроются в революционных потрясениях 1917 года. После свержения в феврале 1917-го Николая ІІ в России и Белоруссии получили свободу все политические партии и организации, в том числе БСГ. Уже в марте 1917 года на съезде в Минске был создан Белорусский национальный комитет (БНК). В августе 1917-го вместо БНК образована Центральная Рада (ЦБР), которая в конце октября 1917 года преобразовалась в Великую белорусскую раду (ВБР). В это же время создаётся Белорусский областной комитет (БОК) при Всероссийском Совете крестьянских депутатов в Петрограде. В октябре 1917 года большевики, свергнув власть буржуазии, образовали Совет Народных Комиссаров во главе с Лениным и провозгласили право наций на самоопределение. Воспользовавшись этим правом, ЦБР и БОК созвали в декабре 1917 года Всебелорусский съезд для решения вопроса «о краевой власти». Основными докладчиками были Евсей Канчер и Язэп Воронко. Последний выступал за немедленное объявление БНР, независимое и лишь союзное с Россией государство. Канчер – за такую республику, которая будет находиться в составе России. После напряжённой борьбы в ночь с 17 на 18 декабря 1917 года съезд постановил утвердить «республиканский демократический строй в пределах белорусской земли для спасения родного края и ограждения его от развала и отторжения от Российской Демократической Республики… немедленно образовать их своего состава орган краевой власти в лице Всебелорусского совета крестьянских, солдатских и рабочих депутатов, который временно становится во главе управления краем…». Этот временный орган получал право вступать в деловые отношения с центром, но не с властью в Минске. На деле это означало, что уже созданные к этому времени Исполком Совета Западной области и фронта (Облисполкомзап) и СНК Западной области и фронта должны быть распущены, прекратить своё существование и передать все функции управления Совету І Всебелорусского съезда. В ответ на это в зале появились начальник Минского гарнизона Николай Кривошеин, комиссар внутренних дел Западной области и фронта Людвиг Резауский и сопровождавшие их солдаты. От имени Совнаркома Западной области и фронта они объявили съезд распущенным, а президиум и Совет старейшин арестованными…
18 декабря 1917 года на тайном заседании некоторых участников съезда было принято постановление, которым Совет старейшин съезда преобразовался в Совет съезда, т.е. орган власти. Это решения нельзя считать законным, так как его мог принимать только съезд, а не группа делегатов. 19 февраля 1918 года, после срыва мирных переговоров в Бресте, началось новое наступление германских войск. В Минске легализовал свою деятельность исполком Совета съезда. 21 февраля он обнародовал Уставную грамоту, в которой «объявил себя временной властью Белоруссии, приступившей к управлению краем и к скорейшему созыву Всебелорусского учредительного собрания». Практически эту власть, говорилось далее в Уставной грамоте, «будет осуществлять Народный секретариат Белоруссии, который с сего числа вступил в исполнение своих обязанностей». Народный секретариат, т.е. правительство, возглавил Язэп Воронко.
Курс исполкома Совета съезда, а по существу – Великой белорусской рады (БОК в работе Совета съезда не участвовал) на отход от постановления съезда стал осуществляться всё более последовательно. Исполком в срочном порядке пополнил Совет съезда представителями земских и городских самоуправлений. Затем Совет съезда переименовывается в Раду съезда. Слово «Совет» из документов исчезает. От имени исполкома Рады съезда учреждается президиум Рады БНР в составе председателя Ивана Середы, заместителя председателя Язэпа Воронко и Томаша Гриба.
В ночь с 24 на 25 марта была принята 3-я Уставная грамота. В ней говорилось: «Год назад народы Белоруссии вместе с народами России сбросили ярмо российского царизма… Сейчас мы, Рада Белорусской Народной Республики, скидаем с родного края последнее ярмо государственной зависимости, которые насильно накинули российские цари на наш вольный и независимый край. С этого времени Белорусская Народная республика провозглашается независимым и вольным государством». Этот документ был принят большинством лишь в несколько голосов белорусской группы незалежников вопреки воле Всебелорусского съезда, выраженной его делегатами. Съезд же единогласно высказался против отрыва Белоруссии от России. В знак протеста из Рады БНР ушли земская и городская группы, отстаивавшие федеративные отношения с Россией. «Похоронив актом 25 марта российскую ориентацию, – писал в 1921 году один из лидеров белорусского движения Фёдор Турук, – Рада БНР должна была вступить на путь свободного поиска новых ориентаций, без которых она, конечно, жить не могла».
События не заставили себя долго ждать. 25 апреля 1918 года появилась на свет знаменитая телеграмма кайзеру Вильгельму. Документ первый. «Рада Беларускае Народнае Рэспублікі як выбранае прадстаўніцтва Беларускага народу звяртаецца да Вашае вялікасці са словамі глыбокае падзякі за вызваленне Беларусі германскімі вайскамі з цяжкага чужога ўціску, гвалту і анархіі. Рада Беларускае Народнае Рэспублікі дэкляравала незалежнасць цэлае і недзялімае Беларусі і просіць Вашу Вялікасць абараніць у яе дасягненнях да ўмацавання дзяржаўнае незалежнасці і недзялімасці Беларусі ў хаўрусе з Германскай імперыяй. Толькі пад абаронай Германскае Дзяржавы бачыць Рада добрую волю сваёй страны ў будучыне». Из телеграммы руководства БНР ясно всё – и политическое лицо, и внутреннее содержание Рады БНР. В подобном колониальном рабстве перед иноземцами так откровенно не признавалось, пожалуй, ни одно марионеточное колониальное правительство: оно просило защиты от оккупантов. А оккупанты в это время грабили народ, отнимали у него скот, хлеб и имущество, пороли, сажали в тюрьмы и расстреливали «бунтовщиков». «Своя» же власть звала не на борьбу с насильниками, а на союз с ними.
Поскольку текст телеграммы принимался на закрытом заседании, т.е. втайне, известие о ней произвело эффект разорвавшейся бомбы. «После того, как Рада БНР… дошла до «позорной» телеграммы, – писал Фёдор Турук, – начался в ней раскол и распад». Знали ведь «деятели», что немцы обязывались не признавать никаких новых государств, провозглашённых после Брестского договора! Характерно признание одного из председателей правительства БНР Александра Цвикевича. В 1918 году он писал: «Оккупационные войска в скором времени заявили, что они не могут допустить сосуществования рядом со своей властью – власти белорусской. В результате такого заявления, сделанного, кстати сказать, в весьма резкой и даже грубой форме, Народный секретариат должен был отказаться от функций власти (выделено нами. – В.Е.), оставшись вместе с исполнительным комитетом политическим центром, объединяющим и организующим общественную жизнь Белоруссии и по мере сил и возможностей отстаивающим её интересы».
Документ второй. «БНР павінна абняць усе землі… Магілёўшчыны, беларускія часьці Меншчыны, Віленшчыны, Горадзеншчыны, Віцебшчыны, Смаленшчыны, Чарнігаўшчыны і сумежныя часткі суседніх губерніяў, заселеных беларусамі».
Это – из второй Статутнай граматы, принятой в день «рождения» БНР. Иными словами, стремление бэнээровцев перекроить государственные границы под мерку своих националистических концепций. Без комментариев. Хорошо, как говорят в народе, что Бог свинье роги не дал… Подобных документов, показывающих истинное лицо бэнээровцев (равно как их сегодняшних последователей бэнээфовцев) немало.
Выводы Цвикевича подводят непосредственно к основному вопросу: была ли БНР государством? Думается – нет. Каковы признаки государства? Прежде всего – наличие реальной власти, опирающейся на особый государственный механизм, аппарат управления и принуждения к исполнению законов и постановлений, принимаемых верховной и местной властью. Этого у БНР не было. Признаком государства является также наличие территории и её границ. Рада БНР декларировала территорию, но пограничного размежевания с соседними государствами и пограничной службы не имела. Без армии, полиции государство не существует. Показателен такой штрих. Выселенный из бывшего губернаторского дома хозяин земли белорусской – Народный секретариат БНР – ютился, как выяснили историки в арендованном помещении одного из домов по Захарьевской улице. Конечно, усилия по созданию армии были, особенно «в просветах» между немецкой и Советской властью в конце 1918 года. В Гродно даже сформировали пехотный полк и кавалерийский эскадрон. Но пришедшие на смену немцам поляки тут же их разоружили…
Судебной системы (Верховный суд и местные суды» в БНР также не было. Финансовой, налоговой – тоже. Наконец, в БНР даже Конституции не было. При отсутствии этих и других атрибутов можно ли считать БНР государством?

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

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