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);
The user friendly software is clear in add-on to simple in purchase to get around, therefore all the essential capabilities will constantly become at palm. The application includes a large assortment regarding dialects, which is superb with regard to understanding and course-plotting. Usually Are an individual prepared to take your own wagering encounter to become in a position to the particular subsequent level? The Particular 1win application will be right here to become capable to make that take place, providing a seamless wagering knowledge proper at your current convenience.
In Case a person strive for a good thrilling and hassle-free video gaming encounter, 1win Sénégal apk will be your current faithful friend about your current approach to success inside the particular planet regarding gambling. As Soon As the down load is usually complete, navigate to become in a position to your current downloading folder, tap about typically the APK file, plus adhere to the particular onscreen guidelines to mount the application. One More benefit associated with typically the adaptive mobile web site is usually that will it doesn’t demand downloads available or up-dates of 1win APK or IPA.
Lodging in addition to pulling out money about the 1Win app is uncomplicated, together with numerous repayment procedures available to become able to serve to become in a position to different user preferences . The process with consider to cellular mobile phones or i phone gadgets is usually very related, an individual must enter in the particular App store, search by simply typing 1win and click upon the particular down load choice. When set up, you may entry all places of the particular sportsbook and on line casino. Right After doing these actions, your current bet will end upwards being positioned successfully. When your conjecture will be right, your profits will be credited to become able to your stability inside the particular 1win application as soon as typically the match is usually above. The Particular 1win application collects more compared to eleven,1000 online casino online games for every preference.
Get directly into typically the world of sports and online casino video gaming along with self-confidence, guaranteed simply by the particular convenience of this particular thoughtfully designed program. To End Up Being In A Position To make sure a seamless video gaming experience along with 1win about your own Android os device, adhere to these sorts of methods to get 1win application using typically the 1win apk. Uncover unparalleled video gaming independence together with the 1win App – your own best companion regarding on-the-go enjoyment. Customized with consider to ease, typically the 1win software ensures you could enjoy when and wherever fits an individual greatest.
The mobile app gives the entire variety associated with functions obtainable about the particular site, without having virtually any constraints. You may usually download the particular latest edition of typically the 1win app from typically the established website, in add-on to Android consumers may established upward automated up-dates. These Days, typically the capacity to accessibility bookie across different devices is usually important. That Will is usually the reason why 1win has created an adaptable cell phone site of which assures customers may enjoy a soft gambling encounter, regardless of their system. The Particular 1win software is usually designed to fulfill the needs of gamers within Nigeria, offering a person along with an outstanding gambling knowledge.
The Particular 1win Bet program is a thorough program intended to satisfy all of a bettor’s requires within typically the sports activity wagering market upon a cell phone device. Whether a person are a expert punter or just starting out there, the particular 1 win bet app is a great simple and user-friendly approach to hook up together with the exciting planet associated with sporting activities gambling. The Particular 1Win application has been meticulously created to deliver excellent velocity in addition to user-friendly routing, transcending typically the restrictions associated with a regular mobile internet site. Indian native users regularly commend their smooth functionality plus convenience. For an in-depth analysis associated with functions in addition to overall performance, discover our own detailed 1Win app evaluation.
Once the particular down load will be totally complete, touch “Install” to be able to mount the particular app upon your current iOS system. Inside cybersport wagering, users furthermore have accessibility in order to a bunch associated with marketplaces from which everyone may pick some thing ideal with respect to themselves. Typically The selection of marketplaces will be huge, both pre-match plus live, and a person can blend them to help to make express or collection wagers.
The 1win cell phone software maintains all the particular features in addition to areas available upon the particular bookmaker’s web site. Once it is usually saved in inclusion to set up, consumers can fully handle their balances plus satisfy all their particular sports wagering or casino video gaming needs. The Particular sporting activities gambling section characteristics more than 55 professions, which includes cyber sports, although more than 10,1000 online games usually are obtainable within the online casino.
Typically The application is usually completely improved, enabling an individual to quickly get around among the diverse parts. Dispelling any doubts regarding the credibility associated with the particular 1win Application, let’s explore its legitimacy plus reassure consumers searching for a protected wagering platform. The 1win cell phone application stands being a authentic in inclusion to reliable platform, providing consumers together with a reliable method for sports activities betting and on range casino video gaming. Cell Phone online casino is usually a great simple plus well-liked way to end upward being able to play games about the particular move. Through slot machine machines in purchase to video poker and even blackjack with a reside supplier, you have got https://www.1win-casino-sn.com plenty regarding alternatives. The game play associated with typically the 1win apk is furthermore easy – you could get it in inclusion to access a total gambling reception in inclusion to sports activities wagering.
Having started out about typically the 1win app will be a part of cake, thanks to end up being able to their user friendly sign up process. Whether Or Not you’re new in purchase to cell phone betting or maybe a seasoned participant, environment upward your current bank account will be speedy plus straightforward. In most instances, the download regarding the 1win software consists of typically the function of a good automatic update.
Appreciate active actions with online games like T-Kick and T-Basket, wherever players contend intensely inside quick 60-second fits. These Varieties Of video games provide immediate results, showcasing active in inclusion to unforeseen game play that will adds exhilaration in buy to sports wagering. Whether Or Not an individual choose the quick strategy associated with T-Kick or typically the skillful shots of T-Basket, the particular 1Win app offers a simple and engaging wagering process anytime and anyplace. Keep up to date together with reside scores and a selection associated with gambling options, producing Twain Sports an fascinating choice with consider to cellular sports gambling.
]]>
Typically The cellular version associated with the particular 1Win web site characteristics a good intuitive user interface improved with regard to more compact displays. It ensures relieve of routing together with clearly noticeable tab in inclusion to a responsive style of which gets used to to different mobile devices. Important functions for example account management, lodging, wagering, in add-on to getting at sport your local library are seamlessly integrated. The Particular cellular interface maintains the particular primary features regarding typically the desktop computer edition, ensuring a constant user encounter across programs.
The 1Win application provides a dedicated program with respect to mobile betting, providing a great enhanced customer knowledge focused on mobile gadgets.
Users could access a total collection of online casino online games, sports activities wagering choices, live activities, and promotions. The Particular cell phone program helps live streaming regarding picked sports activities, supplying real-time improvements and in-play betting options. Secure repayment methods, including credit/debit playing cards, e-wallets, plus cryptocurrencies, usually are available for debris and withdrawals. In Addition, consumers could access consumer support through live conversation, email, and telephone directly from their particular cell phone devices.
The mobile version associated with the 1win-casino-sn.com 1Win web site and typically the 1Win program offer powerful systems with respect to on-the-go wagering. Each offer you a comprehensive variety associated with characteristics, ensuring customers may take enjoyment in a soft wagering encounter throughout gadgets. Comprehending the variations in add-on to functions of each program helps consumers select typically the most appropriate option with respect to their particular gambling needs.
Typically The cellular version associated with the particular 1Win web site characteristics a good intuitive user interface improved with regard to more compact displays. It ensures relieve of routing together with clearly noticeable tab in inclusion to a responsive style of which gets used to to different mobile devices. Important functions for example account management, lodging, wagering, in add-on to getting at sport your local library are seamlessly integrated. The Particular cellular interface maintains the particular primary features regarding typically the desktop computer edition, ensuring a constant user encounter across programs.
The 1Win application provides a dedicated program with respect to mobile betting, providing a great enhanced customer knowledge focused on mobile gadgets.
Users could access a total collection of online casino online games, sports activities wagering choices, live activities, and promotions. The Particular cell phone program helps live streaming regarding picked sports activities, supplying real-time improvements and in-play betting options. Secure repayment methods, including credit/debit playing cards, e-wallets, plus cryptocurrencies, usually are available for debris and withdrawals. In Addition, consumers could access consumer support through live conversation, email, and telephone directly from their particular cell phone devices.
The mobile version associated with the 1win-casino-sn.com 1Win web site and typically the 1Win program offer powerful systems with respect to on-the-go wagering. Each offer you a comprehensive variety associated with characteristics, ensuring customers may take enjoyment in a soft wagering encounter throughout gadgets. Comprehending the variations in add-on to functions of each program helps consumers select typically the most appropriate option with respect to their particular gambling needs.