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);
Every Single day, a huge betting market is usually provided on 50+ sports professions. Betters have accessibility to be able to pre-match and live wagers, public, express gambling bets, plus techniques. Enthusiasts regarding video games possess entry to end upward being able to a listing regarding fits upon CS2, Dota2, Rofl in addition to many additional alternatives.
When generating debris plus holding out regarding repayments, bettors ought to really feel self-confident inside their own setup. At 22Bet, there usually are zero issues with the particular option associated with transaction strategies and the particular rate associated with purchase running. At the particular similar moment, we do not cost a commission with regard to replenishment in inclusion to cash out there.
Presently There are over fifty sports to choose coming from, including rare professions. Sporting Activities specialists in addition to merely fans will find the particular best offers upon the gambling market. Fans of slot machines, table and card online games will appreciate slot machines for every preference in addition to spending budget. All Of Us guarantee complete security regarding all info came into on the particular website. Pre-prepare free space within the gadget’s memory space, enable unit installation through unidentified options.
The Particular pre-installed filtration and search pub will aid a person quickly find the particular wanted complement or sports activity. Right After all, a person could concurrently view the particular match up and make estimations upon typically the outcomes. Simply move in purchase to the particular Live section, select a great celebration together with a broadcast, appreciate typically the sport, in addition to catch higher probabilities. A Person may pick coming from extensive bets https://22bet-app-es.com, 22Bet survive wagers, singles, express gambling bets, techniques, about NHL, PHL, SHL, Czech Extraliga, and friendly matches.
We realize concerning the requires regarding contemporary bettors inside 22Bet cell phone. That’s exactly why all of us created the personal application for mobile phones upon various platforms. The betting inside the two cases is usually x50 regarding typically the funds acquired. If you gamble the particular gamble inside the particular 22Games segment, it is going to end upwards being counted inside double size.
Join typically the 22Bet reside broadcasts and catch the particular the vast majority of favorable probabilities.
Typically The internet site will be protected simply by SSL security, so repayment details and personal info are totally risk-free. The 22Bet dependability associated with the particular bookmaker’s workplace is verified by the particular official certificate to end upward being capable to function in typically the industry of betting services. We have got approved all typically the necessary bank checks associated with impartial checking centers for conformity together with the rules and regulations. This Specific is usually necessary in purchase to guarantee typically the age associated with the user, the meaning associated with typically the information in the particular questionnaire. We All work with international and local firms of which have got a great excellent reputation. The Particular listing regarding available systems will depend about the particular place regarding the user.
We offer you a huge amount associated with 22Bet marketplaces with consider to each and every occasion, thus that will each newbie plus experienced bettor may choose the the vast majority of fascinating alternative. All Of Us take all varieties of gambling bets – single games, methods, chains plus much even more. A selection of online slots from trustworthy suppliers will satisfy any gaming tastes. A full-on 22Bet on collection casino attracts all those that would like to try their own luck.
22Bet welcomes fiat plus cryptocurrency, offers a risk-free environment with regard to obligations. Regardless Of Whether an individual bet about the particular total amount associated with operates, the particular overall Sixes, Wickets, or the very first innings outcome, 22Bet offers typically the many aggressive odds. Confirmation will be a confirmation of identity required to be able to validate typically the user’s age and some other info.
It includes more compared to 55 sports, which includes eSports plus virtual sporting activities. In the particular centre, a person will see a line along with a quick transition to the self-control in addition to occasion. Upon the left, right now there is a discount that will will display all gambling bets produced along with the particular 22Bet bookmaker. A marker associated with the particular operator’s stability will be typically the regular in addition to fast payment regarding cash.
Professional cappers generate very good cash in this article, gambling on group matches. For ease, the particular 22Bet site offers configurations for displaying chances within diverse types. Choose your own favored one – United states, decimal, The english language, Malaysian, Hong Kong, or Indonesian.
22Bet professionals quickly react to become in a position to modifications during the particular online game. The alter of odds will be supported by simply a light animation regarding clearness. An Individual need to become attentive in add-on to behave swiftly to become in a position to help to make a rewarding prediction. 22Bet tennis followers may bet on main competitions – Fantastic Slam, ATP, WTA, Davis Mug, Given Mug. Less considerable tournaments – ITF tournaments and challengers – are not disregarded as well.
Sports followers and professionals are supplied together with sufficient possibilities in order to help to make a large variety of estimations. Whether an individual prefer pre-match or survive lines, we all have anything in buy to offer. Typically The 22Bet web site provides an ideal construction of which allows an individual in purchase to swiftly navigate via groups. The first point of which problems Western european players is usually the particular safety plus transparency associated with obligations. Right Right Now There are simply no problems along with 22Bet, like a obvious recognition algorithm has already been developed, plus repayments usually are produced within a protected entrance. 22Bet Bookmaker operates on the particular basis of a license, plus offers high-quality providers and legal software.
]]>
Typically The drawing is usually carried out by a genuine supplier, applying real products, beneath the particular supervision associated with many cameras. Top programmers – Winfinity, TVbet, and Several Mojos current their own goods. The Particular lines usually are comprehensive regarding both long term and live sentimos el acceso contacts. Regarding individuals fascinated in downloading it a 22Bet cell phone software, all of us present a short training on exactly how to set up the particular application upon virtually any iOS or Google android gadget. 22Bet Cellular Sportsbook offers its consumers a pleasant added bonus regarding 100% regarding the particular first down payment.
We All understand concerning typically the needs associated with modern bettors in 22Bet cell phone. That’s why we all developed our own personal program for mobile phones about different programs. Obtain entry to survive streaming, superior in-play scoreboards, in add-on to different payment options simply by the particular modern 22Bet software. Knowledge the versatile options associated with the application plus place your current gambling bets by implies of the particular mobile phone. Typically The Sport Advancement Life Cycle (GDLC) will be a organized procedure with respect to producing video online games, related to end upwards being in a position to typically the Application Advancement Existence Cycle (SDLC). It usually involves a number of levels, which include initiation, pre-production, manufacturing, testing, beta, in addition to discharge.
22Bet bonus deals usually are obtainable in purchase to everybody – newbies plus knowledgeable players, betters and bettors, high rollers and spending budget customers. For those who else usually are seeking regarding real journeys in inclusion to want to end up being in a position to feel like these people are in an actual casino, 22Bet offers such an opportunity. 22Bet reside online casino will be precisely typically the option that will is ideal regarding betting within survive transmit mode. An Individual may choose coming from long-term gambling bets, 22Bet live wagers, lonely hearts, express wagers, systems, about NHL, PHL, SHL, Czech Extraliga, plus friendly complements.
At 22Bet, there usually are no problems with typically the selection associated with transaction strategies and typically the velocity regarding purchase running. At typically the exact same moment, we do not demand a commission with regard to renewal in add-on to cash out. Playing at 22Bet will be not only pleasurable, nevertheless furthermore profitable.
Simply No matter exactly where you are, you may always discover the tiny eco-friendly customer assistance button situated at the bottom part proper nook of your own display screen associated with 22Bet application. By pressing this particular key, a person will open a chat window together with customer support of which is usually obtainable 24/7. When you have even more severe difficulties, for example deposits or withdrawals, all of us advise contacting 22Bet by simply e mail. Separate coming from a welcome offer you, cell phone customers obtain entry to additional promotions which usually usually are easily turned on upon typically the move.
Till this process is accomplished, it is not possible to be in a position to withdraw cash. All Of Us understand of which not necessarily everybody has the particular opportunity or desire to become able to down load plus install a separate software. An Individual may play through your cell phone without going via this procedure. In Buy To maintain upward along with typically the leaders in the particular contest, place wagers upon the go plus spin and rewrite typically the slot machine fishing reels, you don’t possess to sit down at the particular pc monitor.
Typically The mobile edition more impresses with an revolutionary research perform. The complete factor appears visually but it is furthermore useful regarding a brand new user following getting familiarised together with the particular structure regarding the cellular web site. In typically the 22Bet software, the similar marketing gives usually are obtainable as at the desktop computer edition. A Person may bet about your current favorite sports activities market segments plus play the particular most popular slot machine equipment with out starting your own laptop. Keep reading to become capable to realize how to end up being in a position to get plus stall 22Bet Mobile App for Android os plus iOS gadgets. 22Bet Bookmaker functions about the particular basis of this license, and gives top quality services in addition to legal software program.
Survive casino provides to be capable to plunge in to the environment of an actual hall, with a seller in addition to quick affiliate payouts. Sporting Activities professionals and just enthusiasts will locate the particular best provides on the particular gambling market. Enthusiasts regarding slot devices, table plus credit card games will enjoy slot device games with consider to every single flavor plus price range.
Actually through your mobile, you nevertheless can help to make easy bets like singles about personal online games, or options contracts on typically the champion of a competition. If a person need to become capable to perform through your own cellular device, 22Bet is usually a very good choice. As a single of the particular leading wagering websites on the particular market, it provides a unique application to enjoy casino video games or bet about your own favored sports. You could get plus mount typically the 22Bet software upon any iOS or Android system from the recognized website.
]]>