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);
Poniżej przedstawiamy podział na poziomy i jego nazwy w programie lojalnościowym. Między odmiennymi, można tutaj znaleźć szachy online, klasycznego, Texas Hold’em i odmienne. Istnieje również możliwość zagrania w szachy w trybie “Kasyno na żywo” i zagrania przeciw krupierowi lub innemu użytkownikowi kasyna. Użytkownik może otrzymać od czasu operatora szyfr bonusowy pod postacią pięćdziesiąt gratisowych obrotów do wdrożenia w rozrywkach na pewnych automatach bądź w postaci 25 eur do wdrożenia na umowne zabawy wraz z propozycje. Najistotniejsze bonusy i interesujące rabaty, jest to aktualnie podstawa, jeśli idzie o funkcjonowanie wybitnych kasyn w sieci. Identycznie w przypadku Ice, które podaje naprawdę fascynujące funkcje bonusowe.

Na Rzecz pewnej i legalnej rozrywki, Ice Casino 73 wydaje się niezawodnym wyborem. Ice Casino 61 współpracuje wraz z najkorzystniejszymi twórcami oprogramowania w branży. Dostawcy ci tworzą wysokiej jakości automaty, gry stołowe i rozrywki z krupierem na żywo.
Skoro ta rzecz została już wyjaśniona, owo warto wyjaśnić, czym właściwie różnią się te propozycje. Używane Przez Nas kasyno ciągle się przerabia, bowiem nasze wysokie ambicje chcą dostarczyć naszym własnym fanom usługi najlepszej jakości. Zapewniamy ci najwyższe wzorce bezpieczeństwa, błyskawiczne Ice Kasyno logowanie, szeroką ofertę komputerów online od czasu najkorzystniejszych dostawców, błyskawiczne i łatwe płatności oraz profesjonalną obsługę konsumenta. Ice Kasyno przyciąga zawodników również swoimi ogłoszeniami bonusowymi, promocjami i specjalnymi turniejami. Zawodnicy Ice Kasyno mogą liczyć na wyjątkowy system VIP i ekskluzywne gry, Znacznie wydaje się owo 1 wraz z najlepszych miejsc online na rzecz zabawy. Propozycji atrakcyjne i bonusy jest to obowiązkowa część w każdym serwisie hazardowym, który pragnie zachęcić internautów do skorzystania ze swoich usług.
System lojalnościowy w Ice Casino składa się z 99 poziomów, żeby przejść na następny stopień, należy zebrać wymaganą ilość punktów. W zależności od stopnia graczowi przyznawany wydaje się 1 spośród dziesięciu statusów. Każdy wraz z statusów ma swe wartości, równoczesne bonusy i promocje, a także odrębny warsztaty wymiany punktów na pieniądze. Dzięki programowi lojalnościowemu gracze mogą wziąć udział w cotygodniowym bonusie i otrzymać do odwiedzenia 90% depozytu tygodniowo.
W ten sposób każdy zainteresowany może pobrać oprogramowanie na własne urządzenie i bawić się wyjąwszy ograniczeń. Wydaje Się jedynie jeden warunek — urządzenie mobilne ma obowiązek być podłączone do odwiedzenia necie domowej. W zamian zbyt owo gracz otrzymuje bonusy i rabaty, bibliotekę ponad 3500 komputerów i możliwość realizowania błyskawicznych płatności mobilnych. Graj wnikliwie, odrzucić ryzykuj więcej, niż możesz samemu pozwolić stracić.
Dzięki całodobowej obsłudze klienta niezwłocznie rozwiązujemy każde napotkane problemy. Nasze kasyno działa na wszystkich urządzeniach komputerowych bez konieczności aplikacji dodatkowego oprogramowania. Jeśli poszukujesz bezpiecznego, legalnego i uczciwego kasyna online, jest to jesteś w dobrym rejonie. W sekcji video poker w własnym kasynie można znaleźć rozmaite zabawy pokerowe. Odrzucić powinieneś odwiedzać zwyczajnego kasyna, aby poczuć emocje związane wraz z pokerem – możesz zagrać przeciw oprogramowaniu komputerowemu w takich rozrywkach jakim sposobem Joker Poker, Joker Card lub Texas Hold’em. Przy doborze metod płatności dostępnych w naszym kasynie kierowaliśmy się katalogów wygodą, szybkością adaptacji i różnorodnością możności.
Trzeba, że ktoś uzyska swój oryginalny Ice Casino kod bonusowy i przepisze go na swoje konto, a premia będzie aktywowana. Dobra, a przede wszelkim zawodowa obsługa konsumenta kasyn przez internet, to podstawa budowania rzetelnej weryfikacje modele danego kasyna. Przebieg rejestracji użytkownika w kasynie wydaje się być mało zawiły i łatwy. By założyć oryginalny profil gracza, należy kliknąć klawisz “Zarejestruj”. Oprócz owego zawodnicy otrzymają ruch rtp poniesionych kosztów w postaci cashbacku. Na szczeblu “Amator” cashback wynosi od 3% do 12 %, a maksymalnie 8000 złotych.
Wchodząc na stronę zdecyduj się na klawisz obok rejestrowania się, a następnie podaj swój mail i hasło, które ustaliłeś zakładając profil. Jeżeli rejestrowałeś się mediami społecznościowymi, owo IceCasino logowanie również wykonasz w ten sposób – spośród owego danego stanowiska wybierz po prostu ikonę wortalu, obok obsługi którego założyłeś profil. W naszym oknie możesz też przypomnieć hasło do odwiedzenia konta bankowego, jeżeli wyleciało ci ono wraz z głowy. W Tym Miejscu wszystko zależy od czasu twórcy ofert i nie ma określonych konkretnych praw.
Odbieranie pięćdziesiąt bezpłatnych spinów w Ice Casino jest to świetny sposób na posprawdzanie kasyna i tej konsol z brakiem ryzykowania własnych pieniędzy. Darmowe spiny pozwalają grać w niektóre wraz z najlepszych gier z brakiem konieczności dokonywania wpłaty. Oznacza to, że możesz cieszyć się doświadczeniem wolnym od momentu niebezpieczeństwa i nadal mieć szansę na wygranie autentycznych pieniędzy. Ice Casino to nie tylko kody, różnorodność i bezpieczeństwo rozgrywki, lecz również skuteczna obsługa klienta. Z obsługą możemy skontaktować się bezpośrednio przez czatowi na żywo dostępnemu na stronie, w którym miejscu bez kłopotu można uzyskać wsparcie np.
Wśród najlepszych gier znajdują się Bonanza, Rich Wilde i Księga Umarłych, Kleopatra, Diamenty DaVinci i Fishin ‘Frenzy. Oczywiście, są też Starburst, Mega Moolah i Wizard of Oz Emerald City. Warto również zapoznać się z sekcją FAQ, gdyż zawiera ona reakcji na najczęściej zadawane za pośrednictwem internautów zapytania. Jeżeli sięgniesz po połączenie bezpośrednio z obsługą, możesz liczyć na w pełni fachowe traktowanie.
Użytkownicy, którzy już utworzyli konto i zasilili je, mogą liczyć na jeden spośród w najwyższym stopniu hojnych programów lojalnościowych. Oczekuje się, że z każdym doładowaniem będziesz stopniowo przesuwać swój kierunek w górę drabiny osiągnięć i gromadzić określoną liczbę punktów slotowych. Na Dodatek możliwość doboru wyłącznie jednego bonusu spośród dużej liczby ofert zmniejsza elastyczność.
Klasa Kodu została podzielona na kilkanaście sektora, wśród których są każde najczęściej opłacane formaty, jednak także trendy a także gry niszowe. Dzięki nim, jeżeli odbierze się swój bonus bez depozytu, owo za każdym razem łatwo uda się wyszukać zabawy, na które został obrobiony. Jedną spośród głównych zalet, a równocześnie rarytas, które proponuje Ice Casino zastosowanie, wydaje się owo, że udostępnia wszystkie zabawy własnej biblioteki. Owo potężna baza najznamienitszych tytułów spośród branży, która umożliwia praktycznie nieskończone pokłady zabawy. Przez czasy skrupulatnie budowaliśmy naszą sekcję gier, która dzisiaj podaje przeszło 3500 automatów i setki https://ice-casino-app.com odmiennych chodliwych formatów gier i w tym momencie je sobie pokrótce omówimy.
]]>