__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?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;
	}
}

Filemanager

Name Type Size Permission Actions
groups Folder 0750
alert.php File 1.79 KB 0640
animation.php File 4.76 KB 0640
base-data.php File 3.66 KB 0640
base-icon-font.php File 580 B 0640
base-multiple.php File 2.03 KB 0640
base-ui.php File 516 B 0640
base-units.php File 3.5 KB 0640
base.php File 3.08 KB 0640
box-shadow.php File 3.39 KB 0640
button.php File 1.68 KB 0640
choose.php File 2.19 KB 0640
code.php File 1.99 KB 0640
color.php File 2.04 KB 0640
date-time.php File 2.04 KB 0640
deprecated-notice.php File 2.27 KB 0640
dimensions.php File 5 KB 0640
divider.php File 829 B 0640
exit-animation.php File 2.54 KB 0640
font.php File 2.22 KB 0640
gallery.php File 6.39 KB 0640
gaps.php File 1.62 KB 0640
heading.php File 1.32 KB 0640
hidden.php File 948 B 0640
hover-animation.php File 4.32 KB 0640
icon.php File 31.33 KB 0640
icons.php File 7.57 KB 0640
image-dimensions.php File 3.71 KB 0640
media.php File 14.12 KB 0640
notice.php File 4.07 KB 0640
number.php File 2.76 KB 0640
popover-toggle.php File 2.66 KB 0640
raw-html.php File 1.48 KB 0640
repeater.php File 4.96 KB 0640
section.php File 1.33 KB 0640
select.php File 2.56 KB 0640
select2.php File 2.72 KB 0640
slider.php File 3.49 KB 0640
structure.php File 2.46 KB 0640
switcher.php File 2.08 KB 0640
tab.php File 1.01 KB 0640
tabs.php File 944 B 0640
text-shadow.php File 3.13 KB 0640
text.php File 2.08 KB 0640
textarea.php File 2.01 KB 0640
url.php File 5.13 KB 0640
visual-choice.php File 2.15 KB 0640
wp-widget.php File 1.35 KB 0640
wysiwyg.php File 1.73 KB 0640
Filemanager