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);
Additionally, to become in a position to discover our business offers or become an associate of our own internet marketer system, you should get in touch with us at email protected or email protected. We appear ahead to become capable to speaking about exactly how we can function collectively to attain our mutual targets. Check your expertise at blackjack, a on line casino typical along with easy guidelines and different techniques, plus attempt to become capable to conquer the particular seller to become in a position to win.
Participants who else satisfy typically the legal age requirement associated with eighteen yrs could appreciate real money game play inside numerous categories, which include slot machines, stand games, in addition to credit card games. As A Result, all participants can employ typically the site or mount apps within order in purchase to bet about well-liked sports occasions in add-on to enjoy inside on-line internet casinos. Right After that will, the program will automatically offer an individual a bonus associated with 500%, which usually will be awarded to your current reward account. As soon as all the particular funds will be awarded to end up being capable to your own bank account, a person will require in purchase to help to make a good common bet to wager the particular bonus money, the odds must end upwards being at least a few.
All your current info will be protected simply by sturdy electronic digital encryption in addition to is not shared together with 3 rd parties. Typically The Collection or Method bet is usually a a lot more complex sort that will entails numerous express wagers. It will be considered the the vast majority of advanced plus sophisticated type regarding wagering which will be suitable for knowledgeable bettors. Blessed Aircraft, Speed-and-Cash, Aviator, plus JetX usually are typically the most enjoyed crash video games about this particular site. There are usually also specific switches developed for all of them in typically the main side to side food selection.
Sign Up today to dip yourself within this specific outstanding video gaming collection in on range casino 1win. It utilizes superior protection measures such as SSL security in order to guard your own personal in add-on to economic info. In Case a person want to be able to briefly remove your current bank account, after that you have got typically the chance to become able to temporarily prevent it.
There usually are minimum system requirements that will all players need to fulfill within purchase with consider to the particular application to work well on a good Android cellular system. Coming From the particular lengthy checklist associated with available sports, the particular following are the particular leading 10 many often selected simply by registered sports bettors. Typically The aim has been to help to make positive that will no features were cut within typically the cell phone version.
Absolutely, 1win works legitimately inside Cameroun plus possesses the required permit to supply on-line wagering solutions within just the particular country’s legislation. In order to be able to state this specific creating an account campaign, participants require in buy to proceed by implies of these steps. Indeed, you could make use of typically the exact same bank account in buy to log within to become capable to each the application plus the particular browser edition. Your Current bank account details in inclusion to stability will become synchronized around both platforms. If your current device satisfies all the lowest system specifications, then the software will work very well upon your phone without having freezes and different gaps. Furthermore, for the particular regular procedure regarding the application, you will require a secure Internet connection.
New members who else sign up for right now may begin together with an exceptional welcome reward associated with 500%, giving upward in purchase to 550,500 XAF on their preliminary 4 deposits. Additional marketing promotions contain procuring upon slots or BetGames, no deposit perks, bonus deals with regard to particular sorts of wagers, free of charge spins, in inclusion to exclusive tournament opportunities. Delightful in buy to to end up being in a position to the particular Recognized Web Site 1Win, the particular on-line gambling plus gaming program that will provides Cameroonian users a broad selection regarding deposit plus withdrawal procedures. We provide an individual a clean in addition to secure knowledge in buy to handle your own account, with a selection of choices focused on your current needs.
By Simply picking typically the ‘Live’ choice coming from typically the primary side to side menu on typically the home page, users can quickly access the survive wagering segment of the particular 1win bookmaker internet site. The Particular one win software offers numerous bonuses in buy to boost typically the wagering in add-on to wagering experience. These Sorts Of bonuses contain a nice 500% delightful bonus with regard to fresh participants, procuring advantages, in inclusion to a good special cell phone no-deposit added bonus regarding putting in the software. On the particular web site, an individual could make numerous various sports wagers or enjoy in the particular on range casino.
This version offers identical betting functionalities as typically the software, encompassing a variety of features for gamers through Cameroun, like the next. Presently There are real-time games together with an actual supplier of which will provide your online games even more exhilaration and an individual may sense the nature associated with a real online casino. In Case an individual don’t know 1win which usually wagering company to choose, and then 1win will definitely fit you!
With these varied alternatives, all of us make sure a clean down payment process focused on your own choices. The 1Win Application is usually suitable with many modern Android in addition to iOS devices, including mobile phones plus pills through Samsung korea, Huawei, Xiaomi, and iPhones and iPads working iOS 8.zero and over. Click On upon the particular “Application For Android” key together with the eco-friendly Android os company logo to get the APK file. After clicking the key, the application get will commence automatically.
Well-known Western crews, Cameroonian cups and crews, plus worldwide tournaments just like the particular Planet Mug are just a few regarding the particular picks offered. 1win offers a plethora associated with facts plus stats within an very easily navigable file format each before to be capable to the particular match in inclusion to during it. Notice that one-time added bonus sums also can’t go beyond 342,690 XAF, simply no matter the sizing associated with your current top-up, plus betting conditions utilize.
A Person may enjoy a completely analogous encounter with bet-making plus bank account management. 1win Casino Cameroon gamers might converse with dealers whilst looking at typically the high-definition avenues by simply using the active chat. JetX is a fast-paced wagering game wherever you bet upon typically the trajectory of a jet. Typically The aim will be to end upward being able to pull away your earnings just before the plane crashes, giving excitement and higher potential pay-out odds. These Sorts Of 1Win bonus deals usually are developed in purchase to provide a person significant advantages coming from the moment you sign upwards plus prize your current devotion, enhancing your gaming encounter on the platform. 1Win Cameroun, even though founded just 9 years ago, provides already founded by itself as a significant player between betting sites inside Cameroon.
The Particular live online games presented on the particular 1win betting site deliver a great impressive experience, getting typically the exhilaration regarding a actual physical casino immediately to end up being able to your own mobile or desktop system. Speedy video games inside 1win Online Casino Cameroun refer to become able to a class regarding active and instant-play games of which are usually created in buy to offer quick enjoyment and potential benefits. These games usually are typically easy in purchase to understand and perform, needing little time and work. Presently There are a great deal more as in comparison to two hundred instant-play online games which usually include scuff cards, virtual sports activities, plus accident online games in the lobby associated with this gambling web site, and the the vast majority of performed presently are the following.
Right After enrollment, above a few,500 different games will become available to be in a position to an individual. And Then a person will require to fund your current bank account in inclusion to pick the type of bet, for example, single. Having picked registration via social networks, a person could create a good accounts by logging within via typically the interpersonal sites offered upon the web site, in addition to furthermore designate the currency.
That Will mentioned, we’re offering a bonus regarding FCFA 70,500 in purchase to customers who install our cellular application about their particular devices. Players through Cameroun who else choose cellular gaming could easily get plus set up the particular committed 1win established casino application about their particular Google android or iOS smartphones. By Simply carrying out so, they will acquire unhindered accessibility to become in a position to the casino foyer, allowing these people to enjoy real cash gameplay coming from anyplace they pick, without having any kind of restrictions. Starting your own betting journey within typically the 1win online casino within Cameroun will be a uncomplicated process.
Aviator is usually also a online game of which will be centered upon the function of a random quantity electrical generator, therefore the particular amount of your earnings will depend upon your current ability in add-on to good fortune. An Individual help to make a bet and watch the motion of the airplane, typically the main thing of which a person want to do will be in purchase to pull away the bet on period. After doing all the particular essential techniques for example sign up and confirmation, a person will need in buy to spot a bet. Perform not really overlook just before placing gambling bets, you need to become in a position to replenish your own bank account.
Entry a broad selection regarding online casino online games, coming from slot machine games to well-known stand online games. What’s more, you could enjoy in a survive online casino along with real sellers, offering a great authentic, impressive encounter. Our program assures of which every moment invested with us will be as exciting as inside a real online casino. Typically The online casino segment of the 1win cell phone application in Cameroon offers a diverse series associated with above 13,1000 online games. Reside wagering offers authorized gamers typically the possibility to become capable to spot bets about continuing events, with dynamic odds that will are continuously updated.
Follow typically the methods below within order to be capable to complete the 1win application down load plus unit installation on your own Apple company gadget. Cameroun gamblers looking for convenient wagering coming from anyplace may count about the particular 1win app. Presently There are usually a few nations inside which usually the particular use associated with this particular betting organization is forbidden.
]]>