<?php
add_action('elementor/element/before_section_end', function( $element, $section_id, $args ) {
if( $element->get_name() == 'container' && $section_id == 'section_layout_container' ){
$skins = array();
foreach ( th90_default_options()['skins_section'] as $key => $value ) {
$skins[$key]['title'] = 'Style ' . $key;
$skins[$key]['imagesmall'] = $value['img'];
$skins[$key]['width'] = '33.3%';
$skins[$key]['maxwidth'] = '95px';
}
$element->add_control(
'_head_sticky_cont', [
'separator' => 'before',
'label' => wp_get_theme()->name . __( ' - Sticky Container', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::HEADING,
]
);
$element->add_control(
'sticky_cont',
[
'label' => esc_html__( 'Sticky Container?', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'no',
'return_value' => 'yes',
'prefix_class' => 'sticky-',
]
);
$element->add_control(
'_head_skin', [
'separator' => 'before',
'label' => wp_get_theme()->name . __( ' - Container Skin', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::HEADING,
]
);
$element->add_control(
'cont_skin', [
'label' => esc_html__('Skin', 'atlas-core'),
'description' => sprintf( esc_html__( 'You can customize the skin elements color from %1$sskin colors settings%2$s.', 'atlas-core' ), '<a target="_blank" href="' . admin_url('?page=th90_options&tab=3') . '"><strong>', '</strong></a>' ),
'type' => 'imagechoose',
'default' => 'inherit',
'options' => $skins,
'prefix_class' => 'is-skin bg-el bg-',
]
);
$element->add_control(
'cont_skin_inherit',
[
'label' => esc_html__( 'Inherit Skin', 'textdomain' ),
'type' => \Elementor\Controls_Manager::HIDDEN,
'default' => th90_opt_override_blank( 'site_skin' ),
'prefix_class' => 'bg-',
'conditions' => [
'terms' => [
['name' => 'cont_skin', 'operator' => 'in', 'value' => ['inherit']],
],
],
]
);
$element->add_control(
'cont_bg_nochange',
[
'label' => esc_html__( 'No change when skin switch?', 'atlas-core' ),
'description' => esc_html__( 'Skin is not change when you switch the skin from light to dark or otherwise.', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'no',
'return_value' => 'yes',
'prefix_class' => 'nochange-',
]
);
$element->add_control(
'cont_bg_trans',
[
'label' => esc_html__( 'Transparent background?', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'no',
'return_value' => 'transparent',
'prefix_class' => 'bg-',
]
);
$element->add_control(
'cont_bg_sec',
[
'label' => esc_html__( 'Secondary color background?', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'no',
'return_value' => 'sec',
'prefix_class' => 'bg-',
'condition' => [
'cont_bg_trans!' => ['transparent'],
],
]
);
$element->add_control(
'_head_light_custom', [
'separator' => 'before',
'label' => wp_get_theme()->name . __( ' - Custom Light Skin', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::HEADING,
'condition' => [
'cont_bg_trans!' => ['transparent'],
],
]
);
$element->add_group_control(
\Elementor\Group_Control_Background::get_type(),
[
'name' => 'light_cont_bg_color',
'types' => [ 'classic', 'gradient' ],
'selector' => '{{WRAPPER}}.bg-light',
'condition' => [
'cont_bg_trans!' => ['transparent'],
],
]
);
$element->add_control(
'_head_dark_custom', [
'separator' => 'before',
'label' => wp_get_theme()->name . __( ' - Custom Dark Skin', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::HEADING,
'condition' => [
'cont_bg_trans!' => ['transparent'],
],
]
);
$element->add_group_control(
\Elementor\Group_Control_Background::get_type(),
[
'name' => 'dark_cont_bg_color',
'types' => [ 'classic', 'gradient' ],
'selector' => '{{WRAPPER}}.bg-dark',
'condition' => [
'cont_bg_trans!' => ['transparent'],
],
]
);
/*$element->add_control(
'_head_noise', [
'separator' => 'before',
'label' => wp_get_theme()->name . __( ' - Noise Container', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::HEADING,
]
);
$element->add_control(
'cont_bg_noise',
[
'label' => esc_html__( 'Enable noise background?', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'no',
'return_value' => 'noise',
'prefix_class' => 'bg-',
]
);
$element->add_control(
'cont_bg_noise_op',
[
'label' =>esc_html__( 'Noise opacity', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 1,
'step' => 0.01,
],
],
'default' => [
'unit' => 'px',
'size' => 0.2,
],
'selectors' => [
'{{WRAPPER}}.bg-noise::after' => 'opacity: {{SIZE}};',
],
'condition' => [
'cont_bg_noise' => ['noise'],
],
]
);*/
$element->add_control(
'_head_box_cont', [
'separator' => 'before',
'label' => wp_get_theme()->get( 'Name' ) . __( ' - Box Container', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::HEADING,
'conditions' => [
'terms' => [
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
$element->add_group_control(
\Elementor\Group_Control_Border::get_type(),
[
'name' => 'border_inner',
'selector' => '{{WRAPPER}} > .e-con-inner',
'conditions' => [
'terms' => [
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
$element->add_control(
'cont_box',
[
'label' => esc_html__( 'Enable box?', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'no',
'return_value' => 'cont',
'prefix_class' => 'box-',
'condition' => [
'content_width' => ['boxed'],
],
]
);
/*$element->add_control(
'solid_box',
[
'label' => esc_html__( 'Solid box?', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'default' => 'yes',
'return_value' => 'solid',
'prefix_class' => 'box-',
'conditions' => [
'terms' => [
['name' => 'cont_box', 'operator' => 'in', 'value' => ['cont']],
],
],
]
);*/
$element->add_control(
'_cont_box_bg_light',
[
'label' => esc_html__('Box background color - Light Skin', 'atlas-core'),
'type' => \Elementor\Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}}.bg-light.e-con.box-cont > .e-con-inner' => 'background-color: {{VALUE}};',
],
'conditions' => [
'terms' => [
['name' => 'cont_box', 'operator' => 'in', 'value' => ['cont']],
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
$element->add_control(
'_cont_box_bg_dark',
[
'label' => esc_html__('Box background color - Dark Skin', 'atlas-core'),
'type' => \Elementor\Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}}.bg-dark.e-con.box-cont > .e-con-inner' => 'background-color: {{VALUE}};',
],
'conditions' => [
'terms' => [
['name' => 'cont_box', 'operator' => 'in', 'value' => ['cont']],
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
$element->add_responsive_control(
'_cont_box_padding',
[
'label' => esc_html__( 'Box padding', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em' ],
'selectors' => [
'{{WRAPPER}}.e-con.box-cont > .e-con-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'conditions' => [
'terms' => [
['name' => 'cont_box', 'operator' => 'in', 'value' => ['cont']],
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
$element->add_responsive_control(
'_cont_box_margin',
[
'label' => esc_html__( 'Box margin', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em' ],
'allowed_dimensions' => 'vertical',
'selectors' => [
'{{WRAPPER}}.e-con.box-cont > .e-con-inner' => 'margin: {{TOP}}{{UNIT}} auto {{BOTTOM}}{{UNIT}} auto;',
],
'conditions' => [
'terms' => [
['name' => 'cont_box', 'operator' => 'in', 'value' => ['cont']],
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
$element->add_responsive_control(
'_cont_box_radius',
[
'label' => esc_html__( 'Box radius', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em' ],
'selectors' => [
'{{WRAPPER}}.e-con.box-cont > .e-con-inner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'conditions' => [
'terms' => [
['name' => 'cont_box', 'operator' => 'in', 'value' => ['cont']],
['name' => 'content_width', 'operator' => 'in', 'value' => ['boxed']],
],
],
]
);
}
}, 10, 3 );
add_action( 'admin_menu', 'th90_register_builder_pages', 9 );
if ( ! function_exists( 'th90_register_builder_pages' ) ) {
function th90_register_builder_pages() {
add_menu_page(
esc_html__('Template Builder', 'atlas-core'),
esc_html__('Template Builder', 'atlas-core'),
'manage_options',
'th90-builder',
'__return_null',
'dashicons-align-wide',
41
);
add_submenu_page( 'th90-builder', '', '', 'manage_options', 'th90-builder', '__return_null' );
remove_submenu_page( 'th90-builder', 'th90-builder' );
}
}
add_action( 'init', 'th90_builder_post_type' );
if ( ! function_exists( 'th90_builder_post_type' ) ) {
function th90_builder_post_type() {
$args = array(
'public' => true,
'show_in_nav_menus' => false,
'show_in_menu' => 'th90-builder',
'show_in_admin_bar' => true,
'exclude_from_search' => true,
'hierarchical' => false,
'map_meta_cap' => true,
'capability_type' => 'post',
'show_ui' => true,
'show_in_rest' => true,
'rewrite' => false,
'supports' => array( 'title' ),
);
$post_types = array(
'block' => 'Block',
'sidebar' => 'Sidebar',
'adv' => 'Advertisement',
);
foreach ( $post_types as $key => $value ) {
register_post_type( 'th90_' . $key,
array_merge(
$args,
array(
'labels' => array(
'menu_name' => $value,
'name' => $value . ' Builder',
'singular_name' => $value . ' Builder',
'add_new' => 'Add New ' . $value,
'add_new_item' => 'Add New ' . $value,
'edit_item' => 'Edit ' . $value,
'new_item' => 'New ' . $value,
'view_item' => 'View ' . $value,
'search_items' => 'Search ' . $value,
'not_found' => 'No ' . $value . ' found',
'not_found_in_trash' => 'No ' . $value . ' found in Trash',
),
)
)
);
}
}
}
function th90_load_canvas_template( $single_template ) {
global $post;
if ( 'th90_sidebar' == $post->post_type ) {
return TH90_CORE_PATH . '/elementor/templates/sidebar.php';
} elseif ( 'th90_block' == $post->post_type ) {
return TH90_CORE_PATH . '/elementor/templates/block.php';
}
return $single_template;
}
add_filter( 'single_template', 'th90_load_canvas_template' );
/*
function th90_render_skin_section_elementor( Elementor\Element_Base $element ) {
if('section' === $element->get_name()){
if ( $element->get_settings( 'section_skin' ) ) {
$element->add_render_attribute( '_wrapper', [
'class' => 'is-skin',
'data-skin' => $element->get_settings( 'section_skin' ),
] ) ;
}
}
}
add_action( 'elementor/frontend/section/before_render', 'th90_render_skin_section_elementor' );
add_action( 'elementor/frontend/after_register_styles', function() {
foreach( [ 'solid', 'regular', 'brands' ] as $style ) {
wp_deregister_style( 'elementor-icons-fa-' . $style );
}
}, 20 );
add_action( 'wp_enqueue_scripts', function() {
if ( ! is_user_logged_in() ) {
wp_deregister_style( 'elementor-icons' );
}
}, 20 );
*/