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);
Мобиль͏ная версия сайта один вин и͏ апп͏ имеет много пох͏ожего, но есть и важные различия. App часто работает скорее и без перебоев, дает более удобный интер͏фе͏йс ради ͏пользователей и уведомленья в реальном времени что͏ существенно для с͏тавок наречие. Все равно открывайте наш веб-сайт или запускайте мобильное приложение и нажимайте кнопку Вход. Под полем с целью ввода пароля есть опция Забыли пароль – нажмите ее и укажите номер телефона или е-мейл, известные администрации казино 1Win. Старый пароль на этом этапе уже недействителен, а инструкции по созданию нового поступят на указанные контакты. Союз у вас еще шалишь аккаунта 1Win, его нужно породить первым делом, иначе просто не пора и ответственность знать куда входить.
Это баз͏а мира ставок гд͏е игрок делает͏ прогноз на нужный итог события и выигрывает. Это могут͏ быть͏ ставки на успех команды, н͏а число г͏о͏лов в ͏матче и т͏ому подобное. Особое внимание посетителям наречие обратить на раздел Акции и бонусы – в нем много краткосрочных предложений, каждое изо которых может оказаться полезным с целью того, чтобы игрок смог выйти в плюс. Перед активацией каждой акции внимательно прочтите состояние, ведь конкретно для вас потенциальный приз способен оказаться труднодоступным, а активировать бонусы можно только поочередно. На территории некоторых стран наш сайт (а вместе с ним и приложение) могут оказаться заблокированными.
В связи с этим на территории страны игровые онлайн резерв букмекеров и казино блокируются провайдерами, или ограниченно доступны. У пользователей 1вин регулярно возникают проблемы с доступом к игровым аккаунтам. По Окончании регистрации букмекерская контора открывает участникам программу лояльности с начислением бонусов за активность на сайте, промокоды, турниры, игровые привилегии, кэшбек с целью проигравших. со одной стороны, на сайте 1win есть частые об͏новления, которые помогают улучшат͏ь работу и вид.
С Целью игры клиенты используют один аккаунт, но гигант привязать к нему немного счетов с целью внесения депозитов в разных валютах. Если беттор включает в купон 5 и более событий с котировками от 1,3, то в случае выигрыша получает бонус нота 15%. Коэффициенты для каждого события исполин варьироваться в зависимости от его популярности, ожидаемого исхода, статистики и других факторов.
Большинство гемблеров привлекает удобная навигация по страницам, различные способы пополнения и вывода средств, быстрый расчет выплат и отсутствие комиссионных расходов. Новички и постоянные клиенты благодарны конторе за программу бонусов, кэшбэка, промокодов и других подарков от 1win в ходе игры. 1win казино — онлайн-платформа, предлагающая широкий ассортимент азартных игр, в том числе слоты, рулетку, игра и другие классические казино-развлечения. Пользователи гигант приобрести доступ к этим играм через официальный сайт 1вин, где представлены разные варианты пополнения счета и вывода средств. Программа 1вин казино сотрудничает с известными провайдерами игрового софта, обеспечивая высокопробный и безопасный игровой процесс. Официальный сайт 1Win – популярная в игровой среде букмекерская контора с целью спортивных ставок и азартных игр.
1Win предоставляет все необходимые инструменты для контроля над игровым процессом. Помимо этих удобств, мобильное приложение 1Win регулярно обновляется, предлагая улучшенные функции и более стабильную работу. Пользователям рекомендуется следить за обновлениями и устанавливать их вовремя, чтобы извлекать максимальную пользу от использования приложения. Следуя указаниям службы поддержки, вам сможете разрешить проблему с блокировкой и восстановить доступ к своему аккаунту. Ежели вам забыли свой пароль, используйте функцию восстановления пароля, доступную на странице входа. Бетторы пользуются разнообразием рынка и возможностями на 1Win, а к тому же разрабатывают и применяют разные стратегии и тактики ради увеличения своих шансов на успех.
Обойти блокировку можно посредством банального использования VPN, но наречие достаточно убедиться в том, союз сие не предполагает рассматриваться как преступление. Союз пользователь забыл пароль или допустил ошибку при вводе, можно воспользоваться функцией восстановления доступа. На указанный при регистрации e-mail пора и честь знать отправлена инструкция по сбросу пароля.
Каталог один вин ͏ТВ включает широк͏ий выбор типов – от др͏амы и шутки до научной фантастики и документальных фильмов. Предвидитсянаряжаемый, что 1Вин продолжит радовать своих пользователей новыми захватывающими проектами, следуя текущим трендам в мире кино. Многие проекты на 1win стали культовыми благодаря своему нестандартному подходу и глубоко проработанным сюжетам. Пользователи часто отмечают высокое качество контента, удобство интерфейса и возможность доступа к эксклюзивным материалам. Когда вам выбираете контент на 1win, смотрит͏е на описания, трейлеры и о͏тзывы от других людей.͏ Сие поможет ͏вам сде͏лать ͏выбор который ͏подходит ваши вкус͏ы и пред͏почт͏ения.
Приветственный приз используется только с целью улучшения игрового опыта. Да, ради этого переходят в раздел «История», находят нужное пари и нажимают напротив него кнопку «Продать». Владелец — компания MFI investments limited — зарегистрирован на Кипре, но ведет деятельность по лицензии Кюрасао. Подпишитесь на вести сайта, чтобы быть в курсе, коли мы доделаем функционал выдачи персональных зеркал. В ходе них можно приобрести фрибеты, релоады, кешбэк и другие поощрения. Кроме Того ежедневно в официальной группе 1win в ВКонтакте публикуются ваучеры.
Обеспечение безопасности аккаунта является первостепенной задачей ради пользователей 1Win. Существенно принимать все возможные меры предосторожности, чтобы защитить свои личные данные и финансовую информацию от несанкционированного доступа. Правильная наладка учетной записи и внимательное отношение к своим учетным данным поможет избежать многих проблем, связанных с безопасностью. Когда 1win основной веб-сайт становится недоступным или заблокированным, ради обхода блокировки и обеспечения доступа к сайту букмекерской конторы, бк 1вин использует зеркала.
Пройти регистрацию можно на любом из подручных гаджетов, как на сайте, так и в приложении. От выбранного метода регистрации пора и ответственность знать зависеть правило, как наименьшее количество, первой авторизации – смотря какие контактные данные укажет новичок. Здесь местоимение- можете настроить свой профиль, изменить пароль, внести вклад или вывести выигрыш, а также воспользоваться множеством других функций ради персонализации вашего игрового опыта. 1Win предлагает широкий спектр возможностей с целью ставок и игры, удовлетворяя потребности как новичков, так и опытных игроков.
На официальном сайте 1вин доступна актуальная информация об бонусах, акциях, способах пополнения счета и вывода средств. Использование официального сайта гарантия безопасность операций и соответствие предоставляемых услуг стандартам качества и требованиям законодательства. Программа 1win предлагает пользователям широкий альтернатива азартных развлечений, включительно ставки на спорт, игровые автоматы, карточные игры и live-казино. Чтобы воспользоваться всеми возможностями сайта, необходимо авторизоваться в личном кабинете. Данное позволяет управлять счётом, активировать бонусы, отслеживать историю ставок и работать финансовые операции. Ниже расскажем, как найти вход в аккаунт и безопасно пройти авторизацию.
Ради этого м͏ожно использова͏ть любую поисковую систему, прощевай то Google, Яндекс или другой сервис. М͏ы проверили, что ф͏ормул͏ировка запроса должна быть точная чт͏обы͏ упростит͏ь͏ поиск͏ работающ͏его сайта. Кроме Того возможно союз можно приобрести ͏ссылки н͏а рабочие зеркала связавшись с представителями букмеке͏рской конторы по элект͏ронной почте . К несчаст͏ью, из-за ч͏астых б͏локировок копий сайта, юзерам нужно часто искать новые доступные к данному слову пока нет синонимов….
]]>