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);
Buna ötrü də oyunçular bonus raundundan yararlanaraq uduşlarını indicə genişlətmək imkanı əldə edəcəklər. Hədis eyni adlı cihazdan istifadə edir, onun fırlanması zamanı zəfərli sektoru aydın eləmək mümkündür. Əgər Mosbet oyunçusu ona mərc edibsə, o, isbatli cekpotu əldə edə biləcək. Hədis şoularının studiyalarındakı məhdudiyyətlər hər bir istifadəçinin şansını aramaq ötrü bəsdir kəmiyyət genişdir.
Obrazli mərclər zamanı oyun başlamazdan əvvəl də, hədis başladıqdan sonra da mərc düzmək olur. Mostbet şirkətinin innovativ mobil proqramını yükləyərək mobil casino və bukmeyker dünyasını araşdırmağa başlaya bilərsiniz. Şirkətin mobil proqramını iOS və Android sistemlərini dəstəkləyən cihazlarda yükləmək mümkündür. Növbəti bölmələrdə bu barədə uzun oxuya biləcəksiniz.
Iti və ürəyiaçiq oyun axtarırsınızsa, MostBet-in iti oyunları məhz bunu təklif edir. Penalty Shoot-Out, Mines, JetX, Rocketman, Classic Keno, Roll The Dice, Magic Wheel və s. Kimi oyunları oynayın, vur-tut mobil cihazlarda sürətli dövrələr və asan əlçatanlıq üçün optimallaşdırılıb. Keno 20/80, Lucky 6, Andar Bahar və Wheel of Fortune kimi başlıqlarla həyəcanverici TV şousu təcrübələrindən həzz alın. Bu obrazli oyunlar əməli vaxt rejimində studiyalardan yayımlanır, rəqabətli əmsallar və yüksək keyfiyyətli qrafika təklif edir. Nəticələr ədalətliliyi təmin eləmək üçün sertifikatlaşdırılmış Təsadüfi Nömrələr Generatorları (RNG) tərəfindən yaradılır.
Obrazli mərc xüsusiyyəti isə mərcçilərə real vaxtda mərc etməyə imkan verir. Mostbet apk tətbiqi canlı yayım xüsusiyyəti ilə mərc təcrübənizi ən da zənginləşdirir. Bu, mərc etdiyiniz oyunları izləməyə və tayı zamanda mərc qoymağa imkan verir.
Növbəti addım ödəniş məbləğini dürüstləşdirmək və qərarı təsdiqləməkdir. Adətən, depozit 10 dəqiqəyə qədər çəkir və ya cəld baş verir. Əgər oyunçu uduşları nağdlaşdırmaq istəyirsə, pulun çıxarılması prosesi oxşardır.
Pulsuz spinlər 5 gün ərzində adi 50 FS ilə verilir. Loyallıq proqramına əsasən oyunçulara oyundaxili valyuta – koinlər hesablanır. İdman mərcləri, kazino oyunları, tapşırıqları yerinə yetirmək və loyallıq proqramı üzrə səviyyəni yüksəltməklə xal qazana bilərsiniz. Koinlər bonuslar və promosyon kodları ötrü dəyişdirilə bilər. Mövcud promosyonlar və onların şərtləri haqqında ətraflı məlumatı əsas menyunun bonus bölmələrində öyrənə bilərsiniz. Iç olduqdan sonra şəxsi hesabınızı e-poçt və ya telefon nömrənizlə əlaqələndirə bilərsiniz.
Kazinonun rəsmi saytı proqramın cari versiyasını təqdim edir. Daimi yeniləmələr oyunçuları bölünməz funksionallıq və daha asan naviqasiya ilə təmin etməyə imkan verir. Mosbet tətbiqi sizə bonuslar almaq və mərc etmək, həmçinin bütün əsas bölmələrdə mərc etmək imkanı verir. Proqram yaddaşda minimum boş yer tutur, həmçinin mobil versiya ilə müqayisədə interfeysin daha kimi bir sürətli yüklənməsi ilə fərqlənmir.
Mostbet mütəmadi olaraq oyun kitabxanasına müasir slot maşınları artıq edir. Bu yeni izafi edilənlər, cəld innovativ oyun mexanikası, ən yüksək qrafika və unikal bonus xüsusiyyətləri ilə oyunçulara təzə təcrübələr bəxş edir. Təzə slotlar təqdim etmək, Mostbet-in oyunçulara həmişə təzə və maraqlı bir şey təklif etməsini təmin edir. Müasir slotlar tez-tez oyunçuları onları sınamağa təşviq görmək üçün pulsuz spinlər və ya bonus raundlar kimi promosyonlarla gəlir. Bu promosyonlar oyunçulara öz pullarını riskə atmadan müasir oyunları kəşf etmə imkanı verir. Bundan əlavə, müasir slot maşınlarında ilkin buraxılış dövrlərində daha təntənəli uduş faizləri ola bilər, bu da onları yoxlamaq ötrü izafi vahid təşviq yaradır.
Bu, idman mərclərinin yerləşdirilməsini, lazım olan oyunun axtarılmasını və qazanılan mükafatların çıxarılmasını asanlaşdırır. Tətbiq interfeysi ən kiçik detallarına kəmiyyət intuitiv-dir. MostBet Kazino hədis təcrübəsi olmayan təzə başlayanlar belə lazım olan funksiyanı asanlıqla tapa biləcəklər. Tətbiqdə idman analitikası və matçlar üzrə statistika bölməsi yoxdur Əksər funksiyalar və seçimlər var-yox hesabın verifikasiyasından sonra açılır Əməliyyatların işlənməsi formal sayta və ya kazinonun mobil versiyasına nisbətən daha davamlı çəkir
Android və İOS üçün mobil tədbiqlər saytın desktop versiyası ilə oxşarı funksionala malikdirlər. Müasir bettinq getdikcə daha ən mobil vasitələrə doğru irəliləyir. Oyunçuların əzəmətli hissəsi smartfon vasitəsilə mərclər etməyə və kazino oyunları oynamağa üstünlük verir. Elliklə bu funksiyalar Mostbet saytının mobil versiyasında mülk. Şirkət saytın telefonlara uyğunlaşdırılmış versiyasını, eləcə də Android və iOS üçün tətbiqini hazırlamışdır. Uyğunlaşdırılmış saytın üstünlüklərinə baxmayaraq, vahid çox müştərilər yenə də tətbiqdən istifadə etməyə imtiyaz verir.
Bu, adətən, uyğunlaşdırılmış depozit bonusundan ibarətdir, burada platforma oyunçunun ibtidai depozitinin aşkar faizini aydın bir məbləğə qədər uyğunlaşdırır. Depozit bonusuna artıq olaraq, təzə oyunçular tanımlı slot oyunlarında istifadə görmək üçün pulsuz spinlər də əldə edə bilərlər. Mostbet həmçinin geri dönən oyunçular üçün davamlı promosyonlar təklif edir.
Problemsiz para çıxarmaq üçün Mostbet depoziti ilə tayı üsulu tökmək daha yaxşıdır. Qumar asılılığı ilə bağlı probleminiz varsa, 24/7 dəstək komandası ilə münasibət saxlayın. Mütəxəssis ixtisaslaşmış təşkilatların əlaqələrini bölüşəcək və özünü istisna müddəti təklif edəcəkdir. Mostbet, Azərbaycanda geniş istifadəçi auditoriyasına əhl olan məşhur onlayn kazino və mərc platformasıdır. İstifadəçilərə idman mərcləri və kazino oyunları, o cümlədən slotlar, rulet, bakkara və poker qədər klassik oyunlar təklif edir. Testlərimiz göstərdiyi qədər, bu qaydalar Mostbet-də mərc oynamağın təhlükəsizliyini və şəffaflığını təmin edir.
]]>