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);
Em resumo, a Lampions Gamble é uma casa de apostas confiável la cual oferece alguma ampla gama de opções de apostas esportivas, ótimas odds e promoções exclusivas. Ze você está procurando uma organizacion nas quais tenha an op??o de ze entreter e aumentar suas possibilities de ganhar, a Lampions Gamble é en realidad uma excelente escolha. A Lampions Bet é uma incapere de apostas on-line o qual proporciona aos seus usuários alguma ampla variedade de opções de apostas esportivas.
Uma imagem com alguma representação gráfica carry out curso de uma remesa apersona no lado direito de uma tela. Sony Ericsson operating-system detalhes forem confirmados, o jogador será reglamentario a coger na conta. Afin De realizar isto, clique em “Esqueceu a senha” e siga as instruções adicionais do orden. Jogadores perform País e do mundo precisam escrever teu nome completo, CPF, data de nascimento.
Operating System jogadores têm à disposição desde a roleta corriente, common a diversos, até variações tais como a roleta europeia e outras possuindo nuances diferentes. Além de uma diversidade de esportes, a cubierta de eventos é larga, sobretudo para operating system esportes mais buscados, refletindo a dinâmica como também a paixão de torneios ao redor perform globo. Clique na aba “registre-se” na página inicial perform internet site de uma Lampions Gamble e lá você terá muchas as orientações, é só arrancar o passo a passo para realizar o cadastro. A verificação ocorre em até twenty-four horas após o envio weil documentação, permitindo acesso completo aos recursos de uma plataforma após aprovação. É inegável o quanto as plataformas de apostas estão crescendo no Brasil e ao redor do planeta. Simply No entanto, é best que as gente sempre ze mantenham atentas acerca de cada uma delas.
Operating-system usuários tem a possibilidade de escolher o método que melhor se adapta às suas necessidades e realizar transações sem preocupações. Lembre-se de la cual a Lampions Bet está empenhada em fiar a segurança e proteção dos teus dados financeiros. Los Dos os métodos de pagamento oferecidos através da trampolín são seguros e confiáveis, proporcionando tranquilidade aos jogadores ao produzir transações on-line. No Momento o qual você conhece os principais métodos de deposito disponíveis na plataforma de uma Lampions Wager, fica também fácil selecionar o que mais interessante atende às suas necessidades. Certifique-se também de explorar quaisquer termos et condições específicas ligadas aos métodos de pagamento la cual você decidir usar.
De acordo apresentando a Lampions Wager, o pace médio de calma pra resolução de dudas é de até fourteen dias, contados a fastidiar de uma info de envio carry out email para a ouvidoria da trampolín. O structure perform app Lampions gamble é idêntico ao apresentado simply no internet site e na versão mobile phone, ou venha a ser, tudo o o qual está disponível zero internet site também está disponível zero app. Outro destaque da Lampions Wager é o número de campeonatos em la cual é possível emocionarse. Só zero Futebol, main setor, é possível arriesgar em torneios disputados em também de 45 países, como Alemanha, Brasil, Spain e Inglaterra, por exemplo. Milhões de gente em todo o país usam regularmente esse método para suas transações financeiras.
O cirujano proporciona probabilities de two,48 pra a vitória carry out cara anfitrião. Abaixo há alguma linha com uma desea rápida, 1 botão para chamar o suporte e as diretrizes weil companhia. O usuario tem an op??o de lampions bet tiringa ler as recomendações do game responsável, mudar a localização do site, ze quiser. A administração traduziu o projeto pra o português, espanhol e inglês.
Ainda pra quem não é entendido, a trampolín oferece uma experiência intuitiva e diversificada. A ascensão de uma Lampions Gamble simply no setor de apostas tem sido notável, especialmente desde tua fundação apresentando o enfoque particular simply no ramo nordestino. Ao realizar o Lampions Wager software baixar, você poderá entrar o web site pra jogar de em que você estiver, sem precisar produzir down load nem baixar games.
Aca, você encontrará não apenas apostas esportivas clássicas, mas também ofertas únicas o qual permitirão o qual você experimente a emoção do jogo de alguma nova forma. O nome de uma marca está associado a luzes brilhantes, irradiando calor e luz. É exatamente isto la cual você experimentará ao jogar nossos jogos de apostas. O cassino proporciona operating system caça-níqueis também emocionantes, games clássicos de cassino e arcades emocionantes o qual lhe proporcionarão momentos inesquecíveis de emoção e diversão. Uma dasjenige maiores vantagens do internet site é a gama de jogos, asi como o bacará. Isto permite la cual os jogadores adaptem suas estratégias e experimentem distintas mesas, qualquer uma apresentando distintas possibilities de vitória.
]]>
A Lampions Bet Brasil tem ze destacado simply no ramo de apostas on the internet como uma dieses casas também promissoras pra os apostadores brasileiros. Apresentando uma organizacion intuitiva e 1 cuantioso bônus de boas-vindas de até R$1.1000 afin de novos usuários, ela oferece uma experiência completa em apostas esportivas e jogos de cassino. Em resumo, ze você está procurando durante alguma incapere de apostas confiável possuindo muitas opções e boas chances de ganhar, a Lampions Bet é uma excelente escolha. Sua user interface intuitiva facilita a navegação pelo site como também o amplo leque de mercados disponíveis garante diversão e emoção em suas apostas esportivas. A Lampions Bet Brasil estabelece-se tais como alguma opção confiável e llena afin de apostadores brasileiros.
Operating System visitantes não têm que se agobiar apresentando o pe?ón de possuir suas informações confidenciais interceptadas. No lado direito perform painel primary há botões pra padrón, realizando login em sua conta pessoal. O bookmaker spass 1 formulário útil pra recuperar informações perdidas. Além disto, também é possível contarse em contato com o Suporte ao Consumidor enviando 1 e mail pra email protected. O prazo máximo afin de a resolução de dudas através de meio weil Ouvidoria é de até fourteen dias, contados a partir perform recebimento da reclamação.
Operating-system parceiros aqui são bastante conhecidos no ramo, garantindo o jogo razonable, application de última geração e transmissões de alta qualidade. Uma característica distintiva é a habilidade dos retailers, la cual tornam qualquer partida inesquecível. Estas simulações são en extremo dinâmicas, com partidas muito também curtas do la cual teus equivalentes simply no mundo real.
Para fazer o seu cadastro, é bastante simples, basta entrar o internet site e clicar botão vermelho manifiesto “criar conta” no cantar exceptional direito. Equipe de especialistas em apostas esportivas la cual fornece as grandes conselhos, estatísticas e análises zero País e do mundo. Certifique-se de decidir alguma senha segura, contendo letras maiúsculas, minúsculas, números e caracteres especiais afin de asegurar a proteção da tua conta. Tome Nota constantemente de manter teus informações atualizados pra asegurar uma experiência tranquila e segura ao usar a trampolín weil Lampions Gamble. Os games de poker on the internet estão disponíveis simply no LampiosBet Online Casino, porém tem a possibilidade de servir hallados só usando a mecanismo de indagacion “Buscar”, localizada simply no submarino da página. A administração utilizou operating-system mesmos mecanismos de proteção o qual o web site primary.
Com uma organizacion segura licenciada em Curaçao e em procedimento de regularização no País e do mundo a odaie proporciona alguma experiência abrangente o qual inclui apostas esportivas cassino online e eSports. Os jogadores encontram na Lampions Gamble uma gama impressionante de opções de apostas, desde operating system principais campeonatos de futebol até eSports e eventos ao palpitante. O cassino on the internet de uma plataforma também sony ericsson destaca apresentando alguma seleção premium de slot machine games, jogos de direccion e títulos apresentando dealers ao festón, proporcionando entretenimento twenty-four hrs por vida. Possuindo suporte em português e múltiplas opções de deposito em reais, a LampionsBet País brasileiro tem sony ericsson huracán alguma decisão cada ocasião também well-known entre operating system entusiastas de apostas simply no país. Sony Ericsson você está interessado em apostas esportivas on the internet, a Lampions Bet é definitivamente uma organizacion la cual bono a asociación considerar.
O basquetebol é um desporto amplamente conhecido pela tua intensidade e emoção, e as apostas simply no basquetebol são igualmente emocionantes. Na Lampions Wager, encontrará uma apoyo abrangente dos principais torneios e ligas de basquetebol, o la cual produz dessa trampolín alguma excelente escolha pra os fãs de desporto. Acesse o web site oficial Lampions Gamble, busque a aba “Depósito” e depois “Saque”. Preencha seus informações, o monto o qual pretende superar, confirme as informações e é só esperar o monto entrar em sua conta. Tomas certas precauções é essencial para o qual você verdaderamente possa aproveitar a diversão o qual os jogos proporcionam.
Através De exemplo, problema você decida mudar teu endereço de email inspeccionado na plataforma de uma Lampions Gamble, pode servir necessário opinar esta mudança através de meio de um link emisario ao novo endereço. Continue lendo para descobrir cependant eventos esportivos em relação à diferentes promoções e elementos interessantes oferecidos por organizacion weil Lampions Bet. Sejam bem-vindos à análise do LampiosBet Casino, lançado em 2020 pela renomada organização F2JC N.V., uma squadra experiente apresentando atuação global simply no ramo de apostas.
Todas as páginas são avermelhadas possuindo um fundo escuro, um design and style que é bastante agradável aos olhos. Na Lampions Bet, você tem a possibilidade de arriesgar em thirty modalidades distintos de esportes, além de também espaços reservados para cassino e diversos games. E, caso você esteja se perguntando, sim, o site da Lampions Bet é compatível com operating system navegadores de pc, smartphones e pills – além de também contar possuindo 1 aplicativo exclusivo afin de guias Android e iOS.
]]>