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

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

Мнение депутата не обязательно должно совпадать с мнением председателя исполкома

Почему недооценивать местные выборы глупо и недальновидно?
Кто разбудит «спящих» избирателей?
Почему радикальная оппозиция в серьезном кадровом застое?
На каких четырех китах стоит и будет развиваться экономика?

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

Будет ли нынешняя избирательная кампания в местные Советы отличаться от предыдущих? На чем в большей степени следует сконцентрироваться системной оппозиции? Кто и почему не блеснул массовостью на старте? На эти и другие темы дискутируют гости «СГ»: заместитель председателя Либерально-демократической партии Беларуси Олег ГАЙДУКЕВИЧ, второй секретарь ЦК Компартии Беларуси Георгий АТАМАНОВ и директор информационно-просветительского центра «Актуальная концепция» Александр ШПАКОВСКИЙ.

«СГ»: — Своих кандидатов выдвинули не все пятнадцать, но большинство партий и общественных объединений. Это понятно: сильные и популярные депутаты — потенциальные парламентарии, будущие кандидаты в президенты. Люди, которые попадут в местные органы самоуправления, могут потом перекроить политическую картину страны. Почему тогда не все партии принимают участие в выборах и есть ли особенности у нынешней кампании?

О. Гайдукевич: — Убежден, любая партия обязана участвовать в выборах. Она для этого и создана. Если не принимает участия в выборных кампаниях – выпадает из политического процесса, не развивается, лишается притока новых членов, не отрабатывает какие-то выборные технологии. Получается, нет смысла в самом ее существовании. Поэтому, безусловно, Либерально-демократическая партия примет самое активное участие в выборах на всех этапах. В этом году, по предварительному подсчету, мы выставили в два раза больше кандидатов, чем на прошлых выборах: около 300 против 124.
Особенность местной кампании в этом году – изменение экономической и геополитической ситуации. В регионах есть определенные проблемы, во многом связанные с известными событиями 2014 года: в России начался экономический спад, отразившийся на нашей стране. Это раз. Далее: на днях Глава государства подписал судьбоносный Декрет «О развитии предпринимательства» — ключевой из пакета правовых актов по улучшению бизнес-климата в стране, — и в связи с ним в регионах, как мне кажется, людям будет интересна местная кампания. Если они увидят реальных активных кандидатов — захочется при их помощи решить экономические проблемы районов. Ведь нельзя сказать, что все решается сверху. Возьмем, например, этот Декрет. Его приняли, но теперь важно, чтобы документ заработал, чтобы на местах власть начала его исполнять. Ведь иногда бывает как: Президент документ подписывает, а на местах он исполняется ни шатко ни валко, или, что еще хуже, выхолащивается вся его суть.

Г. Атаманов: — Для нашей партии выборы очень важны. В этом году мы отпраздновали 100-летие Великой Октябрьской социалистической революции. Наступающий — также памятный и юбилейный. Назову несколько дат, и вы поймете, почему мы будем активно участвовать в выборах. В феврале отмечаем 100-летие Вооруженных Сил Республики Беларусь. 5 мая – 200 лет со дня рождения Карла Маркса, а поскольку мы все-таки марксисты, хотим, чтобы на эту дату также обратили внимание избиратели. В октябре — 100 лет комсомолу, в декабре – белорусской национальной государственности.

«СГ»: — Как это связано конкретно с выборами?

Г. Атаманов: — В своей программе мы заложили эти даты и хотим еще раз обратиться к нашим избирателям. Будем просить их, особенно тех, кто помнит советский период, понимает, что такое равенство и справедливость, общественные фонды потребления, когда мы имели бесплатные образование и здравоохранение, еще раз доверить коммунистам решать проблемы, которые сегодня стоят перед простыми гражданами на производстве, в колхозах, в учреждениях образования и медицины. Компартия как была, так и остается партией народа и будет биться за это.

«СГ»: — По сравнению с парламентскими или тем более президентскими, местные выборы проходят тихо, если не сказать вяло. Избиратели и некоторые партии недооценивают их важность?

О. Гайдукевич: — Я бы не переживал за то, что местные выборы не имеют такого интереса и, возможно, веса, как парламентские, не говоря уже о президентских. Это свойственно всем странам и в этом ничего плохого нет. Люди считают выборы Главы государства наиболее важными, потому что у нас президентская республика. Но я бы не сказал, что людям неинтересны и местные выборы. Избиратель понимает: роль депутата местных Советов отличается от роли парламентария высшего органа законодательной власти. Если последний, скажем так, больше политик, то депутат местных Советов плотно и активно живет проблемами регионов, он больше практик. И людей волнует, как он решает насущные экономические, бытовые и хозяйственные проблемы поселка, района, города — того региона, где он избран. Вот на что делается упор. Думаю, на этих выборах явка будет хорошая, в том числе и благодаря участвующим политическим партиям, одна из задач которых – активизация избирателей.
Недооценивать выборы в местные Советы глупо и недальновидно. Для политических партий это крайне важная кампания. Начинается новый предвыборный цикл, и открывается он именно местными выборами. Если партия не проявит себя на этом этапе, шансы на нормальное и благоприятное участие в следующих выборных кампаниях сводятся к нулю. Если пропустил местные выборы, как потом? Сразу придешь на парламентские или президентские? А где ты был раньше? Местные выборы – это возможность работать с избирателем в рамках законодательства и готовиться к следующим кампаниям. Для нашей партии это важно, тем более мы уже заявили, что будем участвовать и в парламентских выборах, и в президентских.
Чтобы не говорить слишком много и больше всех, подчеркну: нужны сильные Советы депутатов с альтернативной точкой зрения. Уверен, не должно быть ситуации, когда в каждом Совете все мыслят одинаково. Молчаливое единомыслие ведет к застою и деградации. Я говорю о нормальной дискуссии коллег. Мы с Георгием Петровичем можем в чем-то не соглашаться друг с другом, но это не мешает нам разговаривать и находить общие точки соприкосновения. То же самое должно происходить и в местных Советах. Поэтому наша партия позиционируется как конструктивно оппозиционная, имеющая свое мнение, программу, и активно идет на выборы. А что будет в итоге – рассудит народ.

«СГ»: — Георгий Петрович, как коммунисты сегодня относятся к отличной от своей точке зрения? Вы разделяете позицию либеральных демократов?

Г. Атаманов: — С позицией, высказанной Олегом Гайдукевичем, трудно не согласиться. Любой управленец, принимая наиболее оптимальное, в интересах абсолютного большинства решение, должен выслушать несколько мнений, пусть и отличающихся друг от друга. В местные Советы люди чаще идут с бытовыми проблемами, и в основном они знают своих депутатов. Потому что он действительно их представитель. Кто принимает бюджет района или города? Депутаты. Кто утверждает после назначения в должности главу местной власти, рассматривает инвестиционные программы и так далее? Ну как без депутатов! И конечно, если в этой избирательной кампании мы сможем чуть поднять политическую культуру избирателей, то не будет пессимистов, утверждающих, что нечего ходить на местные выборы. Хочу, воспользовавшись случаем, призвать людей готовиться к кампании, посмотреть, кто выдвигается и какова программа. Кто будет отстаивать их интересы в образовании, здравоохранении, по проблемам ЖКХ, банковским вкладам. Например, ко мне до сих пор обращаются люди, особенно пожилые, которые не могут понять, почему отменили накопительные вклады, почему банки в одностороннем порядке меняют проценты по кредитам и депозитам. Много проблем. И то, что задевает, цепляет людей, депутат должен знать.

«СГ»: — Стоит ли ожидать новых подходов, лозунгов, технологий?

Г. Атаманов: — Наш лозунг забит в программе – народовластие, справедливость, социализм. Менять мы ничего не будем. Что касается технологий, они у нас наработаны, не первый раз на выборы ходим. Своих кандидатов выдвинули во все территориальные комиссии. Это те, кто владеет нормами избирательного права, пользуется авторитетом у людей.

А. Шпаковский: — Важно понимать, контекст в Беларуси уже другой, нежели в предыдущих кампаниях. Сейчас будет повышенное внимание со стороны наших соседей из Европейского союза, потому что сняты те позорные санкции, существовавшие более 20 лет в отношении нашей страны. Естественно, Евросоюз будет настаивать, чтобы Беларусь проводила выборы по лекалам и стандартам, рекомендованным ЕС.

«СГ»: — Но в основном особо пристальное и горячее внимание обычно уделялось именно президентским и парламентским выборам.

А. Шпаковский:
— Уверен, такое же внимание будет и к местным. Европейские наблюдатели будут настаивать, чтобы в местные Советы каким-то образом были проведены представители политических сил, которые пользуются их поддержкой. Также абсолютно убежден, что этого не произойдет по одной простой причине. Несмотря на бытующее в некоторых столицах мнение, что административным путем можно провести свою клиентуру в законодательные органы нашей страны, – это невозможно. У нас есть выборы, и на самом деле народ решает, кто будет представлять его интересы. Если люди решат делегировать это право, условно говоря, прозападным политическим силам, то они там будут. Но я вижу очень немного их здравых инициатив, в том числе на местном уровне, направленных на практическое улучшение жизни людей, и вижу очень мало, скажем так, локальных, местных лидеров, популярных в своем районе, городе, регионе. Это кадровая проблема этих сил, которым уже давно следовало бы перестраиваться и уходить от излишней политизации.

О. Гайдукевич: — Посмотрите, в России, какие бы ни были разные взгляды у политических партий, они спорят внутри страны, но, выезжая за рубеж, вместе отстаивают национальные интересы государства. Вы слышали хоть раз, чтобы в Совете Европы лидеры разных фракций Госдумы спорили между собой и имели различную позицию? Убежден, и мы все должны работать на национальные интересы Беларуси.

А. Шпаковский: — Что касается прогноза по явке избирателей. Во всех странах на местных выборах она невысокая. Немного внимания им уделяет пресса, телевидение, которым малоинтересно, что в таком-то доме на улице N не горит свет. К тому же меньше политическая конкуренция, борьба, соответственно, и явка ниже.
И еще один важный аспект. Вот Георгий Петрович, на мой взгляд, хороший депутат, известный в своем районе. Но нередко народные избранники, как мне представляется, недорабатывают. Победив при невысокой явке да на безальтернативной основе, человек почивает на лаврах, его не знают избиратели, и часто на вопрос, кто ваш депутат, ответа нет. Это, конечно, сказывается на явке и авторитете самих местных Советов как политического института.

«СГ»: — Не потому ли так востребованы и популярны среди людей прямые линии и встречи с представителями высшей законодательной и исполнительной власти? Да, на приемах людей становится все меньше. Да, мы знаем, что есть вечные ходоки и жалобщики или те, кому надо просто пообщаться. Но некое недоверие или неуверенность в способности местной власти решить проблему пока налицо.

О. Гайдукевич: — Проблема в том, что местная власть недорабатывает. Один из примеров, который у всех на слуху, мы прекрасно помним — Декрет по борьбе с тунеядством. Но когда в регионы выехали представители Администрации Президента, сколько проблем было решено в течение недели. Напрашивается нормальный вопрос: почему вообще пришлось ехать руководителю Администрации Президента, чиновникам из Минска?
И еще раз хочу сказать, если в Совете у депутатов одно мнение на всех и ничем не отличается от мнения председателя райисполкома, они не будут ничего активно делать. А когда есть разумные альтернативные мнения, этот местный Совет заставит руководителя района работать как ужаленного, не дожидаясь, что кто-то приедет из Минска и решит их проблемы.
Насчет оппозиции еще пару слов. На прошедших парламентских выборах был сделан анализ возрастного состава кандидатов в депутаты. Самые старые, те, кому за 60 лет, – у прозападной радикальной оппозиции. А самые молодые – у КПБ и ЛДПБ.

«СГ»: — Честно говоря, не ожидала. Становится очевидным, кто развивается, а кто в застое.

А. Шпаковский: — Действительно, у радикальной оппозиции проблема серьезнейшего кадрового разрыва. Это верхушка политиков, которые начинали деятельность 25 лет назад, ушедших в глухой антагонизм, и зеленая молодежь, движимая ложным чувством патриотизма. И практически отсутствует звено людей среднего возраста. Это важный показатель. Люди, которым в среднем 40 лет, – в основном состоявшиеся, с самостоятельным мышлением, не рассматривают такие структуры как серьезные политические факторы и точки для социального роста.
Касательно местных Советов вы абсолютно правильно поставили вопрос. Их статус необходимо повышать. У нас иногда бывает, что они, образно говоря, как игрушка в руках исполнительной власти или некое дополнение. И простой человек, попадая в эти жернова, в рамках своего района нередко ходит, как по замкнутому кругу. И получается так, что Администрация Президента, центральные органы власти захлебываются от обращений граждан, которые не относятся к их компетенции. Поэтому, повышая роль местных Советов, политических партий, не выращенных в пробирках иностранных фондов, как посредников между гражданами и государством, мы могли бы эти вопросы решить.

«СГ»: — Многие депутаты местных Советов сетуют на нехватку денежных средств для решения той или иной проблемы.

Г. Атаманов: — Да, депутаты местных Советов не получают зарплату, это все общественная нагрузка.

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

Г. Атаманов: — Местный Совет – представительный орган, определяющий бюджет, программу развития, в его компетенции заслушать отчет того или иного руководителя управления, председателя райисполкома. Это все есть. Но люди хотят, чтобы Совет исполнял функции, которые возложены на другие структуры местного управления. Кто будет ремонтировать дороги? Ремавтодор. Ставить забор? Служба ЖКХ. Вот депутат, получив эту информацию, как представитель своих избирателей обращается в эту структуру либо пишет письмо, и если на сессии ему придают статус запроса — попробуйте его не выполнить.

«СГ»: — Мы только что обсуждали неверие некоторых избирателей в реальные возможности местных депутатов…

Г. Атаманов: — Они доверяют. У них просто нет проблем. Моделирую ситуацию: человек утром встал, у него все нормально в семье, на работе. Зачем ему этот депутат? Но когда его коснулась проблема – неправильно насчитали зарплату или тарифы ЖКХ…

«СГ»: — Пойдет в исполком.

Г. Атаманов: — Нет, к депутату. Потекла крыша — сходил туда, там не решили, и он идет к депутату как к последней надежде.

О. Гайдукевич: — Денег никогда много не бывает, и всегда их будет не хватать. Но дело в том, что не всегда проблема в них, а в нежелании что-то делать. И я не раз сталкивался с ситуациями, когда выясняется, что можно было или без денег сделать или просто выполнять обязанности, которые на тебя возложены. Почему люди не идут к некоторым местным депутатам? Если они — одно неразделимое целое с исполнительной властью, целесообразнее обратиться сразу к председателю исполкома. Есть ведь и такие избранники, чего скрывать? Люди не знают, ни как его зовут, ни чем он занимается. Поэтому-то очень важно, кто попадет в местные Советы в 2018 году.

А. Шпаковский: — Не соглашусь, что люди не доверяют местным депутатам. Скорее, люди не связывают с ними надежд на решение проблем. Человеку свойственно в силу, видимо, специфики государства и того, что во главе страны находится такой сильный политик, как Александр Лукашенко, зачастую перепрыгивать через органы местной власти сразу на уровень центрального руководства. Конечно, речь идет и о политической, правовой культуре населения, но это также связано с тем, что, на мой взгляд, у депутата местного Совета недостаточно полномочий. Согласен, он может написать запрос. Однако насколько он будет приниматься во внимание – вопрос. Поэтому снова повторюсь: надо повышать статус местных Советов народных депутатов. Конечно, можно подключать и политические партии.

«СГ»: — Люди идут к депутатам не только с бытовыми вопросами, но и со своими социально-экономическими проблемами, в основном рабочие места и зарплаты. Радует, что, вопреки прогнозам Всемирного банка и других международных финансовых организаций, в этом году экономика страны набирает темп и пошла хоть и в небольшой, но все-таки рост. Однако она во многом зависит от внешних факторов. Какие производства, востребованные временем, создавать, чтобы могли зарабатывать не только внутри страны, в регионах, но и на внешних рынках? Кто это должен решать? Государство, предприниматели, местные органы власти?

Г. Атаманов: — И те, и другие, и третьи в одной связке.

«СГ»: — Но ведь известно, более 70 процентов собственности в руках государства. А оно зачастую не самый эффективный собственник.

Г. Атаманов: — Здесь я с вами, как коммунист, не соглашусь. У нас масса примеров, когда отдают предприятие в частные руки, и оно пропадает.

А. Шпаковский: — Зачем далеко ходить – Муравьев на «Мотовело».

Г. Атаманов: — В любом случае государство должно контролировать многие вещи с точки зрения законодательства. Нельзя отдавать в частные руки недра, леса, железную дорогу, связь. Кто мешает? Создавайте рабочие места, шейте одежду, обувь, ремонтируйте ее, оказывайте услуги. Но иногда инициативы нет, иногда пользуются криминальными схемами. Вот почему государственно-частное партнерство тоже должно быть отрегулировано.

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

Г. Атаманов: — Видите, даже либеральные демократы поддерживают ленинскую мысль…

А. Шпаковский: — Мы заканчиваем год с осторожным оптимизмом – рост 2 процента. Почему с «осторожным», можно долго объяснять. В целом считаю, диверсификация экспорта, Парк высоких технологий, Китайско-Белорусский индустриальный парк «Великий камень» и строительство АЭС – четыре кита, на которых в будущем должна стоять и развиваться экономика страны. В этом контексте немного запоздало, но очень важно принятие Декрета «О развитии предпринимательства», который я бы сравнил с судьбоносным в свое время решением советского правительства о введении НЭПа. Декрет – прорывной документ, нужный экономике и людям как воздух. Но в погоне за всем этим нам бы не потерять социальную ориентированность государства.

«СГ»: — Благодарю за интересный разговор, обмен мнениями, удачи на предстоящих выборах

Автор фото: Виталий ПИВОВАРЧИК
ГЕРМАНОВИЧ Ирина Львовна

Источник: «Сельская газета»

На фото:
Заместитель председателя Либерально-демократической партии Беларуси Олег ГАЙДУКЕВИЧ
Директор информационно-просветительского центра «Актуальная концепция» Александр ШПАКОВСКИЙ
Второй секретарь ЦК Компартии Беларуси Георгий АТАМАНОВ

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