X7ROOT File Manager
Current Path:
/home/notabjze/pyirates.net/wp-content/plugins/elementor/includes/controls
home
/
notabjze
/
pyirates.net
/
wp-content
/
plugins
/
elementor
/
includes
/
controls
/
ðŸ“
..
📄
alert.php
(1.79 KB)
📄
animation.php
(4.76 KB)
📄
base-data.php
(3.66 KB)
📄
base-icon-font.php
(628 B)
📄
base-multiple.php
(2.03 KB)
📄
base-ui.php
(516 B)
📄
base-units.php
(3.5 KB)
📄
base.php
(3.08 KB)
📄
box-shadow.php
(3.39 KB)
📄
button.php
(1.68 KB)
📄
choose.php
(2.21 KB)
📄
code.php
(1.99 KB)
📄
color.php
(2.04 KB)
📄
date-time.php
(2.04 KB)
📄
deprecated-notice.php
(2.27 KB)
📄
dimensions.php
(4.94 KB)
📄
divider.php
(829 B)
📄
exit-animation.php
(2.54 KB)
📄
font.php
(2.22 KB)
📄
gallery.php
(5.22 KB)
📄
gaps.php
(1.62 KB)
ðŸ“
groups
📄
heading.php
(1.32 KB)
📄
hidden.php
(948 B)
📄
hover-animation.php
(4.32 KB)
📄
icon.php
(31.33 KB)
📄
icons.php
(7.67 KB)
📄
image-dimensions.php
(3.71 KB)
📄
media.php
(12.78 KB)
📄
notice.php
(4.1 KB)
📄
number.php
(2.09 KB)
📄
popover-toggle.php
(2.66 KB)
📄
raw-html.php
(1.48 KB)
📄
repeater.php
(4.94 KB)
📄
section.php
(1.32 KB)
📄
select.php
(2.56 KB)
📄
select2.php
(2.72 KB)
📄
slider.php
(3.49 KB)
📄
structure.php
(2.46 KB)
📄
switcher.php
(2.08 KB)
📄
tab.php
(1.01 KB)
📄
tabs.php
(944 B)
📄
text-shadow.php
(3.13 KB)
📄
text.php
(2.1 KB)
📄
textarea.php
(2.01 KB)
📄
url.php
(5.12 KB)
📄
wp-widget.php
(1.35 KB)
📄
wysiwyg.php
(1.73 KB)
Editing: 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; } }
Upload File
Create Folder