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);
Afin De igual, o software Bad fire conta possuindo o user interface totalmente otimizado pra telas de menor dimensão. Collision e Double da Blaze são search powerplant optimization sombra de dúvida operating system bons de aposta on-line disponíveis zero setor. Neste Momento la cual já sabemos operating system métodos de pagamento weil Blaze, é tempestivo passarmos o passo a passo de como fazer o seu 1º depósito e receber o seu bônus de boas-vindas. Na Bad fire operating-system apostadores la cual preferem dar em tênis tem an op??o de aproveitar de alguma grande quantidade de competições. Abaixo você terá a listagem de algumas das competições também acompanhadas na Fire.
Também diversos online games estão a sua espera na Bad fire, vários destes games podem servir acompanhados em transmissões ao festón na própria Bad fire. Acessando a Blaze você verá que a trampolín cobre diversas competições de futebol, incluindo futebol feminino. Veja abaixo quais aparelhos iOS dão suporte e tem complete fun??o possuindo o software Fire.
Nesse tópico falaremos quais são esses esportes e destacaremos as principais opções de apostas em competições na Bad fire. Reunido possuindo o bônus de saldo adicional a sua conta, a Fire ainda oferece rodadas grátis em teus jogos de cassinos originais. Las Siguientes rodadas grátis serão adicionadas ao longo de seventy two hrs perform instante do caimento carry out bônus.
Esses métodos de pagamento versáteis atendem às diferentes preferências de nossos usuários, garantindo alguma experiência financeira perfeita e capaz. Os usuários tem an op??o de decidir dentre uma variedade de opções de deposito, incluindo cartões de crédito, cartões de débito, transferências bancárias e carteiras eletrônicas. Pra isto, é só acessar o internet site e clicar num web web page link na seção de aplicativos móveis. Nessa página, clique no logotipo perform apple iphone em que será encaminhado para o Bad fire down load iOS. Aí spike 1 pacote de videos de instalação afin de o aparato móvel executado simply no sistema iOS.
O usufructo perform app Bad fire iOS por este método possibilita que o teu desempenho esteja 100 % ligado à internet. Já que o software Fire iOS não estará instalado em seu mecanismo não ocupará espaço e também não exigirá pré-requisitos para se tornar aproveitado. O aplicativo proporciona suporte ao cliente 24 hrs através de vida, several dias durante hebdómada. Reserva possuindo possíveis inconveniencias de segurança ao baixar APKs de amalgames externas.
Operating System ganhos obtidos através dasjenige apostas no site tem a possibilidade de servir sacados e desta maneira transferidos pra conta do jogador, no instante em que solicitado. Também estão disponíveis jogos em modos demonstrativo, la cual servem para o apostador conhecer a modalidade antes de limitar investir recurso financeiro actual. Alguma sucesión durante enel de muchas as regras e mecânicas carry out game escolhido, ele pode fastidiar para o game a dinheiro. A Fire em tua versão mobile entregará todas as funções e elementos que a versão de aplicativo, algumas diferenças são notáveis em comparação com as duas. Ambas são leves, funcionam bem e possuem operating-system mesmo games de cassinos e modalidades esportivas. Diferentes esportes podem ser apostados na Fire, search powerplant optimization falar nos vários games de cassinos on-line originais de uma Blaze, Online Poker, roletas, slots e cependant.
Embora o aplicativo Bad fire software download venha a ser de fato bem soportable e o qual tenha a possibilidade de desempenhar bastante em qualquer aparelho, é interessante saber quais são suas especificações pra a instalação. A Bad fire down load APK application contém licença de operação produzida pelo governo de Curaçao e proteção de informações SSL versão 3, possuindo criptografia 128 parts. O Bad fire application accede que você efetue suas apostas vello móvil em qualquer local no dia em que desta forma quiser.
O web site da Fire oferece o ambiente tranquilo e confiável pra teus jogadores, possuindo uma ótima user interface visual e comandos fáceis de acostumar. A empresa oferece alguma grande quantidade de vantagens, comprehensive bônus generosos pra recém-lan?ados jogadores. Ela também se produz suvenir por software, permitindo o acesso em qualquer lugar. Para arriesgar simply no Bad fire é necessário conseguir mais de eighteen anos e perfeccionar o cadastro simply no web site.
A Blaze possui um catálogo apresentando operating system cependant populares jogos de cassino online que tem a possibilidade de servir jogados em tua versão ao-vivo e também em tua versão regular. Neste catálogo encontramos games tais como Baccarat (Vinte-e-um), Baccarat, Roleta, Caça-níqueis e bem mais. Ela tem importante presença zero mercado global de apostas e cassinos online, sendo uma dasjenige cependant acessadas simply no Brasil.
A visualização é limpa e direta, permitindo uma transição suave no meio de distintos categorias e jogos. Operating System usuários tem an op??o de deducir uma experiência de apostas fluida apresentando todas as características essenciais ao alcance de 1 matiz. Este aplicativo é o software program projetado afin de fácil down load e instalação em dispositivos móveis baseados em iOS.
Além perform aplicativo móvel dedicado, o Bad fire Application também proporciona alguma versão de navegador móvel, proporcionando aos usuários versatilidade e flexibilidade nas apostas. A versão para navegador móvel é uma atajo atraente ao aplicativo móvel e é adequada para operating system usuários la cual preferem não baixar e instalar um aplicativo em seus aparelhos. A versão móvel da Fire Ex Profeso, desta forma tais como teu aplicativo, pra dispositivos Google android e iOS, está à disposição dos usuários, ofertando acesso integral às características de uma plataforma. Criada através de especialistas em games de apostas, o site weil blaze foi produzido para la cual o jogador comence tudo o o qual deve logo design ao entrar no internet site. O application de uma blaze seleciona os eventos também legais pra teu silueta e os coloca na página introdutória. As seções do internet site estão muito definidas, apresentando apostas esportivas separadas dasjenige opções de cassino on-line, la cual são igualmente fáceis de navegar.
Ao passo de se tornar o aplicativo que possa ser de qualidade e possa entregar alguma boa usabilidade de recursos e características aos usuários a Bad fire ze destaca em algumas vantagens. No instante em la cual foi feita essa análise, nenhum modelo de bônus é oferecido para aqueles que somente baixam a Bad fire cassino app em teus aparelhos. Durante outro lado, o bônus de boas-vindas é 1 grande chamativo aos novos apostadores. Tais Como foi brevemente mencionado anteriormente, a Blaze disponibiliza 1 bônus aos teus novos usuários la cual criam conta e fazem teu 1º depósito. Para entendermos melhor asi como funciona o bônus, confira tais como arrumar exista bônus que pode chegar a R$1000.
Esta tem an op??o de servir uma forma de começar as suas apostas simply no cassino on-line simply no software de apostas Fire. Na Blaze é possível apostar tanto em cassinos quanto em eventos esportivos, aos recém-lan?ados apostadores a odaie proporciona 100% de bônus no 1º depósito. A Fire software é 1 2 programas de apostas em cassinos que cependant tem chamado atenção em últimos meses, exatamente por quantidade de modalidades de cassino e o bônus de boas-vindas de até R$1000.
Company Logo de cara temos a capacidade de adiantar o qual baixar software Fire não está disponível afin de o orden operacional iOS. Confira esta sugestão que deixamos logo design abaixo de tais como usar em teu aparelho iOS sem particularizar baixar o software Bad fire. A plataforma de apostas Blaze já é uma dieses mais conhecidas dentre as principais plataformas de apostas on-line. Isso ze dá justamente através da sua entrada quantidade de jogos e opções de apostas adentro perform web site.
Além disso, o aplicativo proporciona acesso a códigos promocionais, bônus e vários incentivos. O aplicativo está disponível pra aparelhos Android e iOS e é infundado pra get e instalação. Simply No Bad fire apostas também encontramos o mais interessante dos games blaze apostas de cassino on-line.
Simply No jogo Crash Blaze uma online é jogada pra o gran e irá estourar a qualquer instante. O speed o qual levará afin de an online estourar é aleatório e o objetivo carry out jogador é se descartar de uma partida antes la cual ela estoure. Porém quanto cependant a bola subir, cependant o valor o qual pode ser ganho incrementa, instigando operating-system jogadores a estar 1 bocado também. É através de isso que este jogo é tão emocionante e tão adorado por apostadores la cual curtem a energia carry out cassino. Para galera mais noua, ligada em eSports, também é possível lançar a sorte em partidas de counter-strike, Dota e outros jogos eletrônicos.
Através do internet site oficial Bad fire, tem an op??o de fazer o down load da Bad fire APK search engine marketing qualquer complexidade. Tal é 1 ficheiro estatal perform aplicativo desenhado para esses aparelhos. Basta acessar o web page link na seção de aplicativos e clicar no botão “Download para Android”. O aplicativo da voie visitar todas as ofertas e características carry out Blaze em qualquer móvil systems capsule. De maneira, você realiza suas transações em segurança, total em depósitos asi como saques.
]]>