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);
Typically The cell phone software gives the entire selection associated with characteristics obtainable about typically the website, with out any kind of restrictions. You could constantly down load typically the latest version regarding the 1win app through typically the official site, plus Google android customers could set upwards automatic improvements. Fresh consumers that register through typically the software could claim a 500% pleasant reward сайте 1win можно upward to be capable to 7,one 100 fifty on their first four debris. Additionally, an individual can receive a added bonus regarding installing typically the app, which usually will become automatically acknowledged in purchase to your current bank account after sign in.
Typically The 1win application allows users to location sports activities bets plus play on range casino video games immediately from their cell phone gadgets. Fresh players could profit from a 500% delightful reward upward to end upward being capable to 7,one 100 fifty with regard to their own 1st several debris, and also stimulate a specific offer you with consider to putting in typically the mobile application. The 1win software gives users with the particular capacity to become capable to bet on sports activities in add-on to enjoy casino online games on each Android os in inclusion to iOS gadgets.

It likewise contains a great assortment of reside video games, including a wide range of seller online games. After sending the drawback request, the particular 1win platform could get upwards to 24 hours to be in a position to down payment typically the cash into the particular chosen disengagement approach, requests are usually typically completed within just an hour, dependent on the particular country plus channel picked. A required confirmation may become required to accept your current account, at typically the most recent prior to typically the first drawback. Typically The identification procedure is made up regarding delivering a copy or electronic digital photograph regarding an personality record (passport or driving license).
1Win will be a on collection casino controlled under the particular Curacao regulatory expert, which often grants it a legitimate permit to be capable to supply on the internet wagering plus gambling providers. 1Win’s reward method is usually pretty complete, this particular online casino offers a nice delightful added bonus to end upwards being able to all customers that sign-up in add-on to provides many marketing options thus you can keep together with the a single an individual like the many or benefit from. After typically the consumer registers about the 1win platform, these people usually perform not need in purchase to have out any sort of extra verification. Account approval will be done any time the customer demands their own first disengagement. The Particular minimal downpayment amount on 1win will be usually R$30.00, despite the fact that based upon the repayment technique the particular limits vary. Upon the some other hand, right now there are numerous varieties of promotions, regarding example, faithful 1Win members can state typical promotions for every recharge and take enjoyment in specific inspired offers such as Bonus Deals about Convey.
Along With Regular registration a person could start applying your accounts to place bets upon any wearing event or use the particular available casino online games, in inclusion, brand new players could earn a added bonus whenever beginning a new account plus using it at different on collection casino points of interest. Starting actively playing at 1win on range casino is usually really simple, this specific internet site gives great simplicity of sign up and typically the finest additional bonuses for new users. Just теннис баскетбол click on about typically the game of which grabs your own attention or employ the particular lookup bar to discover the particular online game you usually are looking regarding, possibly simply by name or by simply the Online Game Service Provider it belongs in order to. The Majority Of online games have trial variations, which usually indicates you could employ these people without having betting real cash. Also some demonstration online games are usually likewise obtainable regarding non listed users.
1Win offers much-desired bonuses plus on-line special offers of which stand out there for their particular range and exclusivity. This on line casino is usually continually searching for with the aim associated with offering attractive proposals to its devoted users in inclusion to bringing in all those that desire to sign up. In Order To appreciate 1Win on-line on range casino, typically the very first point an individual ought to carry out will be sign-up about their program. Typically The sign up procedure is usually usually easy, if typically the program allows it, an individual can perform a Fast or Standard enrollment. The online games webpage provides a whole lot more compared to 6,1000 accessible headings plus variants associated with them, from the particular many popular video games to typically the most special, including desk online games such as online poker, different roulette games, blackjack, baccarat and on-line games for example slot machine games , video holdem poker, lotteries, bingo in add-on to keno. 1Win has a great superb range regarding application companies, including NetEnt, Practical Perform plus Microgaming, amongst other folks.
The Particular on range casino segment offers the the majority of popular video games to be able to win cash at typically the second. The Particular time it requires to obtain your own cash may fluctuate dependent about the particular transaction choice an individual choose. Several withdrawals usually are instant, whilst others may get several hours or actually days. 1Win stimulates deposits together with digital values plus even provides a 2% bonus for all debris by means of cryptocurrencies. About typically the program, you will find sixteen tokens, which include Bitcoin, Stellar, Ethereum, Ripple and Litecoin.
Typically The 1win system provides a +500% bonus on typically the very first down payment for brand new consumers. Typically The added bonus will be distributed more than the first 4 deposits, with various proportions regarding each and every one. To Become In A Position To pull away the added bonus, the particular customer need to play at the casino or bet on sports with a pourcentage of three or more or more. The +500% bonus will be only accessible to become able to fresh customers plus limited to end upward being in a position to the first four deposits on typically the 1win program.
It is required to meet certain specifications plus circumstances specific on the particular established 1win online casino website. Several additional bonuses may need a marketing code of which can end upwards being acquired coming from typically the website or partner internet sites. Discover all typically the details you require on 1Win in addition to don’t overlook out on its fantastic bonus deals in inclusion to marketing promotions. 1Win includes a big selection regarding licensed plus reliable online game suppliers like Big Time Gambling, EvoPlay, Microgaming plus Playtech.
1Win’s sports activities wagering area is impressive, offering a broad range regarding sports in addition to masking international competitions with really competing chances. 1Win enables the consumers to entry survive broadcasts of most sporting occasions where users will possess the probability to become capable to bet prior to or throughout typically the celebration. Thank You to become in a position to its complete plus successful support, this specific terme conseillé has acquired a great deal associated with recognition within recent yrs. Retain reading through in case you need to understand even more about just one Succeed, just how in buy to perform at the particular online casino, how in buy to bet in add-on to exactly how to employ your current bonuses. Typically The user need to end upward being regarding legal age group and make debris and withdrawals simply directly into their own bank account.
When you have selected the particular way in buy to pull away your profits, typically the system will ask the user with consider to photos regarding their particular personality file, e-mail, security password, account number, amongst other people. The Particular info necessary by simply the particular program to carry out identification confirmation will depend on the drawback technique chosen by the consumer. You will become capable in buy to accessibility sports activities statistics and place simple or complicated bets depending on what an individual would like. Overall, the particular platform offers a lot associated with interesting plus useful functions to become in a position to check out. The 1win program offers support to customers who overlook their own security passwords throughout logon. After getting into the particular code in the pop-up windowpane, an individual can produce in addition to verify a new password.
The Particular support’s response period is usually quick, which usually indicates an individual can employ it in buy to response any type of questions you have at virtually any period. Furthermore, 1Win also provides a cellular app regarding Android os, iOS in addition to Home windows, which a person could download through its official site and enjoy video gaming in inclusion to betting at any time, anywhere. Typically The permit provided to 1Win permits it in purchase to function inside a quantity of nations around the world around typically the globe, which includes Latina The usa. Betting at an global casino like 1Win is usually legal and risk-free.
]]>
Typically The mobile application offers the full range regarding features accessible about the site, without having any kind of constraints. A Person can always download typically the most recent version associated with typically the 1win software from typically the official web site, plus Google android customers may set upwards automated up-dates. Brand New consumers who else журналистики и прошел sign up by indicates of typically the application could declare a 500% delightful bonus upward to be in a position to Seven,one hundred or so fifty about their own 1st several debris. Additionally, you could obtain a added bonus with consider to installing the particular app, which usually will become automatically acknowledged to your current account upon login.
The Particular 1win software enables users to place sports activities bets and perform casino online games directly from their particular mobile gadgets. Brand New gamers may profit coming from a 500% delightful added bonus upward to 7,one hundred or so fifty regarding their first several build up, as well as trigger a specific offer with regard to installing the particular cellular app. Typically The 1win software gives users with the capability in purchase to bet upon sports activities plus enjoy online casino video games upon each Android os and iOS devices.
