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);
Regarding a on line casino, this specific is essential in order to ensure that will typically the client would not produce several accounts plus will not violate the organization’s guidelines. With Consider To the customer himself, this particular is an chance to become in a position to get rid of constraints about bonuses in inclusion to obligations. 1Win provides outstanding client help with consider to participants in purchase to make sure a clean and easy encounter upon typically the platform.
A exchange from the particular added bonus bank account likewise happens whenever gamers lose money and the quantity will depend upon the complete deficits. Apps make sure entry to end upwards being in a position to complete game catalogs, supplying options to perform favored slot equipment games or get involved in survive online games from mobile devices. This Specific remedy satisfies modern day player needs with consider to mobility plus wagering amusement convenience. The Particular 1Win mobile version permits participants to employ casino solutions at any time, anyplace. Cellular device marketing doesn’t limit features, sustaining complete video gaming activities. The online casino performs every day competitions regarding slot machines, reside online games, in addition to table entertainment.
At the best, customers may discover typically the primary menu that features a selection associated with sporting activities alternatives and different casino games. It allows customers change among different classes with out any sort of difficulty. It is recognized regarding user friendly website, mobile convenience and typical marketing promotions together with giveaways. It furthermore supports convenient transaction methods that will create it feasible in purchase to down payment inside nearby values and take away easily. Inside inclusion to typically the normal plus regular sports, 1win provides an individual state of the art live wagering together with real-time stats.
The Particular gambling historical past and common statistics areas are presented regarding this specific objective. In Case you want to distribute the particular risk, on one other hand, attempt putting two gambling bets at the same moment. Regarding this specific, 1win provides a quantity of programs of support towards ensuring the particular players have an easy period plus quickly obtain past what ever 1win it will be of which bothers these people. Using Reside Talk, E-mail, or Phone, participants may get inside touch together with the particular 1win support group at virtually any moment. By providing receptive plus dependable assistance, 1win ensures that will gamers could take enjoyment in their own gaming knowledge together with minimal disruptions.
The terms and conditions are very clear, thus gamers may quickly stick to the regulations. A Person may perform live blackjack, different roulette games, baccarat, plus a lot more with real sellers, simply just like with a real on collection casino. As Soon As you’ve gone through 1win sign-up, you’ll be all set to end up being capable to declare awesome bonuses, like free of charge spins in addition to cashback.
1Win provides a selection regarding safe plus simple payment systems therefore that will gamers may deposit funds directly into their own company accounts plus take away their profits quickly. It provides a variety associated with transaction methods for example normal banking methods inside addition to e-wallets together together with cryptocurrencies, enabling it to end upwards being in a position to accommodate in buy to users all close to typically the world. Sports wagering — presently there is zero enjoyment better as in contrast to this particular, plus this is usually some thing that will 1Win reconfirms together with the survive betting features! Furthermore known as in-play gambling, this particular sort regarding bet enables you bet on events, as these people unfold inside real moment. The odds are usually continuously transforming dependent about the particular actions, so a person could modify your own wagers dependent on exactly what is occurring in the sport or complement. Within typically the fast games class, consumers could already find the renowned 1win Aviator video games plus other people in typically the exact same structure.
A Person may move it to become capable to your current desktop computer or generate a individual folder regarding your own comfort. This Specific will create it actually more quickly to be able to locate typically the application in add-on to access it instantly. The download will not really consider extended if a person possess enough storage in addition to a good internet connection. It will be crucial in buy to acquaint oneself with the flexible system specifications of the particular 1win software in advance and check these people towards your gadget. When you don’t know exactly what to favor, a few games are accessible within the particular demo version.
The registration method is usually simple, if typically the program permits it, a person can do a Fast or Common registration. Survive games are supplied by simply several providers in inclusion to presently there are a quantity of types obtainable, for example typically the American or France variation. Furthermore, in this specific area an individual will discover fascinating arbitrary competitions and trophies related to be in a position to board online games. Dip oneself within the particular enjoyment associated with reside gaming at 1Win plus enjoy a great authentic on collection casino knowledge coming from the particular comfort and ease of your current residence. Inside the particular 1Win category an individual will find a variety of multiplayer online games, some of the particular many well-known are Fortunate Jet, Roquet Queen, Speed plus Cash, Coinflip, Rocketx, among other folks. These Types Of online games supply special in addition to exciting activities in purchase to gamers.
The Particular 1win official web site also provides totally free spin promotions, along with current provides which includes 70 free spins regarding a minimum downpayment associated with $15. These Varieties Of spins usually are obtainable about select video games coming from companies such as Mascot Gambling plus Platipus. Live gambling features conspicuously together with real-time odds updates in add-on to, for several events, reside streaming features. The Particular gambling odds are competing throughout most markets, particularly with regard to significant sporting activities plus competitions.
1Win’s eSports choice is usually very powerful and covers typically the the majority of popular modalities for example Legaue associated with Tales, Dota 2, Counter-Strike, Overwatch and Rainbow Six. As it will be a vast class, presently there are usually always dozens associated with tournaments that will an individual can bet about the internet site along with functions which includes funds away, bet creator plus quality broadcasts. Football wagering will be wherever right now there is usually the best coverage associated with each pre-match occasions plus live events with live-streaming. To the south American football plus Western soccer are usually the particular major illustrates regarding typically the directory. Once an individual possess chosen the method to withdraw your profits, the program will ask typically the user regarding photos associated with their own identification record, e-mail, pass word, accounts quantity, amongst others.
A Person can set up the particular 1Win legal program for your Android smart phone or tablet and enjoy all the site’s features efficiently and with out separation. Right After confirmation, you may possibly proceed to end upward being capable to make transactions about the particular system, as all elements will end up being identified in add-on to easily built-in. Fantasy Sports enable a player to develop their particular very own groups, control them, and acquire specific factors dependent about statistics relevant to a particular self-control. To Be Capable To create this specific prediction, a person may make use of detailed statistics supplied by simply 1Win and also enjoy reside contacts directly upon the platform.
“Live Casino” characteristics Texas Hold’em and 3 Card Holdem Poker tables. Croupiers, transmitted high quality, and interfaces make sure gambling convenience. Typically The 1Win live online game selection includes roulette, blackjack, holdem poker, plus baccarat variations.
Online internet casinos have come to be a well-liked contact form associated with amusement with respect to gaming and wagering enthusiasts globally. On-line internet casinos like 1win casino provide a secure and reliable program with consider to players in order to location wagers and take away cash. Together With the particular rise regarding on-line internet casinos, participants could now accessibility their own preferred online casino online games 24/7 in add-on to take benefit of nice delightful additional bonuses and other special offers. Whether Or Not you’re a fan of fascinating slot device game online games or tactical online poker online games, on-line casinos possess anything regarding everyone. 1win offers a totally optimized cell phone variation regarding its platform, enabling gamers to become in a position to access their own balances and enjoy all the games and betting choices coming from their particular cell phone devices.
]]>