OwlCyberSecurity - MANAGER
Edit File: header-banner-2.php
<?php use Elementor\Widget_Base; use Elementor\Controls_Manager; use \Elementor\Group_Control_Typography; use Elementor\Utils; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly /** * Elementor Hello World * * Elementor widget for hello world. * * @since 1.0.0 */ class Chursy_Elementor_Header_Banner_2 extends Widget_Base { /** * Retrieve the widget name. * * @since 1.0.0 * * @access public * * @return string Widget name. */ public function get_name() { return 'chursy_elementor_header_banner_2'; } /** * Retrieve the widget title. * * @since 1.0.0 * * @access public * * @return string Widget title. */ public function get_title() { return esc_html__( 'Header Banner 2', 'chursy' ); } /** * Retrieve the widget icon. * * @since 1.0.0 * * @access public * * @return string Widget icon. */ public function get_icon() { return 'eicon-archive-title'; } /** * Retrieve the list of categories the widget belongs to. * * Used to determine where to display the widget in the editor. * * Note that currently Elementor supports only one category. * When multiple categories passed, Elementor uses the first one. * * @since 1.0.0 * * @access public * * @return array Widget categories. */ public function get_categories() { return [ 'hf' ]; } /** * Register the widget controls. * * Adds different input fields to allow the user to change and customize the widget settings. * * @since 1.0.0 * * @access protected */ protected function register_controls() { $this->start_controls_section( 'section_content', [ 'label' => esc_html__( 'Content', 'chursy' ), ] ); $this->add_control( 'header_boxed_content', [ 'label' => esc_html__( 'Display Boxed Content', 'chursy' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'no' ] ); $this->add_control( 'header_bg_source', [ 'label' => esc_html__( 'Display Background by Feature Image in Post/Page', 'chursy' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'no' ] ); // Background Color $this->add_control( 'cover_color', [ 'label' => esc_html__( 'Background Cover Color', 'chursy' ), 'type' => Controls_Manager::COLOR, 'description' => esc_html__( 'You can add background image in Advanced Tab', 'chursy' ), 'selectors' => [ '{{WRAPPER}} .cover_color' => 'background-color: {{VALUE}};', ], 'separator' => 'after' ] ); // Title $this->add_control( 'show_title', [ 'label' => esc_html__( 'Show Title', 'chursy' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'title_color', [ 'label' => esc_html__( 'Title Color', 'chursy' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .header_banner_el .header_title' => 'color: {{VALUE}};', ] ] ); $this->add_responsive_control( 'title_padding', [ 'label' => esc_html__( 'Title Padding', 'chursy' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .header_banner_el .header_title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'title_tag', [ 'label' => esc_html__( 'Choose Title Format', 'chursy' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'h1' => esc_html__('H1', 'chursy'), 'h2' => esc_html__('H2', 'chursy'), 'h3' => esc_html__('H3', 'chursy'), 'h4' => esc_html__('H4', 'chursy'), 'h5' => esc_html__('H5', 'chursy'), 'h6' => esc_html__('H6', 'chursy'), 'div' => esc_html__('DIV', 'chursy'), ], 'default' => 'h1' ] ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'name' => 'header_title', 'label' => esc_html__( 'Title Typo', 'chursy' ), 'selector' => '{{WRAPPER}} .header_banner_el .header_title' ] ); // excerpt $this->add_control( 'show_excerpt', [ 'label' => esc_html__( 'Show Excerpt', 'chursy' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before' ] ); $this->add_control( 'excerpt_color', [ 'label' => esc_html__( 'Excerpt Color', 'chursy' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .header_banner_el .header_excerpt p' => 'color: {{VALUE}};', ] ] ); $this->add_control( 'excerpt_color_hover', [ 'label' => esc_html__( 'Excerpt Color hover', 'chursy' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .header_banner_el .header_excerpt p:hover' => 'color: {{VALUE}};', ] ] ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'name' => 'header_excerpt_typo', 'label' => esc_html__( 'Excerpt Typography', 'chursy' ), 'selector' => '{{WRAPPER}} .header_banner_el .header_excerpt p' ] ); $this->add_responsive_control( 'excerpt_padding', [ 'label' => esc_html__( 'Excerpt Padding', 'chursy' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .header_banner_el .header_excerpt' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'excerpt_max_width', [ 'label' => esc_html__( 'Excerpt Max Width', 'chursy' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px', '%' ], 'range' => [ 'px' => [ 'min' => 250, 'max' => 1290, 'step' => 1, ], '%' => [ 'min' => 20, 'max' => 100, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', ], 'selectors' => [ '{{WRAPPER}} .header_banner_el .header_excerpt' => 'max-width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'align', [ 'label' => esc_html__( 'Alignment', 'chursy' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => esc_html__( 'Left', 'chursy' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => esc_html__( 'Center', 'chursy' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => esc_html__( 'Right', 'chursy' ), 'icon' => 'eicon-text-align-right', ], ], 'selectors' => [ '{{WRAPPER}} .wrap_header_banner_2 .header_title' => 'text-align: {{VALUE}};' ], 'separator' => 'before' ] ); $this->add_control( 'class', [ 'label' => esc_html__( 'Class', 'chursy' ), 'type' => Controls_Manager::TEXT, ] ); $this->end_controls_section(); } /** * Render the widget output on the frontend. * * Written in PHP and used to generate the final HTML. * * @since 1.0.0 * * @access protected */ protected function render() { $settings = $this->get_settings(); $current_id = chursy_get_current_id(); $class_bg = $attr_style = ''; if( $settings['header_bg_source'] == 'yes' ){ $header_bg_source = get_the_post_thumbnail_url( $current_id, 'full' ); $class_bg = 'bg_feature_img'; $attr_style = 'style="background: url( '.$header_bg_source.' )" '; } $intro_heading = get_post_meta($current_id, "ova_met_intro_heading", true); $excerpt = get_the_excerpt($current_id); $align = isset( $settings['align'] ) ? $settings['align'] : ''; ?> <!-- Display when you choose background per Post --> <div class="wrap_header_banner_2 <?php echo esc_attr($class_bg).' '.$align; ?> " <?php printf( '%s', $attr_style ); ?> > <?php if( $settings['header_boxed_content'] == 'yes' ){ ?><div class="row_site"><div class="container_site"><?php } ?> <div class="cover_color"></div> <div class="header_banner_el <?php echo esc_attr( $settings['class'] ); ?>"> <?php if( $settings['show_title'] == 'yes' && empty($intro_heading) ){ ?> <?php $title_tag = $settings['title_tag']; ?> <<?php echo esc_html( $title_tag ); ?> class=" header_title"> <?php echo get_template_part( 'template-parts/parts/breadcrumbs_title' ); ?> </<?php echo esc_html( $title_tag ); ?>> <?php } ?> <?php if( $settings['show_title'] == 'yes' && !empty($intro_heading) ){ ?> <?php $title_tag = $settings['title_tag']; ?> <<?php echo esc_html( $title_tag ); ?> class=" header_title"> <?php echo esc_html($intro_heading); ?> </<?php echo esc_html( $title_tag ); ?>> <?php } ?> <?php if( $settings['show_excerpt'] == 'yes' && !empty($excerpt) ) { ?> <div class="header_excerpt"> <p><?php echo esc_html($excerpt); ?></p> </div> <?php } ?> </div> <?php if( $settings['header_boxed_content'] == 'yes' ){ ?> </div></div> <?php } ?> </div> <?php } } $widgets_manager->register( new Chursy_Elementor_Header_Banner_2() );