widget_name; } /** * Widget Title. */ public function get_title() { return Widgets_Controller::instance()->get_core_widget_setting( $this->widget_name, 'title' ); } /** * Widget Icon. */ public function get_icon() { return Widgets_Controller::instance()->get_core_widget_setting( $this->widget_name, 'icon' ); } /** * Style dependencies. */ public function get_style_depends() { return Widgets_Controller::instance()->get_core_widget_setting( $this->widget_name, 'styleDependency' ); } /** * Javascripts dependencies. */ public function get_script_depends() { return Widgets_Controller::instance()->get_core_widget_setting( $this->widget_name, 'jsDependency' ); } /** * Widget categories. */ public function get_categories() { return array( 'advgallery' ); } /** * Adds controls from */ private function adv_gal_add_controls( $controls ) { foreach ( $controls as $id => $args ) { $args = (object) $args; if ( ! isset( $args->type ) ) { continue; } if ( 'control_section' === $args->type ) { if ( isset( $args->subcontrols ) ) { $tab = 'TAB_CONTENT' === $args->tab ? Controls_Manager::TAB_CONTENT : Controls_Manager::TAB_STYLE; $this->start_controls_section( $id, array( 'label' => $args->label, 'tab' => $tab ) ); $this->adv_gal_add_controls( $args->subcontrols ); $this->end_controls_section(); } continue; } if ( 'sub_control_section' === $args->type ) { if ( isset( $args->subsubcontrols ) ) { if ( 'start' === $args->mark ){ $this->start_controls_tabs( $id . '_tab_start' ); } $this->start_controls_tab( $id, array( 'label' => $args->label, ) ); $this->adv_gal_add_controls( $args->subsubcontrols ); $this->end_controls_tab(); if ( 'end' === $args->mark ){ $this->end_controls_tabs(); } } continue; } if ( defined( "\Elementor\Controls_Manager::{$args->type}" ) ) { $args->type = \constant( "\Elementor\Controls_Manager::{$args->type}" ); } if ( 'group_control_image_size' === $args->type ) { $args->name = $id; $this->add_group_control( Group_Control_Image_Size::get_type(), (array) $args ); } elseif ( 'group_control_typography' === $args->type ) { $args->name = $id; $this->add_group_control( Group_Control_Typography::get_type(), (array) $args ); } elseif ( 'group_control_box_shadow' === $args->type ) { $args->name = $id; $this->add_group_control( Group_Control_Box_Shadow::get_type(), (array) $args ); } elseif ( 'group_control_border' === $args->type ) { $args->name = $id; $this->add_group_control( Group_Control_Border::get_type(), (array) $args ); } elseif( Controls_Manager::DIMENSIONS === $args->type || Controls_Manager::NUMBER === $args->type || Controls_Manager::SLIDER === $args->type ) { $this->add_responsive_control( $id, (array) $args ); } else { $this->add_control( $id, (array) $args ); } } } /** * Widget Settigs. */ protected function register_controls() { // phpcs:ignore $settings = Widgets_Controller::instance()->get_core_widget_setting( $this->widget_name, 'controls' ); $controls = isset( $settings['controls'] ) && is_array( $settings['controls'] ) ? $settings['controls'] : array(); if ('advgallery-filterable-gallery' === $this->widget_name) { unset($settings['filterable-gallery_image_settings']['subcontrols']['advImage']); unset($settings['filterable-gallery_image_settings']['subcontrols']['advImgMargin']); unset($settings['filterable-gallery_image_settings']['subcontrols']['advRowHeight']); } if ('advgallery-gallery-grid' === $this->widget_name ) { unset($settings['gallery-grid_image_settings']['subcontrols']['advFilterGal']); unset($settings['gallery-grid_image_settings']['subcontrols']['advImgMargin']); unset($settings['gallery-grid_image_settings']['subcontrols']['advRowHeight']); } if ( 'advgallery-masonry-gallery' === $this->widget_name ) { unset($settings['masonry-gallery_image_settings']['subcontrols']['advFilterGal']); unset($settings['masonry-gallery_image_settings']['subcontrols']['advImgMargin']); unset($settings['masonry-gallery_image_settings']['subcontrols']['advRowHeight']); } if ( 'advgallery-justified-gallery' === $this->widget_name ) { unset($settings['justified-gallery_image_settings']['subcontrols']['advFilterGal']); unset($settings['justified-gallery_image_settings']['subcontrols']['advImgSize']); unset($settings['justified-gallery_image_settings']['subcontrols']['advImgSpacing']); unset($settings['justified-gallery_image_settings']['subcontrols']['advImgCol']); unset($settings['justified-gallery_image_settings']['subcontrols']['advImageFit']); unset($settings['justified-gallery_image_settings']['subcontrols']['advCaptionShadow']); } $this->adv_gal_add_controls( $settings ); } /** * Caption Settigs. */ protected function get_caption_data( $setting, $img ) { $image_alt_text = get_post_meta($img, '_wp_attachment_image_alt', true); $image_caption = get_post_field('post_excerpt', $img); $image_title = get_post_field('post_title', $img); $image_content = get_post_field('post_content', $img); switch ( $setting ) { case 'title': $caption_text = $image_title; break; case 'description': $caption_text = $image_content; break; case 'alt': $caption_text = $image_alt_text; break; case 'caption': $caption_text = $image_caption; break; default: $caption_text = $image_title; break; } return $caption_text; } /** * Render Caption Information. */ protected function render_caption_data( $attributes, $adv_title ) { if ( 'yes' === $attributes['advCaption'] && !empty($adv_title) ){ ?>
' . esc_html( $adv_title ) . '