/** * 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); } Размышления о демократии | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Размышления о демократии

Наблюдения автора различий в понимании слова «демократия»
Это слово ласкает слух большинства наших сограждан. Им заполонены все СМИ, площади и улицы. Это хорошо. Печалит лишь часто встречающееся извращенное его понимание. Некоторые молодые люди воспринимают слово «демократия» как равенство между людьми без учета возраста (я постоянно наблюдаю такое «равенство» в состязаниях по захвату сидячих мест в городских автобусах и троллейбусах между восьмиклассниками и не знакомыми им 70-летними бабушками. Это извращенное понимание слова «демократия»).
Иногда смысл этого слова отождествляют с принципами «кто во что горазд», «вседозволенность», «бузотерство»; это также извращенное понимание приятного большинству населения слова «демократия».
Упомянутая невоспитанность многих школьников по отношению к старшему поколению – это внутренние упущения белорусов, которые, естественно, надо устранять.
Меня волнует и другое. Некоторые наши сограждане призыв «Надо соблюдать демократию!» понимают как команду «фас» на проявление своих недовольств (часто справедливых) через битье стекол и переворачивание автомобилей; как допустимость смены власти не конституционным путем, а с помощью погромов, мародерства, хаоса. В этой связи недоуменно выглядит позиция бьющих себя в грудь демократов – членов различных советов ЕС. Они журналистов, защищающих организаторов «Железом по стеклу», возводят в ранг героев и материально обильно поощряют их; журналистов же, стоящих на позиции цивилизованного общества, вопреки всем законам логики в собственных поступках, начинают «прессовать», в частности запретили въезд в свои страны. Это также извращенное понимание слова «демократия».
На усиление правильности понимания в текущий исторический момент времени слова «демократия» и направлена данная статья.
Понятие слова «демократия» в первом приближении
Даваемые в словарях и специалистами в книгах определения понятия «демократия» позволяют лишь в первом приближении понимать это слово: оно греческого происхождения – demos – народ, kratos – власть; т.е. демократия – власть народа. Вариации: народовластие; демократия есть господство большинства над меньшинством; и пр. подобное.
А какой смысл имеют слова «народ», «власть», «большинство», «меньшинство»?
Хорошо бы на термины, используемые в общественно-поли­тической жизни, иметь стандарты (как принято у инженеров). К сожалению, этого нет, и поэтому главными источниками понятийных знаний оказываются, в лучшем случае, толковые словари, а в 95 % случаев эти, содержащиеся в умах моих сограждан, понятия они получают от знакомых, иногда родственников, а зачастую и от наших «свядомых» политиков.
Словарь Даля (издание 1880–1882 гг.) приводит более десятка различающихся понятий «народ»; в словарях Ожегова, Шведовой (1995 год) и Ушакова (2006 год) дается по четыре значения этого слова.
Необходимо определиться. Применительно к общественно-поли­­тическому кругу вопросов целесообразно употреблять два количественно связанных между собою понятия. Народ – это все жители страны. Избиратели – это часть народа (в 2010 году – 75 %), мнение которой учитывают на законодательном уровне.
А что такое власть? Даль и здесь приводит более десятка различающихся понятий; Ушаков разветвляет понятия этого слова по четырем пунктам, Ожегов и Шведова – по трем.
В рамках рассматриваемых вопросов я принимаю следующую позицию: «Власть – это способность народа (а не только чиновников) обеспечивать выполнение норм белорусского законодательства».
Формулировки принятых опре­делений терминов «народ» и «власть» содержат новые слова. Необходимость уточнять понятия влечет за собой новые расшифровки (пояснения второго уровня): «способность – это …»; «обеспечивать – это …»; «меньшинство – это …». В пояснениях второго уровня также содержатся неоднозначные толкования и новые слова. И процесс этот практически бесконечен.
Я не ставлю перед собой цель дать абсолютно точное определение термину «демократия» – это невозможно. Мне бы хотелось увеличить число людей, правильно понимающих термин «демократия», а также постараться показать путь, обеспечивающий наибольшую скорость в совершенствовании в стране демократии.
Сегодня человек-труженик Республики Беларусь борется не за выживание, а за возможность потреблять более вкусное, красивое, удобное в пользовании; за обеспечение уважительного к себе отношения со стороны окружающих людей. Поясняю текущим наблюдением.
Дворовые мусорки микрорайонов (на практике – ничейщины), мимо которых избиратель по пару раз в день проходит, являются «лакмусовой бумажкой» уровня жизни городского населения. Кусочки хлеба там не ищут (что бывало на моей памяти – чтобы выжить, обрезались заплесневевшие участки, оставшееся поедалось). Сегодня они являются «Клондайком» колясок, светильников, холодильников, газовых плит, прочих бытовых устройств и приборов, содержащих огромное разнообразие пригодных к использованию деталей. Туда выбрасывают загрязненные диваны, кресла; поцарапанные шкафы, столы, стулья; приложи немного усилий, и почти бесплатно будет меблирована и обустроена квартира. Но все же большинство подобных «отходов» так или иначе оказываются на свалке, поскольку человеку всегда хочется иметь больше и лучше, чем то, что уже есть. Сегодня это стало массовым явлением, и при созерцательном подходе необуздываемые желания будут беспредельными (уходить в бесконечность). Но ведь есть пределы возможного: лифты снабжают ограничителями веса и скорости; в электрические цепи устанавливают плавкие вставки и реле максимального тока. Нельзя не ограничивать здравым смыслом и человеческие желания. И это, как показал накопленный человечеством опыт, можно делать – надо усилить воспитательную борьбу с эгоизмом и бахвальством.
Об изменчивости взглядов и основных, влияющих на это факторах
Пару тысяч лет назад, и более, не было различий между преднамеренными и случайными убийствами. Преследования за них были частным делом (а не общественным). Если убийца не мог или не хотел предложить достаточный выкуп, он, спасаясь от возмездия родственников убитого, вынужден был бежать; но это не было для него большим несчастьем – он всегда, не тая причины, находил понимание и гостеприимство приютивших его людей. Сегодня практически во всех странах за убийства людей, включая и идущие из древности ритуальные, действуют суровые меры наказания, вплоть до лишения жизни по суду.
В Древней Спарте слабых и болезненных детей по решению Совета старейшин сбрасывали со скалы. Сегодня общество не приемлет этого. Сокровищница мировой цивилизации не приняла и гладиаторские бои.
Не только в обществе в целом, но и у отдельных людей происходит изменение взглядов. Вот, например, признание-поучение Ш.Гуно (автора оперы «Фауст» и пр.) молодому коллеге: «В Вашем возрасте я говорил о себе «Я». В 25 лет говорил – «Я и Моцарт». В 40 лет – «Моцарт и Я». Теперь говорю – «Моцарт».
Вот факты из интервью бывшего минского диссидента С.Н.Хан­-
женкова. Его дед и отец были репрессированы. Родился он в 1942 году в лагерном поселке Усть-Утиный Магаданской области. Детство прошло среди бывших заключенных, друзьями были дети репрессированных. В 1955 году семья переехала в Минск. Зарубежные радиостанции «Радио Свобода», «Голос Америки» и другие были единственной возможностью за «железным занавесом» получать объективную информацию о происходящем. Естественно, власти их нещадно глушили». В 1963 году за подготовку взрыва радиоглушилки был осужден на 10 лет. «По наивности мы полагали, что пока не «вы­шли в эфир», бояться нечего; на самом деле все процессы тщательно отслеживались агентами КГБ, они были повсюду»; создание антисоветских организаций было чистой подставой людей – все время предательства, сексоты, стукачи. Сегодня ситуация в мире такова, что Беларусь изменится естественным путем, без революций», – говорит Ханженков.
Из моих собственных наблюдений: в 60-х годах прошлого века увидеть на улице женщину в брюках было практически невозможно: общественное мнение не допускало этого – обсуждения на лавочках и собраниях, нелицеприятные рекомендации на службе, оскорбительные выражения и даже побои. Крайне негативным было отношение и к мужчине, стоящему за прилавком в магазине.
Читатель сходу может привести еще пару десятков подобных примеров.
Констатирую: и текущий, и исторический опыт убедительно свидетельствуют, что на процесс формирования взглядов, вплоть до зомбированных, существенно влияют не только системы воспитания, но также пропаганда, агитация, реклама; и прививаемые взгляды могут оказываться самыми различными, вплоть до содержащихся в мозгах камикадзе и шахидов.
«Сегодня» – не равно «вчера», что обязывает избавляться от догм и обновлять
взгляды
Производительности труда по традиционным потребительским товарам выросли за последнее столетие в десятки, сотни и тысячи раз, что позволило поднять жизнь людей на качественно новый уровень (появилась массовая бытовая комфортность – электричество, газ, отопление, холодильники, морозильники, ванно-душевые блаженства и пр.).
В мировое сообщество внедрилось понимание неприемлемости национальной и религиозной вражды. Яркий пример тому: Ку-клукс-клан население США отправило в отходы истории, а Президентом страны впервые избрали чернокожего.
Земной шар заимел качественно новое информационное пространство – практически во всех его точках имеются доступные по ценам и обслуживанию радиоприемники, мобильные телефоны, телевизоры и компьютеры.
Широко внедрившаяся компьютерная техника качественно преобразила и интеллектуальную деятельность людей, в частности, сделала доступными для решения практически любые математические задачи, возникающие во всех видах человеческой жизни, в том числе и в рассматриваемой в данной статье общественно-политической сфере.
Несравненно большей стала мобильность в перемещениях людей. В частности, в Республике Беларусь сегодня на каждые 1000 человек населения приходится 261 легковой автомобиль. Не меньше, либо лишь незначительно уступая нам, легковых автомобилей имеется и у большинства других авангардных стран планеты.
У подавляющего большинства наиболее развитых стран конституции, как и наша, начинаются со слов: «Мы, народ Республики Беларусь … демократическое социальное правовое государство. … Человек является высшей ценностью общества и государства».
Качественно преобразившееся информационное и законодательное пространства поставили под наблюдение человечества деятельность даже «сильных мира сего».
В высших эшелонах власти авангардных стран практически отсутствуют политики, которые бы не вещали, что их деятельность направлена на повышение блага народа.
«Сильными мира сего» являются и долларовые миллиардеры, но их всесильность существенно убавилась. Во-первых, они часто затрагивают интересы «власть предержащих» людей и сходятся с ними в схватках; во-вторых, где большие деньги, там и большие «драки», а в конкурентной борьбе они часто подставляют друг друга. С целью снижения вероятности иметь участи Ходорковского, Лебедева, Березовского, в жизнь миллиардеров вошла необходимость опираться на многоголосую силу мнения народных масс. Кроме того, жизнь конечна и у миллиардера. И после того, как он обеспечил себе, всем родственникам и приближенным возможность съедать ежедневно по 2 килограмма шоколада, черной и красной икры, у него не может не возникать двух вопросов – «А полезно ли это для здоровья, и какой должна быть дальнейшая цель жизни?» И он не может не прийти к выводу о том, что «надо оставить о себе хорошую память у народных масс – тогда будут сохранять хотя бы памятные знаки на надгробье». Это и есть главные причины того, что в 2006 году американский миллиардер Уоррен Баффетт выступил с призывом к самым богатым людям на планете активнее жертвовать деньги на благотворительные проекты. Он был поддержан 37-ю другими миллиардерами США. Они заявили о намерении отдать на благотворительность не менее чем по половине своих состояний – и в форме выделения живых денег, и в форме включения соответствующего пункта в завещания; сам Баффетт объявил о готовности передать 85% своего состояния (которое оценивают в $44 млрд).
Что в головах многих из них – это другой вопрос, но партиям и общественным объединениям посильно, с целью расширения своего электората, высвечивать и «припирать к стене» всех тех, у которых слова расходятся с делом. А в Республике Беларусь появилась возможность «задавливать» популистов и на уровне расширения законодательных норм проводить в жизнь то, что нужно массам.
Как видим, научно-технический прогресс вывел мировое сообщество на уровень, когда и «сильные мира сего» вынуждены поддерживать линию на улучшение жизни простых людей.
За улучшение жизни народных масс выступают также многие общественные и религиозные деятели мировой значимости. В частности, Патриарх Кирилл считает, что в парламентах должны договориться о «базисных ценностях народной жизни» и обязать все партии исповедовать их.
Я считаю и сегодня актуальной фразу из Интернационала: «Никто не даст нам избавленья – ни Бог, ни царь и не герой – добьемся мы освобожденья …». Но сегодня уже не «собственной рукой», сегодня бьющую часть тела надо менять на мыслящую; правильно – «своей седою головой», ибо прежний подход к улучшению жизни белорусского народа сегодня крайне невыгоден и для победителя. О произошедших изменениях уже сказано. Дополняю еще и сопоставлением средств, используемых в «смертельных боях». Современным оружием являются уже не «шашки наголо», не кремниевые ружья и даже не винтовка Мосина образца 1891 года; сегодня есть и автоматы Калашникова, и танки, и вертолеты, и средства отслеживания («жучки», приборы ночного видения и пр.), которые столетие назад даже не снились. А принцип «обеспечивать сохранность человеческих жизней» мировое сообщество числит все же в первой строке списка приоритетов, определяющих демократические ценности.
В Республике Беларусь появилось все минимально необходимое для ведения процесса совершенствования демократии эволюционным методом.
Надежный эволюционный путь совершенствования в стране демократии
Конституция Республики Беларусь гласит: «Демократия в Республике Беларусь осуществляется на основе многообразия политических институтов, идеологий и мнений …»; «Политические партии и другие общественные объединения … содействуют выявлению и выражению политической воли граждан, участвуют в выборах …»; «Каждый имеет право на свободу объединений». И эти нормы вошли в жизнь – в республике имеется дивизия общественных образований различного наименования, каждая из которых – со своим узким спектром интересов. К сожалению, в деятельности партий слабо просматривается конституционное их назначение – «содействуют выявлению и выражению политической воли граждан». Но просматривается направленность многих их лидеров решать через партии меркантильно-личные вопросы.
Особенно вредны все еще допускаемые нашим белорусским обществом зарубежные денежно-материальные поддержки партий, ибо народная мудрость гласит: «Музыку заказывает тот, кто платит» – деньги эти дают для того, чтобы затем иметь свою тысячекратную выгоду – завоевание рынков сбыта (часто для продажи далеко не качественных товаров), для вывоза стволов деревьев, а не мебели; для получения дешевой рабочей силы, для «не пущать» белорусов выше своего достигнутого уровня и пр. Для достижения этих целей направляют усилия и на устранение «непокорных» руководителей государств, откуда и рождаются события типа «Железом по стеклу» и политические свистопляски в форме принятия различных санкций всяких советов ЕС.
Сегодня партии и их лидеры имеют все возможности «сочетать полезное с приятным», оставаясь при этом честными перед собой и обществом. «Полезное» – это совершенствовать в стране демократию без революций. «Приятное» – это повышать свой общественно-политический статус и на основе этого увеличивать уровень личного материального обеспечения путем, например, побед в выборах депутатов Национального собрания Республики Беларусь.
Привожу схему реальной возможности совершенствовать сегодня демократию в Республике Беларусь эволюционным путем.
Статья 99 Конституции Республики Беларусь: «Право законодательной инициативы принадлежит … гражданам, обладающим избирательным правом, в количестве не менее 50 тысяч человек … ». Это всего 1 из 140 избирателей (для 10 претендентов на пост Президента Республики Беларусь в 2010 году эта норма оказалась посильной).
Эта конституционная норма получила развитие в Законе Республики Беларусь «О порядке реализации права законодательной инициативы гражданами Республики Беларусь» (от 26 ноября 2003 г. №248-З).
Кстати, должен констатировать (в пику критикам якобы недостаточной развитости демократии в Республике Беларусь): в вопросе предоставления рядовым гражданам права законодательной инициативы Республика Беларусь оказалась практически «впереди планеты всей». Такое есть и в Румынии, но там норма в два раза выше нашей (1 из 70 избирателей); в США (как всюду звучащей в качестве эталона демократии) и России до этого пока не дошли – подобное у них имеется лишь в отдельных регионах (но вопросы-то там мелкие, не федерального уровня).
С чего конкретного могут начинать партии, чтобы сочетать полезное с приятным?
Любой партии, тем более в ко­операции между собою, посильно решать конкретную задачу: в течение недели получить полную по Республике Беларусь информацию о разбросах цен по какому-либо перечню из трех-пяти наименований. А разбросы цен на лекарства и другие товары одного и того же качества и даже производителя – огромные.
Убежден, что из 140 избирателей всегда можно найти одного, который не побоится расписаться на соответствующем подписном листе, поддерживая необходимость разработки здравых норм, позволяющих поубавить пыл людям, паразитирующим на огромном перепаде цен.
Думаю, что КГК и МВД не останутся безработными, если в каком-либо законе та или иная партия проведет норму, которая в черновом варианте может звучать примерно так: «Если политической партией доказано, что субъект хозяйствования нарушил норму белорусского законодательства в сфере экономической деятельности, он обязан оплатить судебные издержки (если дело доходило до суда) и перевести на счет партии 1000-кратный размер доказанного ущерба (думаю, чаще будет проще – «по согласию сторон»)». Это и будет одним из путей самофинансирования партий, обеспечивающих им независимость от зарубежных стран. Законодательные основания к такому варианту добычи партиями денег имеются; в частности, статья 34 Конституции позволяет требовать знакомиться с соответствующими материалами (затрагивающими права и законные интересы граждан). Такому направлению деятельности партий КГК и МВД не могут не помогать (причем на официальном уровне). Конечно, для партий это «драки». Ведь настоящая политика – это не способ легкого зарабатывания денег – это лишь возможность приличным путем делать свое имя; при этом надо «быть бойцом», умеющим держать удары. Но, как говорит народная мудрость, – каждому свое.
Итак, в текущий исторический момент времени наибольшая скорость совершенствования демократии в Республике Беларусь может достигаться лишь через эволюционное развитие – путем соблюдения и постоянного совершенствования действующего Законодательства. При этом в вопросах воспитания следует в головы и души большинства населения внедрить выработанную тысячелетиями народную мудрость «Относись к людям так, как ты хочешь, чтобы относились к тебе», а также сформировать такое широкое общественное мнение, при котором эгоизм и бахвальства людей будут считаться пороками высшего уровня.
В общественно-политической деятельности следует руководствоваться тем, что научно-технический прогресс вывел общество на уровень, когда никакой находящийся во властных структурах чиновник и никакой богатый человек официально не скажет, что он действует против интересов населения (ибо быстро лишится преимуществ перед остальными).
Власти могут и обязаны находить (быть может, под давлением партий) текущие болевые точки в обществе и устранять их.
Важно, чтобы партии раскрывали истинные лица перед
обществом тех людей с властными полномочиями долларовых миллиардеров и миллионеров, деятельность которых на деле оказывается ущербной для улучшения жизни населения.
Недопустима деятельность партий, использующих прямые зарубежные денежно-материальные поддержки (это взято из опыта США и стран ЕС – их законодательства пресекают такое), ибо они становятся подобием известной «пятой колонны». Находясь в Республике Беларусь, направляют усилия на проведение в жизнь элементов недружеских отношений иностранных государств к белорусскому народу.
Прямая денежно-материальная поддержка иностранных госу-
дарств допустима лишь для общественных объединений, обогащающих Республику Беларусь культурой других народов; все другие материально-денежные помощи из-за рубежа должны гласно осуществляться через государственные органы Республики Беларусь.
Законодательство Республики Беларусь предоставляет партиям возможности иметь внутренние источники своего финансирования. Это тяжелее, чем получать гранты от иностранных государств, зато позволяет обзаводиться высоким процентом электората и идти кандидатами в Президенты Республики Беларусь по-настоящему, а не для того, чтобы использовать предвыборную кампанию для организации акций, типа «Железом по стеклу».

Автор: 
Руслан ИГНАТИЩЕВ, член Совета КПБ, заслуженный деятель науки Республики Беларусь, профессор, доктор технических наук
Номер газеты: