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);
After That it remains to be to become able to verify the particular process within a few of mins in inclusion to work the particular power. Installation requires simply no more compared to 5 mins, and typically the interface will be user-friendly actually for beginners. Mostbet cooperates with more as in comparison to 170 major software program designers, which enables the platform in buy to provide online games regarding typically the highest quality. Yes, Mostbet utilizes SSL encryption, accounts verification, plus advanced protection protocols to safeguard your current data and transactions across all products. Mostbet helps Visa, Mastercard, Skrill, Neteller, EcoPayz, cryptocurrencies, in add-on to nearby procedures based upon your own area.
There’s also a great choice to get into Illusion Sports Activities, wherever participants may generate dream groups and be competitive dependent on real-life gamer shows. Bank Account verification allows to end upwards being capable to protect your current bank account through fraud, ensures a person are associated with legal age group to end up being in a position to gamble, plus complies together with regulatory specifications. It furthermore stops identification theft in inclusion to safeguards your own economic purchases about the particular platform. Mostbet comes after stringent Understand Your Current Client (KYC) processes in buy to guarantee safety with respect to all customers. Right After getting into your current information and agreeing to end upwards being capable to Mostbet’s terms plus conditions, your current accounts will be created.
Beyond the spectacular delightful service, the particular program maintains a constellation regarding ongoing promotions that will shine such as stars inside typically the gaming firmament. The mostbet bonus ecosystem includes weekly procuring benefits associated with up in order to 10% on dropped funds, along with a highest cashback regarding $500 allocated every Monday just like clockwork. This Specific wonderful pleasant package doesn’t quit presently there – it extends their adopt via several down payment bonus deals that will carry on to be able to reward your journey. The Particular second downpayment gets a 30% added bonus plus 30 totally free spins with respect to build up through $13, while the 3 rd deposit grants 20% plus 20 totally free spins with consider to debris from $20. Even the particular next and succeeding deposits are usually celebrated together with 10% bonus deals plus ten free spins for build up through $20.
Mostbet Dream Sporting Activities will be a good exciting characteristic that allows gamers to produce their personal dream groups plus contend dependent about real-world participant shows inside different sports. This kind regarding gambling provides a good added level associated with strategy plus proposal to conventional sports gambling, giving a enjoyable in add-on to gratifying experience. Mostbet gives an exciting Esports gambling section, providing to be able to the increasing recognition associated with competing video video gaming. Players may gamble on a wide selection of worldwide recognized games, generating it a good exciting choice for each Esports lovers in add-on to wagering beginners. As Soon As authorized, Mostbet might ask an individual to verify your own identification by posting id files. After verification, you’ll be in a position to begin adding, claiming bonuses, in inclusion to experiencing typically the platform’s broad variety of betting choices.
Mostbet On Line Casino furthermore gives details regarding a amount of businesses that will provide guidance in addition to assistance. Mostbet Casino’s site exhibits a stylish plus modern design and style, featuring a relaxed blue plus whitened colour scheme. Typically The site’s reactive user interface offers instant feedback in purchase to player’s activities, making sure a good continuous gaming experience.
If an individual choose this particular added bonus, you will get a pleasant added bonus мостбет скачать associated with 125% upwards in purchase to BDT twenty five,000 on your current stability as additional cash after your 1st downpayment. Typically The higher typically the deposit, the larger the particular bonus a person may employ inside gambling about any type of sporting activities and esports confrontations using location close to the particular planet. By employing these methods, a person could enhance the particular safety associated with your accounts verification process, whether a person are applying typically the cell phone version or logging in through mostbet possuindo.
Typically The system has manufactured the process as basic in addition to fast as feasible, giving many methods to create a good bank account, and also obvious regulations that assist stay away from misunderstandings. Although Bangladesh’s wagering industry is usually developing, the online wagering market will be however to be in a position to fully mature credited in buy to present legal limitations. On-line casinos plus sportsbooks are not totally legalized within Bangladesh, yet some regulating actions apply.
Nevertheless, the overhead jewel of typically the Mostbet on collection casino is their extensive slot machine game device series. Boasting over six-hundred different slot device game headings, this particular ever-growing collection includes almost everything from ageless traditional slots to end upwards being able to modern day video slots plus high-stakes jackpot online games. Drawback digesting times may vary dependent about typically the chosen repayment approach. Whilst lender transactions plus credit/debit card withdrawals may possibly consider upwards to be in a position to five company days, e-wallet withdrawals usually are often authorized within 24 hours.
Coming From a no deposit birthday reward to become able to pleasing new customers, there’s some thing with regard to everyone. In Addition, Mostbet usually progresses out there marketing strategies during unique events such as Valentine’s Time in addition to Holiday. Mostbet furthermore stands apart for their competing probabilities across all sports, making sure that bettors acquire great worth regarding their money.
]]>
The Particular MostBet promotional code is HUGE. Typically The code could end upwards being applied when registering to acquire a 150% down payment bonus and also totally free on range casino spins. When you don’t discover the Mostbet application in the beginning, an individual may want in order to change your current Application Store area.
Different sorts of wagers, such as single, accumulator, system, total, handicap, statistical wagers, enable each and every participant to choose in accordance to their own choices. Typically The Mostbet application gives a useful interface that easily combines sophistication together with efficiency, generating it available in buy to each beginners in inclusion to experienced bettors. Their clear design and style plus considerate corporation make sure that you could navigate by means of the particular betting alternatives very easily, enhancing your current total video gaming experience.
MostBet will be not really just an internet casino; it is a distinctive entertainment space in these days’s on-line casino world. A variety of games, nice rewards, a great intuitive interface, in add-on to a large protection standard come with each other to help to make MostBet one associated with typically the greatest on the internet casinos of all moment with respect to windows. Mostbet’s devotion plan is usually enriched together with prizes regarding both new and skilled gamers, supplying an exciting and rewarding gambling atmosphere through the really 1st stage regarding your online game. MostBet.apresentando will be licensed within Curacao plus offers on the internet sports gambling and video gaming to players within numerous diverse countries around the particular planet. MostBet.com is usually certified in add-on to typically the established cell phone software offers secure and secure on-line betting inside all nations exactly where typically the gambling program can end up being accessed.
The Mostbet help group is made up associated with experienced plus top quality experts that realize all typically the complexities associated with typically the wagering business. What will be Illusion Sports Activities – It is usually a virtual online game exactly where an individual take action being a team office manager, creating a group coming from real sports athletes. You view their particular efficiency, make factors regarding their own achievements, plus contend along with additional gamers with respect to prizes. You could download typically the MostBet cell phone application on Android or iOS gadgets when an individual sign up. The Particular app will be totally free to end up being able to down load in add-on to can end upward being accessed via this specific web page.
Discover out there just how to become in a position to statistics the technical storage get typically the MostBet cellular app on Android os or iOS. Well-liked wagering enjoyment in the particular Mostbet “Survive On Line Casino” section. Live gambling alternative – real-time working activities that enable an individual to end up being able to predict typically the unexpected result associated with each event.
]]>
Your Current personal data will be used in order to help your experience throughout this specific site, to become capable to manage entry to become able to your bank account, in add-on to regarding other reasons referred to inside the level of privacy policy.
Welcome to Mike’s Deli, exactly where taste and top quality arrive with each other to end up being able to create a good memorable cusine experience. As a premier deli within town, all of us take take great pride in inside serving our consumers along with exceptional food produced through the particular best components. Whether a person’re seeking regarding a hearty sandwich, a relaxing salad, or even a delicious part dish, we all have something to become able to fulfill each palate. Coming From delicious sandwiches to relaxing salads, the menus mostbet kg is usually positive to end upward being able to tantalize your own flavor buds. Check Out us nowadays in addition to experience the culinary superiority of which provides made us a favorite among deli enthusiasts inside area. “Sam’s Deli never ever disappoints! The Particular sandwiches are nicely packed, and the flavors are usually exceptional. It’s my first location for a fast in inclusion to delicious meal.” – Jessica M.