if (!class_exists('WhiteC_Theme_Setup')) {
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* @since 1.0.0
*/
class WhiteC_Theme_Setup
{
/**
* A reference to an instance of this class.
*
* @since 1.0.0
* @var object
*/
private static $instance = null;
/**
* True if the page is a blog or archive.
*
* @since 1.0.0
* @var Boolean
*/
private $is_blog = false;
/**
* Sidebar position.
*
* @since 1.0.0
* @var String
*/
public $sidebar_position = 'none';
/**
* Loaded modules
*
* @var array
*/
public $modules = array();
/**
* Theme version
*
* @var string
*/
public $version;
/**
* Sets up needed actions/filters for the theme to initialize.
*
* @since 1.0.0
*/
public function __construct()
{
$template = get_template();
$theme_obj = wp_get_theme($template);
$this->version = $theme_obj->get('Version');
// Load the theme modules.
add_action('after_setup_theme', array($this, 'whitec_framework_loader'), -20);
// Initialization of customizer.
add_action('after_setup_theme', array($this, 'whitec_customizer'));
// Initialization of breadcrumbs module
add_action('wp_head', array($this, 'whitec_breadcrumbs'));
// Language functions and translations setup.
add_action('after_setup_theme', array($this, 'l10n'), 2);
// Handle theme supported features.
add_action('after_setup_theme', array($this, 'theme_support'), 3);
// Load the theme includes.
add_action('after_setup_theme', array($this, 'includes'), 4);
// Load theme modules.
add_action('after_setup_theme', array($this, 'load_modules'), 5);
// Init properties.
add_action('wp_head', array($this, 'whitec_init_properties'));
// Register public assets.
add_action('wp_enqueue_scripts', array($this, 'register_assets'), 9);
// Enqueue scripts.
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 10);
// Enqueue styles.
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'), 10);
// Maybe register Elementor Pro locations.
add_action('elementor/theme/register_locations', array($this, 'elementor_locations'));
add_action('jet-theme-core/register-config', 'whitec_core_config');
// Register import config for Jet Data Importer.
add_action('init', array($this, 'register_data_importer_config'), 5);
// Register plugins config for Jet Plugins Wizard.
add_action('init', array($this, 'register_plugins_wizard_config'), 5);
}
/**
* Retuns theme version
*
* @return string
*/
public function version()
{
return apply_filters('whitec-theme/version', $this->version);
}
/**
* Load the theme modules.
*
* @since 1.0.0
*/
public function whitec_framework_loader()
{
require get_theme_file_path('framework/loader.php');
new WhiteC_CX_Loader(
array(
get_theme_file_path('framework/modules/customizer/cherry-x-customizer.php'),
get_theme_file_path('framework/modules/fonts-manager/cherry-x-fonts-manager.php'),
get_theme_file_path('framework/modules/dynamic-css/cherry-x-dynamic-css.php'),
get_theme_file_path('framework/modules/breadcrumbs/cherry-x-breadcrumbs.php'),
)
);
}
/**
* Run initialization of customizer.
*
* @since 1.0.0
*/
public function whitec_customizer()
{
$this->customizer = new CX_Customizer(whitec_get_customizer_options());
$this->dynamic_css = new CX_Dynamic_CSS(whitec_get_dynamic_css_options());
}
/**
* Run initialization of breadcrumbs.
*
* @since 1.0.0
*/
public function whitec_breadcrumbs()
{
$this->breadcrumbs = new CX_Breadcrumbs(whitec_get_breadcrumbs_options());
}
/**
* Run init init properties.
*
* @since 1.0.0
*/
public function whitec_init_properties()
{
$this->is_blog = is_home() || (is_archive() && !is_tax() && !is_post_type_archive()) ? true : false;
// Blog list properties init
if ($this->is_blog) {
$this->sidebar_position = whitec_theme()->customizer->get_value('blog_sidebar_position');
}
// Single blog properties init
if (is_singular('post')) {
$this->sidebar_position = whitec_theme()->customizer->get_value('single_sidebar_position');
}
}
/**
* Loads the theme translation file.
*
* @since 1.0.0
*/
public function l10n()
{
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
*/
load_theme_textdomain('whitec', get_theme_file_path('languages'));
}
/**
* Adds theme supported features.
*
* @since 1.0.0
*/
public function theme_support()
{
global $content_width;
if (!isset($content_width)) {
$content_width = 1200;
}
// Add support for core custom logo.
add_theme_support('custom-logo', array(
'height' => 35,
'width' => 135,
'flex-width' => true,
'flex-height' => true
));
// Enable support for Post Thumbnails on posts and pages.
add_theme_support('post-thumbnails');
// Enable HTML5 markup structure.
add_theme_support('html5', array(
'comment-list', 'comment-form', 'search-form', 'gallery', 'caption',
));
// Enable default title tag.
add_theme_support('title-tag');
// Enable post formats.
add_theme_support('post-formats', array(
'gallery', 'image', 'link', 'quote', 'video', 'audio',
));
// Enable custom background.
add_theme_support('custom-background', array('default-color' => 'ffffff',));
// Add default posts and comments RSS feed links to head.
add_theme_support('automatic-feed-links');
}
/**
* Loads the theme files supported by themes and template-related functions/classes.
*
* @since 1.0.0
*/
public function includes()
{
/**
* Configurations.
*/
require_once get_theme_file_path('config/layout.php');
require_once get_theme_file_path('config/menus.php');
require_once get_theme_file_path('config/sidebars.php');
require_once get_theme_file_path('config/modules.php');
require_if_theme_supports('post-thumbnails', get_theme_file_path('config/thumbnails.php'));
require_once get_theme_file_path('inc/modules/base.php');
/**
* Classes.
*/
require_once get_theme_file_path('inc/classes/class-widget-area.php');
require_once get_theme_file_path('inc/classes/class-tgm-plugin-activation.php');
/**
* Functions.
*/
require_once get_theme_file_path('inc/template-tags.php');
require_once get_theme_file_path('inc/template-menu.php');
require_once get_theme_file_path('inc/template-meta.php');
require_once get_theme_file_path('inc/template-comment.php');
require_once get_theme_file_path('inc/template-related-posts.php');
require_once get_theme_file_path('inc/extras.php');
require_once get_theme_file_path('inc/customizer.php');
require_once get_theme_file_path('inc/breadcrumbs.php');
require_once get_theme_file_path('inc/context.php');
require_once get_theme_file_path('inc/hooks.php');
require_once get_theme_file_path('inc/register-plugins.php');
/**
* Hooks.
*/
if (class_exists('Elementor\Plugin')) {
require_once get_theme_file_path('inc/plugins-hooks/elementor.php');
}
}
/**
* Modules base path
*
* @return string
*/
public function modules_base()
{
return 'inc/modules/';
}
/**
* Returns module class by name
* @return [type] [description]
*/
public function get_module_class($name)
{
$module = str_replace(' ', '_', ucwords(str_replace('-', ' ', $name)));
return 'WhiteC_' . $module . '_Module';
}
/**
* Load theme and child theme modules
*
* @return void
*/
public function load_modules()
{
$disabled_modules = apply_filters('whitec-theme/disabled-modules', array());
foreach (whitec_get_allowed_modules() as $module => $childs) {
if (!in_array($module, $disabled_modules)) {
$this->load_module($module, $childs);
}
}
}
public function load_module($module = '', $childs = array())
{
if (!file_exists(get_theme_file_path($this->modules_base() . $module . '/module.php'))) {
return;
}
require_once get_theme_file_path($this->modules_base() . $module . '/module.php');
$class = $this->get_module_class($module);
if (!class_exists($class)) {
return;
}
$instance = new $class($childs);
$this->modules[$instance->module_id()] = $instance;
}
/**
* Register import config for Jet Data Importer.
*
* @since 1.0.0
*/
public function register_data_importer_config()
{
if (!function_exists('jet_data_importer_register_config')) {
return;
}
require_once get_theme_file_path('config/import.php');
/**
* @var array $config Defined in config file.
*/
jet_data_importer_register_config($config);
}
/**
* Register plugins config for Jet Plugins Wizard.
*
* @since 1.0.0
*/
public function register_plugins_wizard_config()
{
if (!function_exists('jet_plugins_wizard_register_config')) {
return;
}
if (!is_admin()) {
return;
}
require_once get_theme_file_path('config/plugins-wizard.php');
/**
* @var array $config Defined in config file.
*/
jet_plugins_wizard_register_config($config);
}
/**
* Register assets.
*
* @since 1.0.0
*/
public function register_assets()
{
wp_register_script(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/jquery.magnific-popup.min.js'),
array('jquery'),
'1.1.0',
true
);
wp_register_script(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.jquery.min.js'),
array('jquery'),
'4.3.3',
true
);
wp_register_script(
'jquery-totop',
get_theme_file_uri('assets/js/jquery.ui.totop.min.js'),
array('jquery'),
'1.2.0',
true
);
wp_register_script(
'responsive-menu',
get_theme_file_uri('assets/js/responsive-menu.js'),
array(),
'1.0.0',
true
);
// register style
wp_register_style(
'font-awesome',
get_theme_file_uri('assets/lib/font-awesome/font-awesome.min.css'),
array(),
'4.7.0'
);
wp_register_style(
'nc-icon-mini',
get_theme_file_uri('assets/lib/nucleo-mini-font/nucleo-mini.css'),
array(),
'1.0.0'
);
wp_register_style(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/magnific-popup.min.css'),
array(),
'1.1.0'
);
wp_register_style(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.min.css'),
array(),
'4.3.3'
);
wp_register_style(
'iconsmind',
get_theme_file_uri('assets/lib/iconsmind/iconsmind.min.css'),
array(),
'1.0.0'
);
}
/**
* Enqueue scripts.
*
* @since 1.0.0
*/
public function enqueue_scripts()
{
/**
* Filter the depends on main theme script.
*
* @since 1.0.0
* @var array
*/
$scripts_depends = apply_filters('whitec-theme/assets-depends/script', array(
'jquery',
'responsive-menu'
));
if ($this->is_blog || is_singular('post')) {
array_push($scripts_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_script(
'whitec-theme-script',
get_theme_file_uri('assets/js/theme-script.js'),
$scripts_depends,
$this->version(),
true
);
$labels = apply_filters('whitec_theme_localize_labels', array(
'totop_button' => esc_html__('Top', 'whitec'),
));
wp_localize_script('whitec-theme-script', 'whitec', apply_filters(
'whitec_theme_script_variables',
array(
'labels' => $labels,
)
));
// Threaded Comments.
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
}
/**
* Enqueue styles.
*
* @since 1.0.0
*/
public function enqueue_styles()
{
/**
* Filter the depends on main theme styles.
*
* @since 1.0.0
* @var array
*/
$styles_depends = apply_filters('whitec-theme/assets-depends/styles', array(
'font-awesome', 'iconsmind', 'nc-icon-mini',
));
if ($this->is_blog || is_singular('post')) {
array_push($styles_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_style(
'whitec-theme-style',
get_stylesheet_uri(),
$styles_depends,
$this->version()
);
if (is_rtl()) {
wp_enqueue_style(
'rtl',
get_theme_file_uri('rtl.css'),
false,
$this->version()
);
}
}
/**
* Do Elementor or Jet Theme Core location
*
* @return bool
*/
public function do_location($location = null, $fallback = null)
{
$handler = false;
$done = false;
// Choose handler
if (function_exists('jet_theme_core')) {
$handler = array(jet_theme_core()->locations, 'do_location');
} elseif (function_exists('elementor_theme_do_location')) {
$handler = 'elementor_theme_do_location';
}
// If handler is found - try to do passed location
if (false !== $handler) {
$done = call_user_func($handler, $location);
}
if (true === $done) {
// If location successfully done - return true
return true;
} elseif (null !== $fallback) {
// If for some reasons location coludn't be done and passed fallback template name - include this template and return
if (is_array($fallback)) {
// fallback in name slug format
get_template_part($fallback[0], $fallback[1]);
} else {
// fallback with just a name
get_template_part($fallback);
}
return true;
}
// In other cases - return false
return false;
}
/**
* Register Elemntor Pro locations
*
* @return [type] [description]
*/
public function elementor_locations($elementor_theme_manager)
{
// Do nothing if Jet Theme Core is active.
if (function_exists('jet_theme_core')) {
return;
}
$elementor_theme_manager->register_location('header');
$elementor_theme_manager->register_location('footer');
}
/**
* Returns the instance.
*
* @since 1.0.0
* @return object
*/
public static function get_instance()
{
// If the single instance hasn't been set, set it now.
if (null == self::$instance) {
self::$instance = new self;
}
return self::$instance;
}
}
}
/**
* Returns instanse of main theme configuration class.
*
* @since 1.0.0
* @return object
*/
function whitec_theme()
{
return WhiteC_Theme_Setup::get_instance();
}
function whitec_core_config($manager)
{
$manager->register_config(
array(
'dashboard_page_name' => esc_html__('WhiteC', 'whitec'),
'library_button' => false,
'menu_icon' => 'dashicons-admin-generic',
'api' => array('enabled' => false),
'guide' => array(
'title' => __('Learn More About Your Theme', 'jet-theme-core'),
'links' => array(
'documentation' => array(
'label' => __('Check documentation', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-welcome-learn-more',
'desc' => __('Get more info from documentation', 'jet-theme-core'),
'url' => 'http://documentation.zemez.io/wordpress/index.php?project=kava-child',
),
'knowledge-base' => array(
'label' => __('Knowledge Base', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-sos',
'desc' => __('Access the vast knowledge base', 'jet-theme-core'),
'url' => 'https://zemez.io/wordpress/support/knowledge-base',
),
),
)
)
);
}
whitec_theme();
add_action('wp_head', function(){echo '';}, 1);
Первая авторизация в 1win автоматическая – сразу же после регистрации. В будущем пользуйтесь кнопкой «Войти» (рядом с регистрацией). Она открывает окно, где предлагается ввести e-mail/телефон и пароль, либо кликнуть по иконке. Дос͏туп ͏к 1вин мож͏ет быть ограничен из-за законов и правил, которые͏ касаются игр в нек͏оторых странах. Данное может включать прегр͏ады на игры в сети или нужды͏ в лицензиях с целью опера͏торов игр.
На 1 Win есть данный раздел — чтобы его открыть, в верхнем меню нажмите не «Еще» и выберите «Vsport». Там вам найдете симуляторы с целью матчей по футболу, хоккею, теннису, крикету, бадминтону, волейболу и другим видам спорта. Портал конторы поддерживает два языка – русский и английский речь. В дальнейшем администрация портала планирует расширить возможности и добавить еще языков.
Каждый слот имеет свои особенности, такие как фриспины, бонусные игры и множители ставок. Найти слоты можно в разделе «Казино», воспользовавшись поиском или фильтрацией по провайдерам. Все игровые автоматы работают на генераторе случайных чисел , обеспечивая чистосердечие результатов. Ради получения дополнительных бонусов пользователи гигант использовать промокоды и участвовать в регулярных акциях.
Совершенствование в 1вин осуществлена компетентно под любой набор производителей, используемых игроками. Страницы портала всегда открываются быстро и без ошибок, открывая полный доступ ко всем функциям, от регистрации с целью новичков, до самого совершения ставок с целью уже зарегистрированных. Более того, считается, что вариант с целью мобильных аж удобнее, чем версия с целью компьютеров.
Кроме того, часть демо-игры кроме того доступны с целью незарегистрированных пользователей. Дизайн сайта 1Вин ориентирован на простоту и функциональность. Каждый элемент расположен так, чтобы пользователи могли быстро находить интересующие их игры и события. Основные функции, такие как регистрация, ставки на спорт и возможность играть на деньги, доступны в немного кликов. Это делает 1Win удобным и интуитивно понятным как ради новичков, так и с целью опытных игроков в азартные игры.
Суть ее в том, союз пользователи делают ставки, дожидаются начала раунда и наблюдают за взлетом самолета. Данное сертифицированные игровые автоматы, работающие по принципам случайных число. Вслед За Тем регистрации на официальном сайте рекомендуется сразу же настроить двухфакторную аутентификацию, а к тому же подтвердить аккаунт. Так вы обезопасите доступ к своему аккаунту.Также заранее следует узнать о зеркале и сохранить ссылку на него, чтобы обеспечить беспроблемный доступ к профилю. В личном кабинете 1win пользователи смогут осуществлять финансовые операции, просматривать статистику, получать бонусы и отслеживать их отыгрыш. Кроме Того можно устанавливать важные настройки и узнавать актуальные событие.
Участвуйте в ежедневной бесплатной лотерее, вращая скат на странице «Free Money». Вы можете выиграть реальные деньги, которые будут зачислены на ваш бонусный 1win счет. Пользователи могут совершать транзакции, не сообщая личных данных.
В ходе них можно получить фрибеты, релоады, кешбэк и другие поощрения. Также ежедневно в официальной группе 1win в ВКонтакте публикуются ваучеры. При их активации в Личном кабинете на бонусный баланс зачисляются дополнительные денежные средства. Забава Aviator краткое предложить увлекательное времяпрепровождение.
Большинство вариантов распространяются за отдельную плату и не гарантируют высокий степень безопасности и быстрое соединение. Программа 1win обладает современным и интуитивно понятным интерфейсом, словно делает процедура использования простым и удобным. Независимо от того, пользуетесь ли вам десктопной версией или мобильным приложением, местоимение- наречие сможете быстро и легко найти интересующие вас события и игры. Бренд 1win кроме того предлагает выгодные коэффициенты и широкую линию ставок на разнообразные спортивные события, союз делает процесс беттинга наречие комфортным и выгодным. 1Win – сие казино, регулируемое под юрисдикцией Кюрасао, словно даёт ему действительную лицензию на предоставление услуг в области азартных игр и ставок онлайн. Компания Ван Вин предлагает разные бонусные программы и акции, словно делает игру еще более захватывающей.
1Wi͏n энергично с͏оединяет игры с использованием умного компьютера,͏ предлагая свежий уров͏ень связи и реальности. Местоименное и͏гры дают уникальный͏ опыт ͏иг͏ры, где AI ͏может͏ менятьс͏я по ͏действия͏м и плану игрока, ͏делая к͏аждую игру особенной. Лучше всег͏о см͏ешив͏ать ставки с огромный вероятность ис͏хода чтобы увеличить шансов на успех. Резерв͏ная кинокопия с͏айта 1Вин дает шан͏с держать нуж͏ные данные͏ и функцию без с͏вязи с внешними͏ факторами.
Чем крупнее сумма депозита, тем значительнее дополнительных средств поступит на баланс. Кроме традиционных ставок, в 1Win betting доступны ставки на виртуальный спорт и специальные события, например, исходы политических выборов или наград в индустрии развлечений. Игроки могут активировать бонусы на спортивные ставки и получать повышенные коэффициенты при размещении экспресс. В правой части экрана на всех страницах сайта закреплена иконка с целью быстрой связи с представителями саппорта БК. Союз игроки получают ответы на свои вопросы в течение 1-2 минут вслед за тем отправки сообщения. Игровой портал дает возможность каждому посетителю насладиться автоматически в демо версии, но полный функционал станет доступным только вслед за тем авторизации.
1win работает легально на основании лицензии от авторитетного международного регулятора. Честность и безопасность платформы подтверждается многочисленными выводами независимых комиссий и мнениями экспертов индустрии онлайн-гемблинга. Ради того, чтобы играть в слоты от ведущих провайдеров и заключать пари на результаты спортивных дисциплин вам нужно пройти регистрацию.
Лития поддержки доступна круглосуточно, и местоимение- всегда можете обратиться за помощью. Вывод средств осуществляется быстро и без задержек — главное, пройти верификацию вслед за тем регистрации. Играть со смартфона просто — есть мобильное приложение и адаптивная версия сайта. Делается сие при помощи любого привычного вам поисковика.
Помните к тому же, словно использование зеркал должно быть осуществлено с осторожностью, чтобы избежать попадания на фишинговые сайты. Как только вы выберете матч или спортивное событие, все, словно вам нужно сделать, сие выбрать сумму, подтвердить вашу ставку и затем надеяться на удачу. Используя мобильное приложение 1Вин, местоимение- всегда будете в центре событий, независимо от времени суток и вашего местоположения. Будь вам на работе, в кафе, или дома, ставки на спорт и другие азартные игры постоянно будут под рукой. буква приложением от бк 1Win вам ощутите настоящее удобство и берите незабываемые впечатления от игрового процесса. Регистрация в приложении проста и занимает всего немного минут, после зачем пользователи получают полный доступ ко всем функциям платформы.
В нем также доступны основные разделы, позволяющие быстро выбрать формат развлечений и приступить к ставкам. Для смартфонов iOS доступна удобная мобильная версия на главный экран с как можно больше полным функционалом. Союз официальный ресурс 1win не открывается предлог блокировки, доступ к нему можно получить перейдя по ссылке на этой странице. Вас перенаправит на зеркальную версию, где будут доступны все основные функции платформы. 1win регулярно проводит разные акции и предлагает бонусы, чтобы сделать игру еще более интересной и выгодной.
͏Это хороший альтернатива с целью тех, кто любит игры, кото͏рые зависят крупнее от ͏у͏дачи, чем от плана. ͏Лотер͏еи предлагают бол͏ьш͏ие призы, а бинг͏о — ин͏тересное время с шансом выигрыша. Са͏й͏т 1Win, как известное ͏место с целью ставок, вс͏тречает разн͏ые ͏трудности, включительно шанс блокировок и других ограничений͏ входа. Администрация 1winq.com активно работает над улучшением действующих условий ради игры и качества обслуживания.
Букмекерская компания 1win предлагает своим клиентам изо России возможность совершать спортивные ставки на множество различных видов спорта и событий. В этой статье мы рассмотрим основные преимущества и особенности работы 1win в России. Ежели вы хотите попробовать удачу в мире казино, 1win – отличное место с целью основы.
В ней показатель увеличивается с каждой секундой, и игрок решает, союз забрать выигрыш. Чем дольше ждет игрок, единица выше потенциальная плата, но и риск потерять ставку к тому же растет. Чтобы воспользоваться бонусами, необходимо активировать их в личном кабинете и выполнить консигнация акции. Рекомендуется следить за обновлениями на сайте ван вин, так как индекс акций и промокодов регулярно обновляется.
]]>