/**
* Redux Framework CDN Container Class
*
* @author Kevin Provance (kprovance)
* @package Redux_Framework
* @subpackage Core
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'Redux_CDN' ) ) {
class Redux_CDN {
static public $_parent;
static private $_set;
private static function is_enqueued( $handle, $list = 'enqueued', $is_script ) {
if ( $is_script ) {
wp_script_is( $handle, $list );
} else {
wp_style_is( $handle, $list );
}
}
private static function _register( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script = true ) {
if ( $is_script ) {
wp_register_script( $handle, $src_cdn, $deps, $ver, $footer_or_media );
} else {
wp_register_style( $handle, $src_cdn, $deps, $ver, $footer_or_media );
}
}
private static function _enqueue( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script = true ) {
if ( $is_script ) {
wp_enqueue_script( $handle, $src_cdn, $deps, $ver, $footer_or_media );
} else {
wp_enqueue_style( $handle, $src_cdn, $deps, $ver, $footer_or_media );
}
}
private static function _cdn( $register = true, $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script = true ) {
$tran_key = '_style_cdn_is_up';
if ( $is_script ) {
$tran_key = '_script_cdn_is_up';
}
$cdn_is_up = get_transient( $handle . $tran_key );
if ( $cdn_is_up ) {
if ( $register ) {
self::_register( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script );
} else {
self::_enqueue( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script );
}
} else {
$prefix = $src_cdn[1] == "/" ? 'http:' : '';
$cdn_response = @wp_remote_get( $prefix . $src_cdn );
if ( is_wp_error( $cdn_response ) || wp_remote_retrieve_response_code( $cdn_response ) != '200' ) {
if ( class_exists( 'Redux_VendorURL' ) ) {
$src = Redux_VendorURL::get_url( $handle );
if ( $register ) {
self::_register( $handle, $src, $deps, $ver, $footer_or_media, $is_script );
} else {
self::_enqueue( $handle, $src, $deps, $ver, $footer_or_media, $is_script );
}
} else {
if ( ! self::is_enqueued( $handle, 'enqueued', $is_script ) ) {
$msg = __( 'Please wait a few minutes, then try refreshing the page. Unable to load some remotely hosted scripts.', 'redux-framework' );
if ( self::$_parent->args['dev_mode'] ) {
$msg = sprintf( __( 'If you are developing offline, please download and install the Redux Vendor Support plugin/extension to bypass the our CDN and avoid this warning', 'redux-framework' ), 'https://github.com/reduxframework/redux-vendor-support' );
}
$msg = '' . __( 'Redux Framework Warning', 'redux-framework' ) . ' ' . sprintf( __( '%s CDN unavailable. Some controls may not render properly.', 'redux-framework' ), $handle ) . ' ' . $msg;
$data = array(
'parent' => self::$_parent,
'type' => 'error',
'msg' => $msg,
'id' => $handle . $tran_key,
'dismiss' => false
);
Redux_Admin_Notices::set_notice($data);
}
}
} else {
set_transient( $handle . $tran_key, true, MINUTE_IN_SECONDS * self::$_parent->args['cdn_check_time'] );
if ( $register ) {
self::_register( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script );
} else {
self::_enqueue( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script );
}
}
}
}
private static function _vendor_plugin( $register = true, $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script = true ) {
if ( class_exists( 'Redux_VendorURL' ) ) {
$src = Redux_VendorURL::get_url( $handle );
if ( $register ) {
self::_register( $handle, $src, $deps, $ver, $footer_or_media, $is_script );
} else {
self::_enqueue( $handle, $src, $deps, $ver, $footer_or_media, $is_script );
}
} else {
if ( ! self::$_set ) {
$msg = sprintf( __( 'The Vendor Support plugin (or extension) is either not installed or not activated and thus, some controls may not render properly. Please ensure that it is installed and activated', 'redux-framework' ), 'https://github.com/reduxframework/redux-vendor-support', admin_url( 'plugins.php' ) );
$data = array(
'parent' => self::$_parent,
'type' => 'error',
'msg' => $msg,
'id' => $handle,
'dismiss' => false
);
Redux_Admin_Notices::set_notice($data);
self::$_set = true;
}
}
}
public static function register_style( $handle, $src_cdn = false, $deps = array(), $ver = false, $media = 'all' ) {
if ( self::$_parent->args['use_cdn'] ) {
self::_cdn( true, $handle, $src_cdn, $deps, $ver, $media, $is_script = false );
} else {
self::_vendor_plugin( true, $handle, $src_cdn, $deps, $ver, $media, $is_script = false );
}
}
public static function register_script( $handle, $src_cdn = false, $deps = array(), $ver = false, $in_footer = false ) {
if ( self::$_parent->args['use_cdn'] ) {
self::_cdn( true, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true );
} else {
self::_vendor_plugin( true, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true );
}
}
public static function enqueue_style( $handle, $src_cdn = false, $deps = array(), $ver = false, $media = 'all' ) {
if ( self::$_parent->args['use_cdn'] ) {
self::_cdn( false, $handle, $src_cdn, $deps, $ver, $media, $is_script = false );
} else {
self::_vendor_plugin( false, $handle, $src_cdn, $deps, $ver, $media, $is_script = false );
}
}
public static function enqueue_script( $handle, $src_cdn = false, $deps = array(), $ver = false, $in_footer = false ) {
if ( self::$_parent->args['use_cdn'] ) {
self::_cdn( false, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true );
} else {
self::_vendor_plugin( false, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true );
}
}
}
}
/**
* Redux Framework Private Functions Container Class
*
* @package Redux_Framework
* @subpackage Core
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Don't duplicate me!
if ( ! class_exists( 'Redux_Functions' ) ) {
/**
* Redux Functions Class
* Class of useful functions that can/should be shared among all Redux files.
*
* @since 1.0.0
*/
class Redux_Functions {
static public $_parent;
public static function isMin() {
$min = '';
if ( false == self::$_parent->args['dev_mode'] ) {
$min = '.min';
}
return $min;
}
/**
* Sets a cookie.
* Do nothing if unit testing.
*
* @since 3.5.4
* @access public
* @return void
*
* @param string $name The cookie name.
* @param string $value The cookie value.
* @param integer $expire Expiry time.
* @param string $path The cookie path.
* @param string $domain The cookie domain.
* @param boolean $secure HTTPS only.
* @param boolean $httponly Only set cookie on HTTP calls.
*/
public static function setCookie( $name, $value, $expire = 0, $path, $domain = null, $secure = false, $httponly = false ) {
if ( ! defined( 'WP_TESTS_DOMAIN' ) ) {
setcookie( $name, $value, $expire, $path, $domain, $secure, $httponly );
}
}
/**
* Parse CSS from output/compiler array
*
* @since 3.2.8
* @access private
* @return $css CSS string
*/
public static function parseCSS( $cssArray = array(), $style = '', $value = '' ) {
// Something wrong happened
if ( count( $cssArray ) == 0 ) {
return;
} else { //if ( count( $cssArray ) >= 1 ) {
$css = '';
foreach ( $cssArray as $element => $selector ) {
// The old way
if ( $element === 0 ) {
$css = self::theOldWay( $cssArray, $style );
return $css;
}
// New way continued
$cssStyle = $element . ':' . $value . ';';
$css .= $selector . '{' . $cssStyle . '}';
}
}
return $css;
}
private static function theOldWay( $cssArray, $style ) {
$keys = implode( ",", $cssArray );
$css = $keys . "{" . $style . '}';
return $css;
}
/**
* initWpFilesystem - Initialized the Wordpress filesystem, if it already isn't.
*
* @since 3.2.3
* @access public
* @return void
*/
public static function initWpFilesystem() {
global $wp_filesystem;
// Initialize the Wordpress filesystem, no more using file_put_contents function
if ( empty( $wp_filesystem ) ) {
require_once ABSPATH . '/wp-includes/pluggable.php';
require_once ABSPATH . '/wp-admin/includes/file.php';
WP_Filesystem();
}
}
/**
* verFromGit - Retrives latest Redux version from GIT
*
* @since 3.2.0
* @access private
* @return string $ver
*/
private static function verFromGit() {
// Get the raw framework.php from github
$gitpage = wp_remote_get(
'https://raw.github.com/ReduxFramework/redux-framework/master/ReduxCore/framework.php', array(
'headers' => array(
'Accept-Encoding' => ''
),
'sslverify' => true,
'timeout' => 300
) );
// Is the response code the corect one?
if ( ! is_wp_error( $gitpage ) ) {
if ( isset( $gitpage['body'] ) ) {
// Get the page text.
$body = $gitpage['body'];
// Find version line in framework.php
$needle = 'public static $_version =';
$pos = strpos( $body, $needle );
// If it's there, continue. We don't want errors if $pos = 0.
if ( $pos > 0 ) {
// Look for the semi-colon at the end of the version line
$semi = strpos( $body, ";", $pos );
// Error avoidance. If the semi-colon is there, continue.
if ( $semi > 0 ) {
// Extract the version line
$text = substr( $body, $pos, ( $semi - $pos ) );
// Find the first quote around the veersion number.
$quote = strpos( $body, "'", $pos );
// Extract the version number
$ver = substr( $body, $quote, ( $semi - $quote ) );
// Strip off quotes.
$ver = str_replace( "'", '', $ver );
return $ver;
}
}
}
}
}
/**
* updateCheck - Checks for updates to Redux Framework
*
* @since 3.2.0
* @access public
*
* @param string $curVer Current version of Redux Framework
*
* @return void - Admin notice is diaplyed if new version is found
*/
public static function updateCheck( $parent, $curVer ) {
// If no cookie, check for new ver
if ( ! isset( $_COOKIE['redux_update_check'] ) ) { // || 1 == strcmp($_COOKIE['redux_update_check'], self::$_version)) {
// actual ver number from git repo
$ver = self::verFromGit();
// hour long cookie.
setcookie( "redux_update_check", $ver, time() + 3600, '/' );
} else {
// saved value from cookie. If it's different from current ver
// we can still show the update notice.
$ver = $_COOKIE['redux_update_check'];
}
// Set up admin notice on new version
//if ( 1 == strcmp( $ver, $curVer ) ) {
if ( version_compare( $ver, $curVer, '>' ) ) {
$msg = 'A new build of Redux is now available!
Your version: ' . $curVer . ' New version: ' . $ver . '
If you are not a developer, your theme/plugin author shipped with dev_mode on. Contact them to fix it, but in the meantime you can use our dev_mode disabler.
Также с необычными просьбами он сам донатит крупные суммы другим блогерам. Mellstroy (настоящее имя интернет-звезды — Андрей Бурим) родился 15 декабря 1998 года в белорусском Гомеле, в семье слесаря и продавщицы. Денег постоянно не хватало, поэтому Андрей с самого детства решительно хотел разбогатеть. Он увлекался игрой в Minecraft и в какой-то момент решил начать на ней зарабатывать. Mellstroy создал собственный сервер, бросив все силы и карманные деньги в рекламу.
По состоянию на март 2024 года блогер выплатил более миллиона долларов (92,4 миллиона рублей) за нарезки с его участием.
Если судить по стримам, то парень ведет разгульный образ жизни, пользуясь меркантильностью некоторых девушек.
Если вы не в теме и не понимаете, кто это такой и чем он так зацепил людей, то рассказываем.
А просмотр эфиров блогера, который то и дело выигрывает крупные суммы, создает ощущение, что можно победить и быстро заработать.
В целях поддержания самопиара Андрей проводит конкурсы на своих стримах.
С таким контентом онлайн стримера начал расти стремительно вверх.
Получив привет от президента Литвы, блогер остался недоволен. Все шло замечательно, Mellstroy активно набирал новую аудиторию, но в марте 2017 года на контент Бурима наткнулся ютубер, музыкант Данила Кашин (известный как DK). ДК записал видео, в котором он поведал о стримах Андрея, в частности, рассказал о том, какая “грязь” там творится. Разгорелся настоящий скандал, поскольку среди девушек из чат-рулетки были в том числе и несовершеннолетние. Мэлом заинтересовались сотрудники милиции Беларуси, о чем он узнал, находясь на паре в колледже.
Скандалист и эпатажник Андрей Бурим
В чат-рулетке участвовали несовершеннолетние девушки, поэтому Андрей подвергся уголовному преследованию за педофилию. Когда он сидел в колледже на паре, полицейские ворвались к нему домой, конфисковали компьютеры и начали проводить экспертизу контента. Андрей пустился в бега, но умудрялся продолжать стримить. Мелстрой в какой-то момент решил уйти из киберспортивного стриминга, так как ролики набирали не очень много просмотров. После долгих поисков ниш и идей юный бизнесмен выбрал направление чат-рулеток. Широкой общественности, далекой от треш-стримов, Бурим стал известен в 2020 году, когда все российские СМИ облетела новость о том, как он избил модель Алену Ефремову.
Или 30 миллионов рублей за выбегание на поле в финале Лиги чемпионов с его логотипом.
Но всё это направлено на поддержание образа, привлечение поклонников и самопиар с целью дальнейшего увеличения доходов.
Далее в биографии Мэлстроя ознаменовался новый этап, а именно переход на чистый “life-контент”.
И рисуют привлекательную картинку азартных игр в онлайне.
В финальном матче футбольной Лиги чемпионов на поле выбежали три молодых человека с надписью «Мелстрой» на футболках.
Дорогой автомобиль получил один из его фанатов, задонативший Мелстрою в общей сложности 2 миллиона рублей.
Мелстрою передают привет один из лучших футболистов мира Килиан Мбаппе и президент Литвы. Мелстрой пообещал 30 миллионов рублей тому, кто выбежит на поле в финале Лиги чемпионов. Наконец, 20 марта стрим Мелстроя одновременно смотрели 720 тысяч человек — это рекорд рунета. В 2024 году на стримера завели уголовное дело за уклонение от службы в армии. Согласно данным СМИ, именно по этой статье Бурим так же был объявлен в розыск и МВД РФ, но официальной информации о статье, по которой блогера объявили в розыск так и не появилось. На видеохостинге YouTube получил известность благодаря проведению стримов IRL тематики — общение, общался в основном с девушками из чат рулеток.
Решение играть в казино остается на усмотрение каждого, так же как и выбор различных способов заработка. Правда, долго стример не продержался – Екатерина Мизулина сообщила, что он вновь объявлен в розыск в России по статье УК, но не сообщается, по какой именно. Мелстрой предпочитает вести стримы именно на YouTube, поскольку Twitch более строг к контенту. На YouTube каналы Андрея банили много раз, и он создавал новые.
У стримера давно начались проблемы с законом
Блогеры играют в него на эфирах, предлагают промокоды и завлекают зрителей. Роскомнадзор добивается блокировки таких аккаунтов на «Твиче» и «Ютубе», но платформы вроде Kick позволяют авторам гораздо больше. Сайт представляет информационную составляющую, где собраны последние стримы Мелстроя, а также список казино, где играет Мелстрой.
Правда, в конце марта, как отмечает Mash, фамилия Бурима пропала из баз розыска и в России, и в Белоруссии.
Так, за одно удачное видео с ним, которое соберет 1 млн просмотров, автор должен был получить $200, а за 100 тыс.
На этом конкурсы и варианты заработать от Бурима не заканчиваются.
Более того, в 2024 году блогер придумал еще один способ самопиара, помимо платы за приветы от знаменитостей.
По одной из версий, которую приводит Mash, на Бурима завели дело за уклонение от службы в белорусской армии.
Девушка подала заявление в полицию, и на блогера завели первое уголовное дело. Впрочем, блогер чудом сумел миновать тюрьмы, получив всего полгода исправительных работ и штраф в размере 72 тысяч рублей. Далее в биографии Мэлстроя ознаменовался новый этап, а именно переход на чистый “life-контент”. Бурим начинает стримить свои веселые посиделки с друзьями и девушками. Такой контент ещё больше пришелся по нраву огромному пласту зрителей – боровам. Онлайн-трансляции Мэла любят за зашкаливающий уровень трэша и разврата.
Это не название какого-то бренда или компании, а никнейм белорусского mellstroyа, который привлекает к себе внимание эпатажными выходками. Если вы не в теме и не понимаете, кто это такой и чем он так зацепил людей, то рассказываем. На весну 2020 года Андрей не был замечен в серьезных отношениях.
Если судить по стримам, то парень ведет разгульный образ жизни, пользуясь меркантильностью некоторых девушек. Школьник создал несколько аккаунтов во «ВКонтакте» и стал «спамить» в комментариях каждой группы, посвященной Minecraft, ссылкой на свой сервер. Постепенно его маленький бизнес начал приносить прибыль.
Откуда у Mellstroy так много денег?
Он пообещал платить подписчикам по 200 долларов (около 18,5 тысячи рублей) за 1 миллион просмотров видео с его участием, опубликованных в TikTok, Instagram Reels или YouTube Shorts. Вероятно, именно по этой причине ролики с Mellstroy теперь нередко встречаются в ленте рекомендаций на различных платформах. По состоянию на март 2024 года блогер выплатил более миллиона долларов (92,4 миллиона рублей) за нарезки с его участием.
В феврале Mellstroy сбежал в Турцию из ОАЭ, так как на него в Эмиратах завели очередное уголовное дело — за то, что он публично оскорбил мужчину в ночном клубе. В итоге литовский школьник встретил президента Литвы Гитанаса Науседу и попросил его записать обращение. Мелстрой заявил, что «за два зеленых лимона ждал обращение покачественнее». Позже Бурим сказал, что не отказывает подписчику в вознаграждении, но уменьшит сумму и свяжется с родителями мальчика.
Мелстрой недавно объявил себя банкротом
Так, например, на блогера в соцсетях подписался самый популярный YouTube-блогер MrBeast, а чемпион мира по футболу и игрок французского ПСЖ Килиан Мбаппе передал ему привет. Известно, что девушка, которая попросила футболиста записать видео с приветствием, уже получила свою выплату — 30 млн руб. Тому же, кто уговорил «Мистера Биста» на подписку, Mellstroy точно отправил половину выигрыша (75 млн руб.).
Популярность получил в 2020 году, когда на одном из своих стримов избил девушку. Первое задание — прислать видеообращение с приветствием от футболистов Лионеля Месси, Криштиану Роналду, Килиана Мбаппе или Эрлинга Холанда. Он подошел к президенту с включенной камерой на смартфоне и попросил передать привет Mellstroy, не уточняя, кем он является. Науседа исполнил просьбу мальчика, поздоровался со стримером и поздравил его с национальным праздником. Непопулярная в России платформа Kick не приносила Мелстрою тех просмотров, к которым он привык.
Но стримеры тратят не свои деньги, они фактически играют бесплатно. И рисуют привлекательную картинку азартных игр в онлайне. В июле 2021 года блогеру вынесли приговор — шесть месяцев исправительных работ с удержанием десяти процентов заработной платы. Также Бурима обязали выплатить Ефремовой 72 тысячи рублей. К нелегальным онлайн-казино стример привлекает аудиторию не только демонстрацией своей роскошной жизни, но и различными конкурсами.
Кто такой Мелстрой: его фанаты срывают футбольные и хоккейные матчи
Дорогой автомобиль получил один из его фанатов, задонативший Мелстрою в общей сложности 2 миллиона рублей. Доходы и количество зрителей ютубера стремительно растут, Андрей начал снимать более дорогие апартаменты в “Moscow City”. Именно здесь Бурим начал собирать рекордное количество зрителей, а к парню на стримы стали заглядывать известные артисты и блогеры. Андрей Бурим умудрился серьезно нарушить закон всего спустя несколько месяцев после переезда в Россию. В октябре 2020 года на одном из своих стримов Mellstroy избил 21-летнюю модель Алену Ефремову. Блогер несколько раз ударил ее головой об стол, потому что «она вела себя вызывающе».
Почему Мелстрой — отрицательный интернет-персонаж
Стражи правопорядка наведались домой к интернет-деятелю, изъяли компьютеры и начали проводить экспертизу контента Мэллстроя. Еще в 2020 году, когда треш-стримы Бурима уже набрали популярность, ему стали предлагать сотрудничество различные онлайн-казино. Mellstroy охотно соглашался рекламировать игорные клубы, чем вызывал недоумение и порицание своих коллег-блогеров.
Учитывая это, даже если Мелстрой проиграл все свои деньги в казино, он может легко продать эти дорогие артефакты и вновь стать самым богатым блогером. Если, конечно, эти машины он действительно приобрел, а не взял покататься на время. Приветствую гостей и постоянных читателей сайта artchange.ru. Поэтому стримеры становятся негласной прослойкой между казино и его потенциальными клиентами.