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);
Greatest regarding all, the application is usually totally totally free to download in addition to will be obtainable for both iOS and Android os consumers. Just Before joining a championship, players may evaluation typically the number regarding engaging teams, typically the prize submission based upon ratings, in addition to the event length in buy to plan their particular technique successfully. Label your own concept obviously as “Mostbet Accounts Removal Request” to make certain the help staff knows your own objective immediately.
Confirmation typically takes less compared to one day in case files are usually posted appropriately. Mostbet procedures hundreds regarding requests daily, so it’s advised to end upwards being able to complete confirmation right away right after registration to prevent delays with withdrawals in addition to added bonus service. Mostbet gives a Hindi-language user interface, in addition to several survive supplier video games feature native Hindi-speaking serves. The minimal down payment with consider to on collection casino online games will be ₹300, yet in order to stimulate typically the welcome added bonus, a downpayment regarding ₹1,1000 or more will be required. Constantly read typically the added bonus conditions within your current account dash to prevent absent deadlines or placing gambling bets upon omitted online games. An Individual don’t require to enter any kind of Mostbet promo code Indian to become in a position to obtain this particular offer.
Press notices maintain consumers educated about advertising possibilities, betting outcomes, in add-on to accounts improvements, creating ongoing wedding that boosts the overall gaming experience. Regarding your current ease, we offer you the particular Mostbet Software with respect to each Google android plus iOS devices. The app is speedy in purchase to install and provides you full accessibility to all on collection casino characteristics right through your cellular gadget. You can get typically the Mostbet BD software straight through the offical site, ensuring a safe in addition to effortless setup without the particular want for a VPN.
Professional sellers guideline players by implies of every hand, producing a great atmosphere wherever skill and bundle of money intertwine in beautiful harmony. The Particular platform’s several blackjack variations guarantee of which both beginners and expert strategists locate their particular best gambling environment. Mostbet aviator soars above conventional video gaming activities, producing a social multiplayer experience wherever time gets the particular ultimate skill. Players watch aircraft go up via multiplier clouds, along with courage identifying the second to protected profits before the airplane vanishes in to digital eternity.
The Particular extensive FREQUENTLY ASKED QUESTIONS area address hundreds regarding frequent scenarios, coming from mostbet totally free bet account activation processes in purchase to technological maintenance manuals. Vimeo video clip tutorials provide visual guidance for intricate processes, coordintaing with written documents along with interesting multimedia content. Typically The software style categorizes mostbet-kyrgyzia.org consumer encounter, together with course-plotting factors placed regarding comfy one-handed operation.
At Mostbet on the internet online casino, we all provide a varied variety of bonuses and promotions, including almost twenty diverse offers, developed to incentive your own action. Coming From pleasant additional bonuses to devotion benefits, the Mostbet BD guarantees that every single participant contains a possibility to be able to benefit. A 10% cashback offer permits gamers to be in a position to recuperate a part associated with their own deficits, guaranteeing they get another possibility in buy to win. This Particular cashback is usually credited every week and is applicable in order to all online casino online games, which include MostBet slots plus table video games. Participants could make use of their procuring funds in buy to continue betting about their own favored online game with out producing a good added deposit.
In Addition, they will obtain fifty free of charge spins upon chosen slot machine devices, adding extra chances in order to win. High-rollers may enjoy unique VERY IMPORTANT PERSONEL system entry, unlocking premium rewards, more quickly withdrawals, in inclusion to personalized gives. Mostbet stands out as an superb gambling program regarding a number of key factors.
The platform supports a wide selection associated with secure transaction procedures focused on worldwide users, along with versatile down payment and drawback alternatives to match diverse choices plus finances. Typically The Mostbet application offers a good outstanding way in buy to enjoy a wide variety regarding betting plus betting options immediately through your cell phone gadget. In Case you would like in buy to knowledge the adrenaline excitment associated with gaming anytime, everywhere, download the particular software today plus seize typically the possibility to be able to place wagers together with top levels. Whenever it arrives to on the internet online casino video games, Mostbet should be 1 associated with the particular the the greater part of extensive brand names out there presently there.
]]>
Your Current private info will be utilized to support your current knowledge through this site, to mostbet скачать control access to your accounts, in add-on to for some other purposes described within our own personal privacy policy.
Welcome in buy to Sam’s Deli, where taste in addition to quality appear together in purchase to produce a great memorable eating knowledge. As a premier deli inside area, we all get pride within providing the customers along with excellent food manufactured from typically the best components. Whether you’re seeking for a hearty sandwich, a refreshing salad, or even a scrumptious aspect plate, we possess anything to be capable to fulfill every palate. Coming From mouthwatering sandwiches to refreshing salads, the menu is sure in order to tantalize your current preference buds. Check Out us today in addition to knowledge the particular culinary excellence that has produced us a favorite amongst deli fans inside city. “Sam’s Deli never ever disappoints! Typically The sandwiches are amply packed, plus typically the flavors are usually outstanding. It’s our first place regarding a speedy in inclusion to scrumptious meal.” – Jessica M.
Greatest regarding all, the application is usually totally totally free to download in addition to will be obtainable for both iOS and Android os consumers. Just Before joining a championship, players may evaluation typically the number regarding engaging teams, typically the prize submission based upon ratings, in addition to the event length in buy to plan their particular technique successfully. Label your own concept obviously as “Mostbet Accounts Removal Request” to make certain the help staff knows your own objective immediately.
Confirmation typically takes less compared to one day in case files are usually posted appropriately. Mostbet procedures hundreds regarding requests daily, so it’s advised to end upwards being able to complete confirmation right away right after registration to prevent delays with withdrawals in addition to added bonus service. Mostbet gives a Hindi-language user interface, in addition to several survive supplier video games feature native Hindi-speaking serves. The minimal down payment with consider to on collection casino online games will be ₹300, yet in order to stimulate typically the welcome added bonus, a downpayment regarding ₹1,1000 or more will be required. Constantly read typically the added bonus conditions within your current account dash to prevent absent deadlines or placing gambling bets upon omitted online games. An Individual don’t require to enter any kind of Mostbet promo code Indian to become in a position to obtain this particular offer.
Press notices maintain consumers educated about advertising possibilities, betting outcomes, in add-on to accounts improvements, creating ongoing wedding that boosts the overall gaming experience. Regarding your current ease, we offer you the particular Mostbet Software with respect to each Google android plus iOS devices. The app is speedy in purchase to install and provides you full accessibility to all on collection casino characteristics right through your cellular gadget. You can get typically the Mostbet BD software straight through the offical site, ensuring a safe in addition to effortless setup without the particular want for a VPN.
Professional sellers guideline players by implies of every hand, producing a great atmosphere wherever skill and bundle of money intertwine in beautiful harmony. The Particular platform’s several blackjack variations guarantee of which both beginners and expert strategists locate their particular best gambling environment. Mostbet aviator soars above conventional video gaming activities, producing a social multiplayer experience wherever time gets the particular ultimate skill. Players watch aircraft go up via multiplier clouds, along with courage identifying the second to protected profits before the airplane vanishes in to digital eternity.
The Particular extensive FREQUENTLY ASKED QUESTIONS area address hundreds regarding frequent scenarios, coming from mostbet totally free bet account activation processes in purchase to technological maintenance manuals. Vimeo video clip tutorials provide visual guidance for intricate processes, coordintaing with written documents along with interesting multimedia content. Typically The software style categorizes mostbet-kyrgyzia.org consumer encounter, together with course-plotting factors placed regarding comfy one-handed operation.
At Mostbet on the internet online casino, we all provide a varied variety of bonuses and promotions, including almost twenty diverse offers, developed to incentive your own action. Coming From pleasant additional bonuses to devotion benefits, the Mostbet BD guarantees that every single participant contains a possibility to be able to benefit. A 10% cashback offer permits gamers to be in a position to recuperate a part associated with their own deficits, guaranteeing they get another possibility in buy to win. This Particular cashback is usually credited every week and is applicable in order to all online casino online games, which include MostBet slots plus table video games. Participants could make use of their procuring funds in buy to continue betting about their own favored online game with out producing a good added deposit.
In Addition, they will obtain fifty free of charge spins upon chosen slot machine devices, adding extra chances in order to win. High-rollers may enjoy unique VERY IMPORTANT PERSONEL system entry, unlocking premium rewards, more quickly withdrawals, in inclusion to personalized gives. Mostbet stands out as an superb gambling program regarding a number of key factors.
The platform supports a wide selection associated with secure transaction procedures focused on worldwide users, along with versatile down payment and drawback alternatives to match diverse choices plus finances. Typically The Mostbet application offers a good outstanding way in buy to enjoy a wide variety regarding betting plus betting options immediately through your cell phone gadget. In Case you would like in buy to knowledge the adrenaline excitment associated with gaming anytime, everywhere, download the particular software today plus seize typically the possibility to be able to place wagers together with top levels. Whenever it arrives to on the internet online casino video games, Mostbet should be 1 associated with the particular the the greater part of extensive brand names out there presently there.
]]>