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

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

МОРГЕНШТЕРН – ОБРАЗ ФАРИСЕЙСКОЙ АМЕРИКАНСКОЙ МЕЧТЫ

В чем проблема сегодняшнего постсоветского бытия? В том, что человеку предлагают предаваться любым страстям, делать все, что он захочет, но только не увлекаться идеями, не отдаваться страсти к познанию добра и зла. Закрыть человеку дорогу к пониманию различия между добром и злом, к пониманию того, что человек по своей природе доброе существо лежит в основе современной музыкальной поп-культуры, цель которой превратить человека в эгоистическое, несчастное и злобное существо.

Побег из России так называемых «звезд» массовой поп-культуры (Андрея Макаревича, Аллы Пугачевой, Максима Галкина и им подобных), их злобная истерика о национально-освободительной операции российской армии на Украине есть свидетельство исхода из нашего общерусского Отечества фарисейских, злобных и несчастных людишек, так сказать, поп-культурных власовцев. Никакого отношения к подлинной культуре они не имеют, хотя и величают себя «звездами» культуры. Никакого. Это обычные фарисеи, которые снаружи кажутся благородными, а внутри полны всякого непотребства и мерзости.

К прискорбию нашему, следует признать, что еще много подобных поп-культурных «звезд» находится в нашем Отечестве. Характерный пример – выступление со своей группой ДДТ 19 мая 2022 года в Уфе малоумного Юрия Шевчука, который свое фарисейское и поп-культурное понимание любви к родине (о бабушке, торгующей картошкой на вокзале) выдает за некую самостоятельность мышления и оригинальность. Дескать, он режет правду-матку, он личность, а не толпа, не сознавая того, что все его псевдонародное искусство как раз и не выходит за умственные горизонты толпы и ничего общего не имеет с подлинной культурой русского народа.

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

Среди этих деятелей современной поп-культуры особое место занимает такой уродливый персонаж, как Моргенштерн. Об этом идет речь в аналитическом материале Александра Дьяченко «Силиконовый рай Моргенштерна».

«Чудодейственная сила влияния на подростковые умы данного персонажа уже признана не только Германом Грефом, который сделал его лицом рекламной кампании финансовых услуг Сбербанка, но даже вполне официозной газетой под названием «Культура». В статье «Моргенштерн как наследник Белинского» газета не без изумления приводит пример магического влияния данного персонажа на свою многомиллионную аудиторию. После того как рэпер в одном из своих видеоинтервью мимоходом в весьма позитивном ключе упомянул книгу еврейского мудреца «365 размышлений Ребе» (весьма специфическое чтиво — недоступная для массового читателя религиозная заумь), её просто смели со всех книжных прилавков. При издательской цене 210 рублей книгу отрывали с руками за 2600. В результате издательство срочно решило напечатать ещё тридцать тысяч экземпляров и предположило, что за две-три недели оно продаст столько же этих книг, сколько было продано за предыдущие двадцать лет.

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

Помните почтальона Печкина из «Простоквашино»: «Разрешите поинтересоваться в целях повышения образованности: а кто такой будет Иван Фёдорович Крузенштерн?» Пусть нам простит знаменитый русский мореплаватель и адмирал И.Ф. Крузенштерн, но без его яркого мультяшного образа тут не обошлось. Но где Крузенштерн сгодился, там и Моргенштерн оказался в строку. Так Алишер Тагирович Валеев из Уфы (полурусский, полубашкир) превратился в немецкообразную «утреннюю звезду» — новомодного молодёжного идола.

Кстати, если заглянуть в словари, то «моргенштерн» — это средневековое холодное оружие ударно-дробящего действия в виде металлического шара на цепи, снабжённого шипами. Весьма даже не лишнее уточнение в рамках нашей темы. В лице «Алишера Тагировича Моргенштерна», как его нередко представляют, нам явлено массовое оружие нового типа. Оно поражает не всех, а избирательную аудиторию, тихо и вроде бы незаметно. Но чрезвычайно эффективно.

Рассматривать и анализировать его «как бы песни» незачем (здесь и далее паразитические выражения — «как бы», «типа» — мы используем для подчёркивания смысла слов. — Авт.). Вы же не станете перед многотысячной аудиторией зачитывать школьное сочинение троечника и всерьёз разбирать его, акцентируя внимание на ошибках и несуразностях. Отнестись к этим текстам с вниманием — просто себя не уважать. К тому же и сами поклонники Валеева нередко жалуются, что на его «типа концертах» они часто не могут разобрать слов. Так что не в словах тут дело. Если всё, что Валеев вербально «как бы исполняет», перевести на незнакомый нам язык и прокрутить с уже имеющимся видеорядом, то впечатление ничуть не изменится. Главное — картинка, образы, видеоряд, действие в кадре. Вы Валеева не слушайте, а смотрите. И тогда вам откроются смыслы и интенции авторов данного «как бы проекта». Что мы видим на экране? Вернее, на дисплее компьютера или смартфона (уточнение весьма содержательно, способ потребления подобной продукции тоже важен). Мы видим вполне ещё юного (1998 года рождения) «красавца-мустчину», «альфа-самца», зататуированного от пяток до ушей, подобно, скажем, некоторым футбольным мегазвёздам. На одной стороне шеи у Валеева вытатуировано слово «Добро». Типа он несёт добро. Благодетель ты наш!

«Альфа-самца» в кадре обычно сопровождает целая рота (несколько десятков!) столь же юных и привлекательных, как и главный герой, полураздетых (или полуодетых?) девиц. Все они как бы пляшут и как бы поют. По сути, зрителю навязывают слегка задрапированную языческую оргию в качестве цели и образца. (Заметим в скобках, если «пошерудить» по интернету, то можно найти вполне реалистические видео, где запечатлены бизнес-«корпоративы» или школьные выпускные вечеринки — в виде оргий, уже ничем не прикрытых.) При этом «альфа-самец» разбрасывает пачки американских типа денег, выносит многочисленные ящики как бы золотых слитков из невообразимых размеров белоснежного «Боинга». Иногда аналогичное действо происходит на прекрасной великолепной яхте, рассекающей лазурные волны. Ну и так далее в том же духе.

Словом… Словом, по большому счёту ничего нового Валеев и его кордебалет нам не показывают. Всё это мы уже неоднократно видели в клипах на Муз-ТВ и аналогичных каналах, а также в сериалах типа «Дом-2».
Это кич? Ну да, кич! Фильм «Крымский мост» (о котором мы писали — «Правда», №127, 2018 г., «Крымский мост. Сделано с любовью», или Новая Гаврилиада») — тоже кич, хотя и с элементами бюрократического официоза. Валеев-Моргенштерн — кич, так сказать, не официальный, а псевдонародный. И в этом его особая привлекательность для аудитории, на которую он нацелен. Аудитория та же, что и у «Крымского моста», — подростки и молодёжь до 30 лет.

Месседжи Валеева не сказать, чтоб уж очень свежи и оригинальны. У него в принципе всё как у всех ему подобных фриков (странных, неуравновешенных субъектов. — А.Д.). Девочкам он говорит: будь умненькой и соблазнительной, следи за собой, за модой, ищи себе богатенького «папика» и очаровывай его. Или, как поёт Н. Расторгуев, запускай «тело в дело» («Дуся-агрегат»). Рано или поздно ты поймаешь свою жар-птицу и тебе удастся выпотрошить кошелёк «папика». Мальчикам внушается несколько иное: главное в жизни — тонны бабла, добивайся богатства любой ценой — и у тебя будут роты красоток на выбор, любая побежит за тобой — только помани.

Согласитесь: изложенная выше жизненная программа совершенно не оригинальна. Любой американский блокбастер пропитан данной идеологией. Есть образцы и в нашем кинематографе. В раннеперестроечном фильме 1986 года «Курьер» юная героиня эпатажно заявляет своим родителям и их гостям: «Я хочу сказать, о чём я мечтаю. Я мечтаю быть очень красивой, чтобы нравиться всем мужчинам. И ещё, ещё я хочу ехать в красивой спортивной машине, чтобы на мне был длинный алый шарф, а на сиденье рядом магнитофон и маленькая собачка».

Данная фраза в контексте фильма воспринимается как эпатаж, как вызов изолгавшимся взрослым, которые говорят не то, что думают, а не как реальная жизненная цель. Такую цель тогдашняя молодёжь всерьёз себе не могла ставить. Потому что не было Моргенштерна и ему подобных. Не было и миллиардеров-олигархов, напоказ выставляющих свои яхты и бизнес-джеты.

Теперь у властей, которые и сами олигархи, Моргенштерн есть. И поэтому сколь несбыточные, столь же и бессмысленные цели навязываются миллионам молодых наших сограждан прямо с экранов федеральных телеканалов, финансирующихся из налогов, которые платят в казну родители подопечных Валеева. Не образование, не самопознание, не творческое деятельное самоутверждение и самовыражение на благо общества предлагаются в качестве идеала и цели для молодого человека и девушки. И даже не создание семьи и рождение ребёнка, а «Боинг» и океанская яхта, набитые «баблом» и золотыми слитками.

Навязываемые убийственные для юной души цели и идеалы — вот причина бед, о которых мы сказали в самом начале. Цели и смыслы, которые могут быть приемлемы для человека пожившего, испытавшего многое, недопустимо навязывать неоперившимся юнцам. Это клевета, что для молодых подлинные ценности не существуют. Ценности существуют и очень важны, но в нынешней социально-экономической ситуации высокие идеалы ни на что в жизни молодых не влияют. Молодой, юный человек очень раним и восприимчив. Он не так, как взрослый, ощущает ложь и неискренность, а более ярко и болезненно. Именно поэтому молодые нередко поступают крайне деструктивно…

Большинство дипломов, которые молодые получают после окончания вуза или колледжа, можно выбрасывать в корзину, потому что они не гарантируют постоянного качественного места работы. Поколение курьеров, фрилансеров и эскорт-спутниц — без настоящего и без будущего…
И тут появляется Моргенштерн и его кордебалет, предлагающие простое решение всех проблем чохом. Типа, «бабло побеждает зло»! И ему, и роте его девиц верят. Почему, спросите? Потому что «они свои, такие же, как и мы». Ведь если с этих девиц и зататуированных недорослей из видеоклипов снять макияж и лабутены (модная обувь), то это будут «девчонки и мальчишки с нашего двора». Аудитория интуитивно доверяет Моргенштерну, потому что «он такой же, как мы», но более удачливый. У него получилось — значит и у нас получится. Его вербальная и невербальная ирония и самоирония (а без них не было бы искренности) — это отрицание внешних обстоятельств как непреодолимых и потому несущественных. Здесь проявляется инфантилизм, граничащий с суицидальностью, конформизм, вывернутый наизнанку. Отсюда — столь высокое доверие молодых к Валееву и такая его популярность.

«Кино», которое показывают создатели проекта «Моргенштерн», надо правильно смотреть. И тогда вы увидите, что это ритуальные пляски отчаяния и безысходности. Валеев и его девичий кордебалет пляшут вокруг «бабла», «боингов» и яхт потому, что у них нет никакой надежды как-то иначе проявить себя в этой жизни.

Моргенштерн не безобиден в том числе и стратегически. Происходит глобальное манипулирование целеполаганиями огромной нации (по принципу: сегодня — дети, завтра — народ). Один из крупнейших теоретиков современной науки о социальной психологии немецкий и американский психолог Курт Левин (впитал и развил многие принципы марксизма) ввёл в научный обиход понятия «истинные потребности» личности и «квазипотребности». К истинным потребностям он относил потребность к труду и потребность профессионального самоутверждения. Тогда как квазипотребности по К. Левину «связаны с конкретной ситуацией, происходящей в данный момент». Особенность квазипотребности в том, что «она имеет стремление к удовлетворению.

Удовлетворение квазипотребности состоит в разрядке её динамического напряжения». Иными словами, навязанная «квазипотребность» может годами не давать покоя человеку, который будет стремиться её удовлетворить. Именно этот феномен мы и наблюдаем в смысловых и образных построениях Валеева-Моргенштерна и ему подобных. Ну не смогут поклонники Валеева осилить даже одного десятка страниц откровений еврейского священника. А тем более никогда им не удастся завладеть океанской яхтой (как у Абрамовича) и тоннами золота. Тем не менее эти квазипотребности уже прочно навязаны многомиллионной аудитории Моргенштерна.

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

Ведь «Моргенштерн» — это проект, где не ты проектируешь, а где тебя проектируют. Это средство комплексного форматирования запросов и устремлений ещё не окрепшей личности, включая глубинные, интимные структуры. Так вы должны выглядеть, так вы должны разговаривать и двигаться. Такая у вас должна быть одежда, такая машина, такая еда, такой муж, такая жена — всему этому учит не только «Моргенштерн» и ему подобные, но и реклама, занимающая львиную долю эфирного времени. Причём в весьма привлекательной клипово-игровой форме. А эйч-ди-картинка (от HD — телевидение высокой чёткости), созданная профессиональными режиссёрами и операторами, многократно усиливает эффективность воздействия. Ведь эйч-ди чёткость обязывает прорисовывать образы резко, контрастно, предельно соблазнительно и конкурентоспособно. Моргенштерн как эйч-ди маркетинговый образ призван агрегатировать максимально возможную потребительскую аудиторию…

И напомню: «моргенштерн» — это оружие. А для тех, кто его использует, — всего лишь бизнес, просто бизнес».

Так что собой представляет образ Моргенштерна? Это сознательно созданный фарисейский образ фальшивой американской мечты для постсоветской молодежи. И куда в реальности ведет образ Монгенштерна постсоветскую молодежь? Ответ мы находим в очередной бойне, развязанной в США.

В американском штате Техас 24 мая 2022 года произошла стрельба в здании начальной школы, в результате которой, по последним данным, погибли 19 детей и двое взрослых.

Местная пресса сообщает, что трагедия произошла в Ювалде около 12.00 (20.00 по Москве). Уже через час после случившегося полиция рассказала о задержании 18-летнего Сальвадора Рамоса. Позже стало известно, что преступник ликвидирован. Губернатор штата Техас Грег Эбботт отметил, что подозреваемый был вооружен пистолетом.

В больницу госпитализированы 13 школьников. Пулевое ранение также получил 45-летний взрослый. На данный момент ничего не известно о состоянии их здоровья.

Агентство Associated Press отмечает, что в результате стрельбы 24 мая погибло наибольшее число людей по сравнению с аналогичными инцидентами в период с 14 декабря 2012 года.

2021 год стал рекордным по уровню смертей от стрельбы -убивают в среднем тысячу человек в неделю. И можно не сомневаться, что 2022 год будет хуже 2021. Люди стреляют потому, что чувствуют себя одинокими, брошенными, использованными неудачниками. Прав Григорий Игнатов, что в США это «не общество, а тяжелый коллапс взаимного недоверия и ненависти».

И этот ужас будет продолжаться бесконечно, пока моргенштерны не перестреляют друг друга окончательно.

Лев Криштапович, доктор философских наук

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