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

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

Паэт і грамадзянін зямлі беларускай (Да 100-годдзя з дня нараджэння Аркадзя Куляшова)

Каго з нас ў жыцці хоць раз не захапляла і магнетычна не зачароўвала музыка і праніклівыя словы знакамітай песні «Алеся» ў выкананні беларускага ансамбля «Песняры» з яе мілагучнымі зачыннымі радкамі:

Бывай, абуджаная сэрцам, дарагая,
Чаму так горка? Не магу я зразумець…
Шкада заранкі мне, што ў небе дагарае
На ўсходзе дня майго, якому ружавець.

І не кожны ведае, што словы гэтай песні, прасякнутай глыбокім сардэчным болем лірычнага героя пад час растання з каханай дзяўчынай, належалі ўсяго толькі чатырнаццацігадоваму юнаку, ранні мастацкі талент якога змог з такой філіграннай амаль фізічнай дакладнасцю і тонкасцю душэўнага перажывання перадаць роспач, смутак і высакароднасць жыццёва-неспатольнага хлапечага сардэчнага болю і расчаравання ад першай любоўнай калізіі жыцця. А якім духоўным гімнам узвышанаму пачуццю кахання гучаць апошнія акордныя радкі гэтага твора:

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

Увесь свой магутны, рана расквітнеўшы талент паэта Аркадзь Куляшоў прысвяціў служэнню свайму народу, любай Бацькаўшчыне, чые радасці і перамогі гора і трывогі ўспрымаў заўсёды блізка да сэрца з ўсёй моцай сваго творчага парывання і натхнення.

Разам з тым Аркадзь Куляшоў адначасна быў і шчырым патрыётам сваёй Радзімы – СССР, адданым сынам новай савецка-сацыялістычнай эпохі, якая ўпершыню ў свеце ўзнесла на пастамент чалавека працаўніка, чалавека з высокімі гуманістычнымі парываннямі да справядлівасці, высакароднасці і развіцця.

Нарадзіўся паэт у сям'і настаўнікаў 6 лютага 1914 года ў вёсцы Саматэвічы Касцюковіцкага раёна Магілёўскй вобласці ў трагічны для ўсяго чалавецтва час – пачатку Першай сусветнай вайны. Менавіта пад знакам дзвюх сусветных войн найбольш сябе і выявіла ХХ стагоддзе, калі выразна актывізаваліся найбольш агалцелыя і разбуральныя сілы нянавісці, лютасці да свабодалюбівай сутнасці чалавечага існавання чалавечай духоўнасці і салідарнасці.

Лірычны герой яго шматлікіх ранніх вершаваных твораў – гэта чалавек адкрытай душы да іншага чалавека, дзе пануе шчырае пачуццё даверу, спагады і нясцерпнай прагі да гармоніі свету і самаўдасканалення.

Святло і цеплыня душы, трымценне няўрымслівага сэрца, чысціня і адказнасць чалавечага розуму становяцца для маладога паэта праваднікамі ў спазнанні прыроднага і сацыяльнага свету рэчаіснасці. Так у адным з сваіх вершаў пад назвай «Воблака(1939)», творца з натуральнай дакладнасцю перадае ўнутраны цудадзейсны настрой ранішняй рыбалкі, дзе прырода і лірычны герой твора зліваюцца ў адзіным рытме існавання і суперажывання.

Стаіў дыханне. Цішыня…
Убок рукой умелай
Я падсякаю галаўня,
Цягну з хмарынкі белай.
Вада ў кругах, вада ў кругах,
І неба ў ёй не тое…
А воблака? Яно ў руках
Трапечацца жывое.

На пачатку творчасці ў 30-40 гады ХХ стагоддзя ў лірыцы маладога паэта дамінуюць рамантычна-ўзнёслыя тэмы, прысвечаныя жыццю савецкай моладзі, дзе паэтызуюцца такія юнацкія парыванні такія як сяброўства, давер, узаемадапамога, інтымныя эмоцыі, пачуцці і перажыванні аб першым, часцей нераздзеленым каханні.

Аднак паралельна з гэтым у паэзіі Аркадзя Куляшова гэтага перыяду ўжо прыкметны праявы закранання глыбока сацыяльнай і філасофскай тэматыкі, дзе пераважаюць ужо матывы і роздумы аб сэнсе жыцця, аб сваім грамадзянскім прызванні і адказнасці прад людзьмі, народам, Радзімай.

Асабліва паказальным выступае у гэтым ракурсе з'яўляецца верш «Мая Бесядзь» (1940), дзе патрыятычна настроены юнак імнецца з усёй моцай сваёй натхнёнай натуры перадаць крэда свайго паэтычнага і жыццёвага прадвызначэння і служэння.

Бо прагай да працы ахоплены часта я,
І сэрца абпалена смагай радка,
Бо жыць не магу,
Як каня няшчасная,
Кропляй жажджу з лесавога лістка.

Выкарыстаўшы вядомы фальклорна-казачны матыў аб «няшчаснай і праклятай птушкамі кані-кнігаўкі», якая вымушана з-за сваёй ганарлівасці і ляноты, спатольваць сваю смагу толькі схопліваючы кроплі вады з лісткоў дрэў. Паэт выразна дае зразумець нам у чым ён бачыць праўду жыцця і каштоўнасць чалавечага існавання. А яна, па яго разуменню, у добрасумленнай працы, у сяброўскім калектывізме, у спагадзе да кожнага хто прыносіць дабрыню, карысць і радасць іншым.

Па-дыяпазону, вельмі разнастайны тэматычна і шматаблічны ў стылістычнай і жанравай распрацоўцы патрыятычны пафас паэзіі А. Куляшова, які ва ўсю моц раскрыўся ў гады Вялікай Айчыннай вайны. Як вядома паэт ужо ў першыя дні вайны ўступае ў Чырвоную Армію і пасля сканчэння ваенна-палітычнага вучылішча працуе караспандэнтам армейскай газеты «Знамя Советов».

Квінтэсенцыяй яго ваеннай лірыкі можна лічыць паэму «Сцяг брыгады» напісаную ў форме франтавога дзённіка байца. За гэты твор паэу была прысуджана Дзяраўная прэмія. Тэма змагання, подзвігу, помсты ворагу за ўчыненыя ім злачынствы, матыў адданасці ідэалам ранейшага сацыялістычнага мірнага жыцця становіцца важнейшай рысай лірычнага голасу песняра.

У структурна-паэтычным плане паэт змог распрацаваць сваю адметную жанрава-стылістычную вершаваную форму ў перадачы трагічна-драматычных падзей вайны, такой формай стаў індывідуальна-адметныя вершы-балады. Прыгадаем толькі некаторыя з іх «Над брацкай магілай», «Балада аб чатырох заложніках», «Камсамольскі білет»…

Так ў апошняй з названых балад галоўнаму герою твора юнаку-камсамольцу вораг жандарм прапаноўвае, здавлася вельмі выгодны размен –за знішчэнне камсамольскага білета даруецца жыццё. Жандар па логіцы свайго светаўспрымання амаль упэўнены ў выгоднасці і безальтэрнатыўнасці дадзенай прапановы.

Вось і білет твой, - сказаў ён ласкава, -
І ад яго на вачах у людзей
Ты адцурайся; выгодная справа:
Жыць застанешся, - жыццё даражэй.

Камсамолец адмаўляецца ад розных варыянтаў расправіцца, са здавалася, простым прадметам, кніжачкай. І пагэтаму гераічна гіне ад рук ворагаў, будучы закатаваным «вадой студзяною».
У наш сенняшні час калі метафізічны каркас жыцця даў глыбокую трэшчыну, шмат каму думаецца, што камсамолец дарэмна не прыняў прапанову жандара-фашыста.

Большая частка сучаснай так званай дэмакратычнай прэсы пастаралася за апошнія 20 год амаль поўнасцю пераканаць людзей ў тым, што толькі змаганне за камфорт і радасць целесную і ёсць той асноўны сэнс жыцця, за які толькі і трэба трымацца, а ўсё астатняе ёсць абстрактная бязглуздзіца, «ружовы туман».

Гэтыя тэарэтыкі «чачавічнай пахлёбкі» зрабілі ўсё, каб з нашага жыцця вытравіць праявы і сутнасць паняццяў подзвіг і гераізм і назваць нармальным і сапраўдным такое існавання індывіда, якое выразна паніжае планку яго чалавечай годнасці, робіць чалавека заложнікам сваіх толькі цялесна-пачуццёвых здавальненняў і спіхвае людзей у прорву жывёльнага існавання.

Так, можна спрачацца аб тым, ці заўсёды апраўданы той ці іншы гераічны ўчынак і якія матывы яму папярэднічаюць, але калі ў жыцці наогул не будзе месца подзвігу, ці можам мы такое жыццё назваць чалавечым.

Сёння асабліва злапыхацельныя пратаганісты і радзецелі «новых каштоўнасных ідэалаў» вельмі актыўна жадаюць нам навязаць думку аб тоеснасці і амаль індэнтычнасці паняццяў камунізм і фашызм, каб крыху пазней у палітычна-прававым аспекце зрабіць новы Нюрбергскі працэс над пераможцамі фашызму, і гэтым самым падспудна рэабілітаваць цемрашальска-гнастычны варыянт развіцця для большай часткі Чалавецтва, яркім выразніком якога і з'яўляўся фашызм – перадавая кагорта чалавеканенавіснай буржуазнай ідэалогіі антыгуманізма.

Фашызм гэта філасофія нявер'я чалавека ў чалавека, якая адмяняе працэс развіцця, і прагна імкнецца спыніць яго «новым рымам-рэйхам», тым самым адначасна спыніць працэс узвышэнне чалавечай асобы, праз розныя эсхалатычныя тэорыі «завяршэння і знікнення гісторыі» і найбольш клапоцячыся пра магчымасць асабітага выжывання «залатога міліярда», каб найперш задаволіць свае ўсё ўзрастаючыя вычварэнскія, сада-мазахісткія амбіцыі. Ці нам аб гэтым забываць?

Ненажэрны сусветны капіталістычны монстр ХХ стагоддзя рабіў ўсё, каб натравіць і сутыкнуць свайго фашысцкага выкармыша на краіну Саветаў з яе камуністычнымі ідэаламі, каб найхутчэй пазбавіцца ад свайго галоўнага метафізічнага і цывілізаванага ворага, а па Марксу свайго магільшчыка.

У гады ІІ Сусветнай вайны гэта не ўдалося, але на прыканцы ХХ стагоддзя, у нейкай меры, часовы рэванш адбыўся. Чалавецтва ў небяспецы. Ці не пра гэта папярэджваў нас яшчэ ў далёкія 40-я А. Куляшоў у сваім знакамітым вершы «Камуністы» (1948) напісаным да 100-ддзя выхаду «Маніфеста Камуністычнай партыі».

Камуністы – гэта слова, як са сталі,
Камуністы – гэта слова, як з агню.
Маркс і Энгельс нам імя такое далі
Сто гдоў таму назад упершыню.

Гэтым словам, гэтым імем самым чыстым
Самых блізкіх мне я клічу не адзін,
Я хачу, каб называўся камуністам
Родны сын мой, а таксама сынаў сын.

Пасля перамогі над авангарднымі сіламі капіталістычнага д'ябальскага свету паэт мог годна сказаць слова пра камуністаў свайго і мінулага пакаленняў. Больш таго ён быў амаль упэўнены, што слаўныя традыцыі і справы сваіх папярэднікаў прадоўжаць іх нашчадкі.

І хоць гісторыя не заўсёды мае прамыя шляхі для ўвасаблення лепшых чалавечых ідэалаў, яна імкнецца заўсёды ўтрымліваць іх вялікі духоўны патэнцыял у сваіх глыбінных пластах жыцця людзей. Будзем спадзявацца, што паэзія і жыццё А. Куляшова будзе адным з важных чыннікаў для нас беларусаў у служэнні дабру, справядлівасці і свабоды кожнага чалавека і Чалавецтва ў цэлым.

Автор: 
Iгар Шаладонаў, кандыдат фiлалагiчных навук, член КПБ
Номер газеты: 
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
9 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.