| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- namespace Elementor;
- 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 elementor-control-tag-area">
- <div class="elementor-control-gallery-status">
- <span class="elementor-control-gallery-status-title"></span>
- <span class="elementor-control-gallery-clear">(<?php echo __( 'Clear', 'elementor' ); ?>)</span>
- </div>
- <div class="elementor-control-gallery-thumbnails"></div>
- <button class="elementor-button elementor-control-gallery-add"><?php echo __( 'Add Images', 'elementor' ); ?></button>
- </div>
- </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,
- 'separator' => 'none',
- '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 [];
- }
- }
|