Current Path: > home > transcarter > > > public_html > > wp-content > > plugins > > elementor > > includes > controls
Operation : Linux host59.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 Software : Apache Server IP : 198.54.126.42 | Your IP: 216.73.216.135 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
groups | Directory | - | - | |
alert.php | File | 1838 bytes | July 17 2025 21:06:23. | |
animation.php | File | 4870 bytes | July 17 2025 21:06:23. | |
base-data.php | File | 3750 bytes | July 17 2025 21:06:23. | |
base-icon-font.php | File | 580 bytes | July 17 2025 21:06:23. | |
base-multiple.php | File | 2082 bytes | July 17 2025 21:06:23. | |
base-ui.php | File | 516 bytes | July 17 2025 21:06:23. | |
base-units.php | File | 3579 bytes | July 17 2025 21:06:23. | |
base.php | File | 3154 bytes | July 17 2025 21:06:23. | |
box-shadow.php | File | 3474 bytes | July 17 2025 21:06:23. | |
button.php | File | 1718 bytes | July 17 2025 21:06:23. | |
choose.php | File | 2239 bytes | July 17 2025 21:06:23. | |
code.php | File | 2038 bytes | July 17 2025 21:06:23. | |
color.php | File | 2084 bytes | July 17 2025 21:06:23. | |
date-time.php | File | 2085 bytes | July 17 2025 21:06:23. | |
deprecated-notice.php | File | 2328 bytes | July 17 2025 21:06:23. | |
dimensions.php | File | 5120 bytes | July 17 2025 21:06:23. | |
divider.php | File | 829 bytes | July 17 2025 21:06:23. | |
exit-animation.php | File | 2603 bytes | July 17 2025 21:06:23. | |
font.php | File | 2269 bytes | July 17 2025 21:06:23. | |
gallery.php | File | 5825 bytes | July 17 2025 21:06:23. | |
gaps.php | File | 1657 bytes | July 17 2025 21:06:23. | |
heading.php | File | 1348 bytes | July 17 2025 21:06:23. | |
hidden.php | File | 948 bytes | July 17 2025 21:06:23. | |
hover-animation.php | File | 4425 bytes | July 17 2025 21:06:23. | |
icon.php | File | 32077 bytes | July 17 2025 21:06:23. | |
icons.php | File | 7748 bytes | July 17 2025 21:06:23. | |
image-dimensions.php | File | 3797 bytes | July 17 2025 21:06:23. | |
media.php | File | 13829 bytes | July 17 2025 21:06:23. | |
notice.php | File | 4169 bytes | July 17 2025 21:06:23. | |
number.php | File | 2114 bytes | July 17 2025 21:06:23. | |
popover-toggle.php | File | 2728 bytes | July 17 2025 21:06:23. | |
raw-html.php | File | 1519 bytes | July 17 2025 21:06:23. | |
repeater.php | File | 5083 bytes | July 17 2025 21:06:23. | |
section.php | File | 1350 bytes | July 17 2025 21:06:23. | |
select.php | File | 2625 bytes | July 17 2025 21:06:23. | |
select2.php | File | 2781 bytes | July 17 2025 21:06:23. | |
slider.php | File | 3572 bytes | July 17 2025 21:06:23. | |
structure.php | File | 2521 bytes | July 17 2025 21:06:23. | |
switcher.php | File | 2126 bytes | July 17 2025 21:06:23. | |
tab.php | File | 1030 bytes | July 17 2025 21:06:23. | |
tabs.php | File | 944 bytes | July 17 2025 21:06:23. | |
text-shadow.php | File | 3208 bytes | July 17 2025 21:06:23. | |
text.php | File | 2130 bytes | July 17 2025 21:06:23. | |
textarea.php | File | 2054 bytes | July 17 2025 21:06:23. | |
url.php | File | 5249 bytes | July 17 2025 21:06:23. | |
visual-choice.php | File | 2204 bytes | July 17 2025 21:06:23. | |
wp-widget.php | File | 1378 bytes | July 17 2025 21:06:23. | |
wysiwyg.php | File | 1776 bytes | July 17 2025 21:06:23. |
<?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" role="list"></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( esc_html__( '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; } }
SILENT KILLER Tool