File "e-button.php"
Full Path: /home/elegucvf/public_html/video/wp-content/plugins/atlas-core/elementor/widgets/e-button.php
File size: 4.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
class TH90_E_Button extends \Elementor\Widget_Base {
public function get_name() {
return 'e_button';
}
public function get_title() {
return __( 'Button', 'atlas-core' );
}
public function get_icon() {
return 'eicon-button th90-widget-icon';
}
public function get_categories() {
return [ sanitize_key( wp_get_theme()->name ) . '-elements' ];
}
protected function register_controls() {
$this->start_controls_section(
'section_general',
[
'label' => __( 'General', 'atlas-core' ),
]
);
$this->add_control(
'text',
[
'label' => esc_html__( 'Text', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => esc_html__( 'Button Text', 'elementor' ),
'placeholder' => esc_html__( 'Button Text', 'elementor' ),
]
);
$this->add_control(
'icon',
[
'label' => esc_html__( 'SVG icon', 'atlas-core' ),
'placeholder' => '<svg ...> ... </svg>',
'type' => \Elementor\Controls_Manager::TEXTAREA,
'default' => '',
'label_block' => true,
]
);
$this->add_control(
'icon_pos',
[
'label' => esc_html__( 'SVG icon position', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SELECT,
'default' => 'left',
'options' => array(
'left' => esc_html__( 'Left', 'elementor' ),
'right' => esc_html__( 'Right', 'elementor' ),
),
]
);
$this->add_control(
'link',
[
'label' => esc_html__( 'Link', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::URL,
'dynamic' => [
'active' => true,
],
'placeholder' => esc_html__( 'https://your-link.com', 'atlas-core' ),
'default' => [
'url' => '#',
],
]
);
$this->add_control(
'style',
[
'label' => esc_html__( 'Button Style', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SELECT,
'default' => 'default',
'options' => th90_default_options()['btn_style'],
]
);
$this->add_control(
'size',
[
'label' => esc_html__( 'Button Size', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SELECT,
'default' => 'medium',
'options' => th90_default_options()['btn_size'],
]
);
$this->add_control(
'_radius',
[
'label' => esc_html__( 'Button Radius', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => [ 'px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 200,
],
],
'selectors' => [
'{{WRAPPER}} .button' => 'border-radius: {{SIZE}}{{UNIT}};',
],
'condition' => [
'style!' => ['text','text_color','text_underline'],
],
]
);
$this->add_group_control(
\Elementor\Group_Control_Typography::get_type(),
[
'name' => 'btn_typo',
'label' => esc_html__( 'Button typography', 'atlas-core' ),
'selector' => '{{WRAPPER}} .button',
]
);
$this->end_controls_section();
}
/**
* Render the widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*/
protected function render() {
$atts = $this->get_settings_for_display();
$classes = array(
'button',
'btn-' . $atts['size'],
'btn-' . $atts['style'],
'icon-' . $atts['icon_pos'],
);
if ( ! empty( $atts['link']['url'] ) ) {
$this->add_link_attributes( 'button', $atts['link'] );
}
$this->add_render_attribute( 'button', 'class', implode( ' ', array_filter( $classes ) ) );
if ( $atts['text'] ) {
$this->add_render_attribute( 'button', 'title', $atts['text'] );
?>
<a <?php $this->print_render_attribute_string( 'button' ); ?>>
<?php
if ( $atts['icon'] ) {
th90_svg_icon_custom( $atts['icon'] );
}
?>
<span><?php echo esc_html( $atts['text'] ); ?></span>
</a>
<?php
}
}
/**
* Render the widget output in the editor.
*
* Written as a Backbone JavaScript template and used to generate the live preview.
*/
protected function content_template() {}
}