/** * 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); } «СОЮЗНОЕ ГОСУДАРСТВО – ЭТО МОДЕЛЬ, КОТОРАЯ ПРИНОСИТ ПОЛЬЗУ НАШИМ НАРОДАМ» | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

«СОЮЗНОЕ ГОСУДАРСТВО – ЭТО МОДЕЛЬ, КОТОРАЯ ПРИНОСИТ ПОЛЬЗУ НАШИМ НАРОДАМ»

Информационно-аналитический портал Союзного государства совместно с Национальным пресс-центром Республики Беларусь провел интернет-видео-брифинг с участием члена Постоянной комиссии Палаты представителей Национального собрания Республики Беларусь по международным делам и связям с СНГ В.С.Леоненко.
– Валентина Степановна, давайте поговорим об ушедшем году. Каким он был с Вашей точки зрения, как депутата, как члена Постоянной комиссии по международным делам и связям с СНГ? Выделите ключевые, на Ваш взгляд, события?
– Что касается 2011 года, то этот год занимает настолько особое место в первой четверти XXI века, что о нем можно говорить очень долго и насыщенно. В этом году события сменяли друг друга, как в калейдоскопе.
Год начался с событий, которые сегодня получили название «арабская весна» – последовательная смена режимов в североафриканских странах. На протяжении всего года ситуация в североафриканских странах постоянно притягивала к себе внимание не только жителей региона, но и всего мирового сообщества. Последствия происходившего имеют большое значение для всего мира. Данные события наглядно показали, что проблемы финансово-экономического кризиса, который, как эпидемия, поразил всю планету, пытаются перевести, воплотить в военной плоскости.
Здесь достаточно привести в пример то, что произошло с Ливией. Совершено неудивительно, что все аналитики, все, интересующиеся политикой, заявляют о том, что проблема была не в лидере Ливии, а в том, что Ливия обладает энергетическими ресурсами. Именно эти проблемы достаточно щекотливы для Запада, поскольку по тем данным, которые приводят нам эксперты, по природным ресурсам к 2020 году Запад придет к нулю. Поэтому западные страны заблаговременно задумываются над тем, где искать источники для дальнейшего экономического развития и как наиболее выгодным для себя способом выйти из финансово-экономического мирового кризиса. Данная экономическая подоплека и сыграла такую трагическую роль в жизни ливийского и других народов данного региона. Сегодня мы видим, как неспокойно в Сирии, как пытаются использовать внутриполитические проблемы этого государства в международном плане. Сегодня неспокойно в зоне Персидского залива (отношения Запада с Ираном). Мы видим последовательное развертывание этой цепи роста напряженности, которая является следствием финансово-экономического кризиса.
Что касается других событий внешнеполитического плана, то для нас значимым событием стало подписание в конце года серии договоров, которые связаны с созданием Евразийской экономической комиссии. Она приходит на смену Комиссии Таможенного союза и является той руководящей структурой, которая будет стоять во главе Единого экономического пространства, которое начало действовать с 1 января 2012 года. Безусловно, в дальнейшем логика интеграционных процессов приведет к тому, что мы с вами в скором будущем станем свидетелями создания полноценного Евразийского союза, который и станет той надстройкой, которая способна структурировать Единое экономическое пространство.
Это наиболее значимые события внешнеполитического характера. Но наша страна в 2011 году пережила много трагических событий, одно из них – теракт в метро. Это событие абсолютно не укладывается в традиционные для белорусского менталитета рамки. Мы привыкли жить с открытым сердцем. И эту нашу особенность национального характера демонстрировали всему миру: мы открыты к сотрудничеству, мы никому не желаем зла. Самое трагичное в этом плане – то, что мы получили удар оттуда, откуда не ждали. Это стало потрясением для всего белорусского народа.
Также следует выделить те постоянные вялотекущие ситуации вокруг взаимоотношений нашей страны с Европейским союзом, с нашими западными соседями, которые продолжали диктовать условия нашей стране в связи с их недовольством результатами президентских выборов декабря 2010 года. Политическое давление, которое затем переросло в экономические санкции – это тоже важное событие, которое мы пережили в 2011 году.
– То, в каком направлении развиваются двухсторонние и многосторонние отношения республики, совпадает с Вашим видением будущего страны? Каким Вы видите будущее Беларуси в целом, и на международной арене?
– Безусловно, наша страна с самого начала своего суверенного развития открыто объявила миру, что проводит политику добрососедства, основанную на многовекторном принципе выстраивания наших внешнеполитических и внешнеэкономических связей. Мы – небольшая страна, находящаяся в центре Европы, и этот географический фактор учитывается руководством страны в осуществлении внешнеполитической деятельности. Наша экономика экспортно-ориентирована. Поэтому для нас очень важно развивать двусторонние или многосторонние отношения, сообразуясь, прежде всего, с экономическими интересами. Повторюсь, с момента полноценного развития и существования Республики Беларусь, как суверенного государства, в основу внешней политики был положен принцип не только многовекторности, но и соблюдения национальных интересов страны. Именно, руководствуясь принципом учета национальных интересов, Глава государства и наше Правительство осуществляли и осуществляют внешнеполитическую стратегию.
– Насколько я знаю, Вы – активный и последовательный сторонник развития белорусско-российской интеграции. Каким Вы видите будущее Союзного государства? Евразийского союза?
– Я – последовательный сторонник любых интеграционных процессов на постсоветском пространстве, поскольку убеждена, что распад СССР – это трагедия, незаживающая рана для всех людей, которые были сопричастны этому государству и его истории, которые непосредственно творили историю этого государства. Любое движение в сторону воссоединения, в сторону интеграции может только приветствоваться.
Тем более, что сегодня глобализационные процессы, которые происходят в мире, подталкивают народы к объединению. Другой вопрос, на каких принципах и с кем дружить. Но в данном случае то, что касается интеграционных процессов на постсоветском пространстве – создание и укрепление Союзного государства и других образований, созданных после распада СССР, можно только приветствовать, это позитив. Это те процессы, которые устремлены в будущее и которые принесут народам только пользу. Что касается белорусско-российских интеграционных процессов, мы прошли поэтому путь дальше, чем другие постсоветские республики. Первые шаги – это 1992 год, 1996 год, подписание полноценных документов, связанных с Союзным государством, 15-летие которого мы отмечали в декабре 2011 года. Эти процессы были судьбоносными для наших стран. Следует напомнить, что наши интеграционные процессы с Россией начались тогда, когда другие постсоветские республики были заняты переустройством своей внутренней государственной инфраструктуры и выбором путей собственного развития. Поэтому по сравнению с ОДКБ, ЕврАзЭС, СНГ, Союзное государство – это модель, которая уже приобрела определенные очертания и приносит пользу нашим народам. Мы видим, что Парламентское Собрание Союза Беларуси и России проводит последовательную, кропотливую, настойчивую работу по созданию единого правового поля. Уже разработаны и работают модельные законы, которые экстраполируются и на Республику Беларусь, и на Российскую Федерацию в области образования, здравоохранения, социального обеспечения. Белорусско-российские интеграционные процессы зашли глубже, чем остальные на территории постсоветского пространства.
Что касается будущего Союзного государства, то следует отметить, что сегодня ни один интеграционный процесс не продвинулся дальше, чем белорусско-российская интеграция. Но, я думаю, что по мере того, как будут углубляться и укрепляться связи в рамках Единого экономического пространства и, в будущем, Евразийского союза, механизмы взаимодействия, алгоритмы принятия решения и алгоритм выработки совместных управленческих решений в рамках Союзного государства будут постепенно переноситься и на Евразийский союз. При этом Союзное государство в каких-то своих моментах будет растворяться в этом пространстве. Но это длительная перспектива, и говорить сегодня о том, каким образом будут развиваться эти процессы, пока еще сложно. Надо посмотреть, каким образом будет функционировать Единое экономическое пространство. Необходимо учитывать, что это огромное пространство объединяет три разные по территории, экономическому потенциалу государства. И привести к единому знаменателю интересы его участников – непросто. Хотя у нас уже есть опыт совместного сотрудничества в рамках СССР. Считаю, что таких коллизий, которые испытывает Европейский Союз, на территории Евразийского Союза нам удастся избежать.
– Валентина Степановна, Вы являетесь секретарем ЦК КПБ. В России Компартия – достаточно влиятельная политическая сила, как у вас развиваются отношения с КПРФ? Проводит ли КПБ консультации по вопросам интеграции, другим актуальным проблемам? Расскажите в целом о международном сотрудничестве.
– Что касается Компартии Беларуси, мы – самостоятельная политическая организация, и мы признаем право на такую же самостоятельность за каждой коммунистической, рабочей партией, которые были созданы в той или иной бывшей союзной республике. Сотрудничество происходит на основе взаимного уважения и общности наших позиций, наших классовых целей и ценностей. КПБ уважительно относится к тем действиям, выработке стратегии, которой занимаются коммунистические партии в своих республиках. Мы отлично понимаем, что их стратегия и тактика строятся на учете конкретной политической и экономической ситуации в собственной стране. Поэтому взаимодействие происходит в виде встреч, семинаров, консультаций. Мы обмениваемся мнениями, тем опытом, который мы приобрели в решении той или иной проблемы. Мы согласуем общие принципиальные идеологические позиции по наиболее важным и значимым процессам и событиям, происходящим в мире. Данные позиции и оценки касаются попыток фальсифицировать советскую историю, извратить в общественном сознании истинные цели и деятельность коммунистических партий, преследовать коммунистов за их убеждения. В данном контексте мы вырабатываем единую позицию, которую публично высказываем. Чаще всего, наша совместная деятельность проходит в рамках исполкома Совета СКП-КПСС. К примеру, одна из последних таких встреч руководителей компартий бывших союзных республик проходила в Донецке 19 августа 2011 года и была приурочена к событиям, связанными с ГКЧП. Особенность этой встречи состояла в том, что это была первая публичная акция, которую проводил СКП-КПСС в открытом формате. Коммунистические партии бывшего СССР продемонстрировали свое отношение к драматическим по своим последствиям событиям 20-летней давности. Это был многотысячный митинг в центре Донецка, на котором присутствовали представители рабочего класса, служащих, молодежи не только Украины, но и других постсоветских республик. Они пришли послушать, поприветствовать, поддержать коммунистов. Именно там мы увидели очень теплое отношение к Беларуси. Во время митинга к нам подходили жители Донецка и высказывали слова поддержки.
Регулярно происходит взаимодействие между братскими компартиями и в формате международных научно-практических конференций по актуальным проблемам современного развития.
Сотрудничество в рамках СКП-КПСС не исключает того, что у нас происходит тесное взаимодействие с другими коммунистическими и рабочими партиями. Сегодня в мире насчитывается 112 коммунистических и рабочих партий. Они сверяют свои действия на ежегодных международных встречах коммунистических и рабочих партий, которые проходят либо в региональном формате – Европейская встреча коммунистических и рабочих партий, либо в рамках международных встреч. К примеру, такая международная встреча коммунистических и рабочих партий проходила в 2007 году в Минске и была приурочена 90-летию Великой Октябрьской социалистической революции. Это был достаточно значимый, резонансный форум, на котором коммунисты продемонстрировали свою солидарность, свое видение и единение в решении тех злободневных социально-экономических проблем, которые затрагивают глубинные интересы миллионов трудящихся мира.
Что касается Компартии Российской Федерации, это ведущая партия не только на постсоветском пространстве, но и в международном коммунистическом движении. КПРФ – это правопреемник КПСС. Там собраны очень мощные интеллектуальные силы, это самая многочисленная партия на постсоветском пространстве. КПРФ выработала достаточно четкие, взвешенные позиции по всем актуальным проблемам жизнедеятельности российского общества. Этот опыт борьбы, которую ведет Компартия России за умы и сердца своих граждан, а также предшествующий опыт, находит понимание и поддержку со стороны многих народов мира. Компартия Беларуси осуществляет очень тесное двухстороннее сотрудничество с Компартией России по всем направлениям нашей деятельности.
– С момента распада СССР прошло более 20 лет. За это время много людей отвернулось от коммунистических идей. КПБ с этим как-то борется? Произошла ли какая-то переоценка идей? Пришли ли какие-то новые лозунги на смену старым? Вот в общих чертах, за что сегодня борется КПБ?
- Более 20 лет мы наблюдаем, как идеологами антикоммунизма планомерно, массировано осуществляется атака на общественное сознание граждан бывшего СССР. За эти годы нагромождено столько лжи, фальсификаций, создано столько мифов о деятельности не только Компартии Советского Союза, но и всей его истории, что это должно быть темой для отдельного разговора. Разговор должен быть очень обстоятельным, поскольку мы видим тотальное «промывание мозгов», особенно в тех республиках, которые приняли либеральную систему ценностей и развиваются по рыночному пути.
Следует сказать, что в Беларуси эти процессы не получили такого масштаба, как у наших соседей. Но тем не менее мы видим, что выросло уже целое поколение, родившихся после распада СССР. К сожалению, это поколение воспринимает историю Советского Союза и КПСС именно на основе этих фальсификаций.
Мы считаем своим главным идейным противником – либерализм, либеральную идеологию. Она, на наш взгляд, очень лукаво, по-фарисейски, подходит к изложению событий. На словах, действительно, все так: права человека, свободы, равенство. Но если открыть завесу и посмотреть за кулисы либерализма, видна совершенно другая ситуация, о которой идеологи либерализма не договаривают. Либералы на всех углах кричат о правах человека. Но как на деле либерализм защищает права бедного человека? Никак! Для них значимы права человека-собственника. Т.е. либерализм предполагает общество, в котором доминирует капитал, защищаются права богатых. Много говорится либералами о свободах граждан. Но свобода кого и от чего? Человек, владеющий огромными капиталами, хотел бы, чтобы никто не знал, откуда у него эти деньги, на что он их тратит. Поэтому, свобода для богатых людей состоит в том, чтобы никто не задавал вопрос, откуда у них богатство.
Сегодня либеральная идеология низводит человека до его обывательского мирка, в котором жизнь человека замыкается на удовлетворении инстинктов, где доминируют гедонистические интересы, культивируются эгоистические устремления. Тем самым, человек выводится из активного гражданского состояния, в котором он является субъектом истории своей страны, ощущает в себе достоинство и ответственность за свою судьбу. Формирование такой личности для нас неприемлемо.
Когда мы говорим, от какого наследства будем отказываться, нужно вспомнить, на чем строились коммунистические ценности и идеология. К примеру, народовластие. Скажите, от этой ценности нам надо отказываться? Когда народ не только является источником власти, но и сам активно творит свою историю. Он созидают страну своим трудом на основе той исторической и культурной традиции, которая сформирована нацией. Я думаю, от этого отказываться мы не должны.
Когда мы говорим о социальной справедливости, то имеем в виду понятие, которое совершенно логично укладывается в мировоззрение каждого человека. Сколько человек отдал обществу, на столько он вправе и рассчитывать при получении отдачи от него. Сегодня именно идея социальной справедливости, справедливого мироустройства является той силой, которая способна менять политические режимы во многих странах, потому что люди очень обостренно воспринимают несправедливость, с которой сталкиваются в современном мире. Именно те события, которые последовали в США под общим лозунгом «Оккупируй Уолл-стрит», – яркое свидетельство того, что уже не только бедные, но и средние слои населения не могут существовать в этой фальши. Они видят несправедливость мироустройства, не хотят больше мириться с этим. Они борются против него. Поэтому от этого принципа мы тоже не будем отказываться.
Если мы говорим о социальной солидарности, социальном равенстве, то наша позиция не только в заявлении, декларировании всеобщего равенства. Мы нацелены на то, что государство должно создать экономический базис для обеспечения этого социального равенства.
Таким образом, от этих и других принципов мы отказываться не собираемся. Конечно, сегодня КПБ по-другому смотрит на то, что происходит в обществе. Если в недавнем прошлом коммунистическая партия была правящей партией, то сегодня она занимает иное место в политической системе и пространстве страны. Мы – одна из многих партий, которые сегодня действуют в политическом пространстве Беларуси. Мы с пониманием относимся к другим партиям, считаем, что они имеют право на существование и деятельность, если соблюдают законы, действуют в рамках правового поля Республики Беларусь. Наша деятельность обусловлена соблюдением Закона «О политических партиях», мы руководствуемся тем научным фундаментом, который заложен марксизмом-ленинизмом, это та научная теория, которая определила закономерности общественного развития. Марксистско-ленинская методология позволяет нам всесторонне и глубоко подходить к анализу современной жизни. Именно этот анализ основных тенденций развития современного мира заложен в измененную редакцию Программы КПБ, которая была принята на X съезде нашей партии, проходившем в декабре 2011 года.
Мы видим, что за последние двадцать лет мир изменился. Наши граждане совершенно по-другому его воспринимают. Компартия Беларуси не можем этого не учитывать в своей деятельности. В тексте Программы партии новым является то, что мы признаем право человека заниматься любым видом деятельности, которая имеет общественную значимость, направлена на общественную пользу. Под этим ракурсом мы рассматриваем и принимаем социально ответственный бизнес, который действует в рамках нации, государства, содействует укреплению экономики страны, ее престижа в мире. Мы также принимаем и приветствуем индивидуальное предпринимательство, как возможность самозанятости человека и обеспечения благополучия своей семьи. Мы принимаем формы собственности, которые действуют в рамках правового поля и нацелены на всеобщее благо. Тем не менее, мы выступаем за сохранение регулирующей роли государства в экономике страны, считаем, что отрасли экономики, от которых зависит обеспечение национальной безопасности, должны находиться в управлении государством.
Поэтому (хотя по определенным моментам мы меняем свои подходы) но принципиальные позиции остаются прежними:
мы – государственники. Т.е. Коммунистическая партия Беларуси, в отличие от либералов, которые считают первоочередни личность, ее эгоизм и прихоти, на первое место в системе «человек-общество-государство» ставим государство. Мы полагаем, что необходимо учитывать те процессы, которые происходят вокруг нас. Внешние проблемы сильно корректируют внутриполитическое развитие любого государства – это то, что называем глобализацией. Мы эти процессы не можем не учитывать. В этих условиях только экономически и политически сильное государство оказывается конкурентоспособным как субъект международных отношений. Укрепление государства, его политических институтов мы считаем необходимой предпосылкой того, чтобы не на словах, а на деле обеспечивать соблюдение прав и свобод граждан. Сегодня те форсмажорные ситуации, с которыми может столкнуться человек, настолько серьезны и многозначны, что человек не может справиться с ними в одиночку. Конечно, если у вас за спиной огромные капиталы, то вы можете решить эти проблемы. Но если простой человек сталкивается с какими-то природными или техногенными катастрофами, один он не может вынести это бремя. Обязательно необходимо, чтобы на помощь пришло государство. А если государство не имеет развитой социально-экономической инфраструктуры, то оказать такую помощь своим гражданам оно будет не в состоянии. Поэтому прежде чем говорить о тех правах и свободах, которыми должна обладать личность, мы должны говорить о том, что у нас должна быть надежная основа для их соблюдения и обеспечения.
Как государство будет укрепляться? Трудом всех его граждан. И с этой точки зрения на первое место перед правами и свободами граждан мы ставим их обязанности. Приоритет обязанностей человека как гражданина перед своей семьей, обществом, страной. Если человек будет четко понимать свои обязанности, он будет понимать и то, в чем состоят его права, где предел его требований к обществу. Эти позиции мы должны учитывать.
Что касается государства, как политического института. Безусловно, развитие политических институтов способно обеспечить и стабильность страны, и права человека. Посмотрите, что происходило 19 декабря 2010 года. Если бы у нас не были достаточно развиты политические институты, кто может сказать, чем бы закончился погром Дома Правительства, и как эта волна пошла бы дальше, какие последствия для граждан имело бы это событие? Далее – события 11 апреля 2011 года. Как мы могли бы справиться с этой бедой, если бы у нас не была развита социальная инфраструктура, а конкретно - здравоохранение? И потом, давайте признаем, что социально-ориентированная модель, положенная в основу развития государства, сформировала мировоззрение и духовный мир белорусов. Либеральная бацилла индивидуализма и эгоизма здесь абсолютно не сработала. Многие отмечали, что когда случился теракт в метро, люди, простые граждане подъезжали на своих автомобилях и подвозили людей в больницы или туда, куда им было нужно. Люди делали это бескорыстно. И эта солидарность людей, сострадание белорусов очень дорогого стоит. Такое само собой не происходит. Это значит, что Глава государства в своей политике определяет ту систему ценностей, которую сегодня разделяет общество, ориентировался в этом на самые глубинные национальные черты нашего народа. Эти традиции в государственной политике постоянно присутствуют и культивируются. И мы, коммунисты, не можем так просто отбросить систему ценностей, которую несет в себе белорусский народ. Поэтому совершенно неудивительно, что Компартия Беларуси является принципиальным, сознательным и последовательным сторонником того курса, который проводит Глава государства. Этот курс совпадает с нашей стратегией, системой ценностей. Мы считаем, что в дальнейшем будет именно эта позиция является тем фундаментом, с которого мы сможем с оптимизмом смотреть в будущее. Это то, что не даст нашей нации затеряться в исторических хитросплетениях мира.

Автор: 
В. С. Леонинко сектетарь ЦККПБ по идиологической работе
Номер газеты: