golden hour
/home/godaofbq/dev.hyperredbed.com/wp-content/plugins/elementor/includes/controls
⬆️ Go Up
Upload
File/Folder
Size
Actions
alert.php
1.79 KB
Del
OK
animation.php
4.76 KB
Del
OK
base-data.php
3.66 KB
Del
OK
base-icon-font.php
628 B
Del
OK
base-multiple.php
2.03 KB
Del
OK
base-ui.php
516 B
Del
OK
base-units.php
3.5 KB
Del
OK
base.php
3.08 KB
Del
OK
box-shadow.php
3.39 KB
Del
OK
button.php
1.68 KB
Del
OK
choose.php
2.21 KB
Del
OK
code.php
1.99 KB
Del
OK
color.php
2.04 KB
Del
OK
date-time.php
2.04 KB
Del
OK
deprecated-notice.php
2.27 KB
Del
OK
dimensions.php
4.94 KB
Del
OK
divider.php
829 B
Del
OK
exit-animation.php
2.54 KB
Del
OK
font.php
2.22 KB
Del
OK
gallery.php
5.15 KB
Del
OK
gaps.php
1.62 KB
Del
OK
groups
-
Del
OK
heading.php
1.32 KB
Del
OK
hidden.php
948 B
Del
OK
hover-animation.php
4.32 KB
Del
OK
icon.php
31.33 KB
Del
OK
icons.php
7.67 KB
Del
OK
image-dimensions.php
3.71 KB
Del
OK
media.php
12.82 KB
Del
OK
notice.php
4.07 KB
Del
OK
number.php
2.09 KB
Del
OK
popover-toggle.php
2.66 KB
Del
OK
raw-html.php
1.48 KB
Del
OK
repeater.php
4.94 KB
Del
OK
section.php
1.32 KB
Del
OK
select.php
2.56 KB
Del
OK
select2.php
2.72 KB
Del
OK
slider.php
3.49 KB
Del
OK
structure.php
2.46 KB
Del
OK
switcher.php
2.08 KB
Del
OK
tab.php
1.01 KB
Del
OK
tabs.php
944 B
Del
OK
text-shadow.php
3.13 KB
Del
OK
text.php
2.1 KB
Del
OK
textarea.php
2.01 KB
Del
OK
url.php
5.09 KB
Del
OK
wp-widget.php
1.35 KB
Del
OK
wysiwyg.php
1.73 KB
Del
OK
Edit: repeater.php
<?php namespace Elementor; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Elementor repeater control. * * A base control for creating repeater control. Repeater control allows you to * build repeatable blocks of fields. You can create, for example, a set of * fields that will contain a title and a WYSIWYG text - the user will then be * able to add "rows", and each row will contain a title and a text. The data * can be wrapper in custom HTML tags, designed using CSS, and interact using JS * or external libraries. * * @since 1.0.0 */ class Control_Repeater extends Base_Data_Control implements Has_Validation { /** * Get repeater control type. * * Retrieve the control type, in this case `repeater`. * * @since 1.0.0 * @access public * * @return string Control type. */ public function get_type() { return 'repeater'; } /** * Get repeater control default value. * * Retrieve the default value of the data control. Used to return the default * values while initializing the repeater control. * * @since 2.0.0 * @access public * * @return array Control default value. */ public function get_default_value() { return []; } /** * Get repeater control default settings. * * Retrieve the default settings of the repeater control. Used to return the * default settings while initializing the repeater control. * * @since 1.0.0 * @access protected * * @return array Control default settings. */ protected function get_default_settings() { return [ 'fields' => [], 'title_field' => '', 'prevent_empty' => true, 'is_repeater' => true, 'max_items' => 0, 'min_items' => 0, 'item_actions' => [ 'add' => true, 'duplicate' => true, 'remove' => true, 'sort' => true, ], ]; } /** * Get repeater control value. * * Retrieve the value of the repeater control from a specific Controls_Stack. * * @since 1.0.0 * @access public * * @param array $control Control * @param array $settings Controls_Stack settings * * @return mixed Control values. */ public function get_value( $control, $settings ) { $value = parent::get_value( $control, $settings ); if ( ! empty( $value ) ) { foreach ( $value as &$item ) { foreach ( $control['fields'] as $field ) { $control_obj = Plugin::$instance->controls_manager->get_control( $field['type'] ); // Prior to 1.5.0 the fields may contains non-data controls. if ( ! $control_obj instanceof Base_Data_Control ) { continue; } $item[ $field['name'] ] = $control_obj->get_value( $field, $item ); } } } return $value; } /** * Import repeater. * * Used as a wrapper method for inner controls while importing Elementor * template JSON file, and replacing the old data. * * @since 1.8.0 * @access public * * @param array $settings Control settings. * @param array $control_data Optional. Control data. Default is an empty array. * * @return array Control settings. */ public function on_import( $settings, $control_data = [] ) { if ( empty( $settings ) || empty( $control_data['fields'] ) ) { return $settings; } $method = 'on_import'; foreach ( $settings as &$item ) { foreach ( $control_data['fields'] as $field ) { if ( empty( $field['name'] ) || empty( $item[ $field['name'] ] ) ) { continue; } $control_obj = Plugin::$instance->controls_manager->get_control( $field['type'] ); if ( ! $control_obj ) { continue; } if ( method_exists( $control_obj, $method ) ) { $item[ $field['name'] ] = $control_obj->{$method}( $item[ $field['name'] ], $field ); } } } return $settings; } /** * Render repeater 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() { ?> <label> <span class="elementor-control-title">{{{ data.label }}}</span> </label> <div class="elementor-repeater-fields-wrapper"></div> <# if ( itemActions.add ) { #> <div class="elementor-button-wrapper"> <button class="elementor-button elementor-repeater-add" type="button"> <i class="eicon-plus" aria-hidden="true"></i> <# if ( data.button_text ) { #> {{{ data.button_text }}} <# } else { #> <?php echo esc_html__( 'Add Item', 'elementor' ); ?> <# } #> </button> </div> <# } #> <?php } public function validate( array $control_data ): bool { if ( isset( $control_data['min_items'] ) ) { if ( ! isset( $control_data['default'] ) || count( $control_data['default'] ) < $control_data['min_items'] ) { throw new \Exception( __( 'In a Repeater control, if you specify a minimum number of items, you must also specify a default value that contains at least that number of items.', 'elementor' ) ); } } return true; } }
Save