<?php namespace Elementor; use Elementor\Core\Utils\Hints; use Elementor\Modules\DynamicTags\Module as TagsModule; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Elementor gallery control. * * A base control for creating gallery chooser control. Based on the WordPress * media library galleries. Used to select images from the WordPress media library. * * @since 1.0.0 */ class Control_Gallery extends Base_Data_Control { /** * Get gallery control type. * * Retrieve the control type, in this case `gallery`. * * @since 1.0.0 * @access public * * @return string Control type. */ public function get_type() { return 'gallery'; } /** * Import gallery images. * * Used to import gallery control files from external sites while importing * Elementor template JSON file, and replacing the old data. * * @since 1.0.0 * @access public * * @param array $settings Control settings * * @return array Control settings. */ public function on_import( $settings ) { foreach ( $settings as &$attachment ) { if ( empty( $attachment['url'] ) ) { continue; } $attachment = Plugin::$instance->templates_manager->get_import_images_instance()->import( $attachment ); } // Filter out attachments that don't exist $settings = array_filter( $settings ); return $settings; } /** * Render gallery control output in the editor. * * Used to generate the control HTML in the editor using Underscore JS * template. The variables for the class are available using `data` JS * object. * * @since 1.0.0 * @access public */ public function content_template() { ?> <div class="elementor-control-field"> <div class="elementor-control-title">{{{ data.label }}}</div> <div class="elementor-control-input-wrapper"> <# if ( data.description ) { #> <div class="elementor-control-field-description">{{{ data.description }}}</div> <# } #> <div class="elementor-control-media__content elementor-control-tag-area"> <div class="elementor-control-gallery-status elementor-control-dynamic-switcher-wrapper"> <span class="elementor-control-gallery-status-title"></span> <button class="elementor-control-gallery-clear elementor-control-unit-1 tooltip-target" data-tooltip="<?php echo esc_attr__( 'Clear gallery', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Clear gallery', 'elementor' ); ?>"> <i class="eicon-trash-o" aria-hidden="true"></i> </button> </div> <div class="elementor-control-gallery-content"> <div class="elementor-control-gallery-thumbnails" tabindex="0"></div> <div class="elementor-control-gallery-edit"> <span><i class="eicon-pencil" aria-hidden="true"></i></span> <span class="elementor-screen-only"><?php echo esc_html__( 'Edit gallery', 'elementor' ); ?></span> </div> <button class="elementor-button elementor-control-gallery-add tooltip-target" data-tooltip="<?php echo esc_attr__( 'Add Images', 'elementor' ); ?>" aria-label="<?php echo esc_attr__( 'Add Images', 'elementor' ); ?>"> <i class="eicon-plus-circle" aria-hidden="true"></i> </button> </div> </div> <?php /* ?> <div class="elementor-control-media__warnings" role="alert" style="display: none;"> <?php Hints::get_notice_template( [ 'type' => 'warning', 'content' => esc_html__( 'This image doesn’t contain ALT text - which is necessary for accessibility and SEO.', 'elementor' ), 'icon' => true, ] ); ?> </div> <?php */ ?> <?php if ( Hints::should_display_hint( 'image-optimization' ) ) : ?> <div class="elementor-control-media__promotions" role="alert" style="display: none;"> <?php Hints::get_notice_template( [ 'display' => ! Hints::is_dismissed( 'image-optimization' ), 'type' => 'info', 'content' => __( 'Optimize your images to enhance site performance by using Image Optimizer.', 'elementor' ), 'icon' => true, 'dismissible' => 'image_optimizer_hint', 'button_text' => Hints::is_plugin_installed( 'image-optimization' ) ? __( 'Activate Plugin', 'elementor' ) : __( 'Install Plugin', 'elementor' ), 'button_event' => 'image_optimizer_hint', 'button_data' => [ 'action_url' => Hints::get_plugin_action_url( 'image-optimization' ), ], ] ); ?> </div> <?php endif; ?> </div> </div> <?php } /** * Get gallery control default settings. * * Retrieve the default settings of the gallery control. Used to return the * default settings while initializing the gallery control. * * @since 1.0.0 * @access protected * * @return array Control default settings. */ protected function get_default_settings() { return [ 'label_block' => true, 'dynamic' => [ 'categories' => [ TagsModule::GALLERY_CATEGORY ], 'returnType' => 'object', ], ]; } /** * Get gallery control default values. * * Retrieve the default value of the gallery control. Used to return the default * values while initializing the gallery control. * * @since 1.0.0 * @access public * * @return array Control default value. */ public function get_default_value() { return []; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
groups | Folder | 0755 |
|
|
alert.php | File | 1.79 KB | 0644 |
|
animation.php | File | 4.76 KB | 0644 |
|
base-data.php | File | 3.66 KB | 0644 |
|
base-icon-font.php | File | 628 B | 0644 |
|
base-multiple.php | File | 2.03 KB | 0644 |
|
base-ui.php | File | 516 B | 0644 |
|
base-units.php | File | 3.5 KB | 0644 |
|
base.php | File | 3.08 KB | 0644 |
|
box-shadow.php | File | 3.39 KB | 0644 |
|
button.php | File | 1.68 KB | 0644 |
|
choose.php | File | 2.21 KB | 0644 |
|
code.php | File | 1.99 KB | 0644 |
|
color.php | File | 2.04 KB | 0644 |
|
date-time.php | File | 2.04 KB | 0644 |
|
deprecated-notice.php | File | 2.27 KB | 0644 |
|
dimensions.php | File | 4.94 KB | 0644 |
|
divider.php | File | 829 B | 0644 |
|
exit-animation.php | File | 2.54 KB | 0644 |
|
font.php | File | 2.22 KB | 0644 |
|
gallery.php | File | 5.15 KB | 0644 |
|
gaps.php | File | 1.62 KB | 0644 |
|
heading.php | File | 1.32 KB | 0644 |
|
hidden.php | File | 948 B | 0644 |
|
hover-animation.php | File | 4.32 KB | 0644 |
|
icon.php | File | 31.33 KB | 0644 |
|
icons.php | File | 7.67 KB | 0644 |
|
image-dimensions.php | File | 3.71 KB | 0644 |
|
media.php | File | 12.82 KB | 0644 |
|
notice.php | File | 4.07 KB | 0644 |
|
number.php | File | 2.09 KB | 0644 |
|
popover-toggle.php | File | 2.66 KB | 0644 |
|
raw-html.php | File | 1.48 KB | 0644 |
|
repeater.php | File | 4.94 KB | 0644 |
|
section.php | File | 1.32 KB | 0644 |
|
select.php | File | 2.56 KB | 0644 |
|
select2.php | File | 2.72 KB | 0644 |
|
slider.php | File | 3.49 KB | 0644 |
|
structure.php | File | 2.46 KB | 0644 |
|
switcher.php | File | 2.08 KB | 0644 |
|
tab.php | File | 1.01 KB | 0644 |
|
tabs.php | File | 944 B | 0644 |
|
text-shadow.php | File | 3.13 KB | 0644 |
|
text.php | File | 2.1 KB | 0644 |
|
textarea.php | File | 2.01 KB | 0644 |
|
url.php | File | 5.09 KB | 0644 |
|
wp-widget.php | File | 1.35 KB | 0644 |
|
wysiwyg.php | File | 1.73 KB | 0644 |
|