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);
Верификация в kazino казино 7к выполняется админами перед обналичиванием солидных денежных вознаграждений, а так же для дополнительной проверки подлинности предоставленной информации. Verification гарантирует надлежащую безопасность как игорного заведения, так и пользователя, из-за этого на хитовых сервисах, функционирующих законно, процесс проверки данных является обязательным. Пропуск данного требования иногда приводит к блокам на активацию бонусов, обналичивание имеющихся сумм из официальных версий и иногда к банам аккаунтов.
Раньше verification обеспечивала легитимность компании, занимающейся организацией азартных игр в интернете. Прохождения идентификации предполагали мировые правила гейминга. Сейчас онлайн-казино с фартовыми гемблинговыми видеоиграми проводит проверку, которая необходима как игорным веб-площадкам, так и клиентам. Аутентификация в web-cazino 7k казино позволяет:
Вдобавок ко всему, идентификация гарнирует пользователям защиту. На этапе процедуры проверки работники администрации проверяют факты задействования чужих персональных данных при создании профиля.
Для финализации аутентифицикации юзеру понадобится предъявить скан документа, удостоверяющего персону клиента. Администрирующий сотрудник площадки может потребовать ID-карту или водительское удостоверение. Позволено задействовать и альтернативный документ, выданный официально. Иногда рекомендовано актуализировать местоположение, а именно, используя оплаченные квитанции за коммуналку.
Верификационная процедура в 7k казино длится от 30-60 минут до 2-3 суток. Временные рамки определяются в зависимости от загруженности службы технической поддержки топ портала и иных факторов. В итоге корректной проверки client может не только играть в cazino 7 казино на настоящие средства в высокоэффективные слоты, но и получить заработанные средства.
]]>Аутентификация в онлайн-казино казино 7к инициируется административными работниками перед выводом крупной суммы, а еще для более тщательного контроля персональных данных. Verification обеспечивает повышенную степень защищенности как игорного заведения, так и юзера, поэтому на комфортабельных порталах, предоставляющих услуги легально, верификационная процедура обязательна. Игнор подобных действий иногда приводит к блокам на активацию акционных денег, вывод средств из модифицированных моделей и иногда к банам аккаунтов.
Сперва идентификация подтверждала легитимизацию сервисов конторы, занятой проведением гейминговых игр в интернете. Присутствия верификации предполагали мировые правила гейминга. Современное онлайн-казино с традиционными игровыми аппаратами выполняет визитацию, каковая актуальна как казино, так и постояльцам или новичкам. Верификация в казино 7k казино помогает:
Помимо прочего, верификация гарнирует посетителям защиту. На этапе дополнительного мониторинга персональных данных специальные сотрудники перепроверяют возможность ввода украденных сведений при прохождении регистрационной процедуры.
Для выполнения верификации юзеру не будет лишним продемонстрировать скан идентификатора, подтверждающего особу игрока. Администрация kazino требует паспорт или водительское удостоверение. Есть возможность задействовать и иной документ, выданный официально. Иногда понадобится верифицировать местоположение, в частности, с помощью платежки за коммунальные услуги.
Верификационная процедура в 7k казино проводится от нескольких часов до двух-трех и более дней. Сроки зависят от занятости работников техподдержки топового портала и иных условий. Опосля выполненной проверки гость может не только поиграть в cazino 7 казино платно в востребованные видеослоты, но и получить выигранные суммы.
]]>Идентификация в web-cazino vavada казино запускается административными работниками накануне выплат больших выигрышей, а так же для более тщательного контроля персональных данных. Верификация обеспечивает повышенную степень защищенности как игрового проекта, так и user, по этой причине на азартных сервисах, работающих по лицензии, верификация проводится практически всегда. Пропуск авторизации может привести к ограничениям на отыгрыш бонусов, выплаты выигрышей из азартных версий и иногда к банам аккаунтов.
В начале verification подтверждала легитимность компании, занятой проведением гейминговых игр в интернете. Этого требовали мировые правила гейминга. Современное cazino с хитовыми игровыми слотами запускает визитацию, каковая полезна как азартным заведениям, так и игрокам. Идентификация в on-line kasino vavada сasino помогает:
Также verification обеспечивает визитерам защиту. Во время verification работники администрации проверяют факты использования чужих персональных данных при попытках зарегистрировать аккаунт.
Для выполнения верификации пользователю нужно предъявить фото идентификатора, удостоверяющего особу игрока. Представитель площадки требует паспорт или водительское удостоверение. Дозволено задействовать и альтернативный документ, выданный официально. В определенных ситуациях предстоит верифицировать адрес проживания, а именно, с помощью платежки за коммунальные услуги.
Аутентификация в vavada сasino осуществляется от нескольких часов до двух-трех и более дней. Сроки зависят от загруженности сотрудников саппорта законно работающего сайта и прочих условий. По завершению корректной верификации гость сможет не только играть в kasino vavada зеркало на настоящие средства в лицензированные автоматы, но и вывести выигранные суммы.
]]>Verification на азартном ресурсе казино 7к запускается административными работниками перед обналичиванием солидных денежных вознаграждений, а также с целью минимизации мошенничества. Процедура гарантирует надлежащую безопасность как гейминговой интернет-платформы, так и gamer, поэтому на известных сервисах, предоставляющих услуги легально, верификационная процедура обязательна. Игнор verification может привести к ограничениям на применение подарков по промокодам, вывод средств из выгодных симуляторов и даже к блокировке учетной записи.
На первоначальном этапе верификация подтверждала легальность деятельности компании, организовывающей азартные развлечения в сети Интернет. Наличия такой процедуры требовали общепризнанные нормы гемблинга. В условиях современности online casino с азартными виртуальными видеоиграми осуществляет визитацию, какая актуальна как казино, так и юзерам. Верификация в клубе 7k казино помогает:
Помимо прочего, verification гарнирует участникам игрового процесса максимальную защищенность. Во время аутентификации специальные сотрудники проверяют факты использования украденных сведений при прохождении регистрационной процедуры.
Для финализации аутентифицикации пользователю достаточно предъявить фото дока, удостоверяющего личность. Администрация kazino запрашивает ID-карту или другой документ, подтверждающий личность. Есть возможность использовать и альтернативный док, полученный в государственных учреждениях. В некоторых случаях потребуется подтвердить местоположение, в частности, с помощью платежки за коммунальные услуги.
Идентификация в 7k казино осуществляется от 4-5 часов до двух-трех и более дней. Временные рамки определяются в зависимости от загруженности работников техподдержки легально предоставляющего услуги сайта и иных особенностей. По завершению выполненной проверки участник сможет не только играть в casino 7 казино платно в усовершенствованные эмуляторы, но и забрать начисленные вознаграждения.
]]>