__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
namespace CarouselSlider\Supports\FormFields;
/**
* Breakpoint class
*/
class Breakpoint extends BaseField {
/**
* Render field
*
* @inheritDoc
*/
public function render(): string {
$value = is_array( $this->get_value() ) ? $this->get_value() : $this->get_defaults();
$html = '<div class="cs-field--rb-items" data-name="' . $this->get_name() . '">';
foreach ( $value as $index => $item ) {
$key_attrs = [
'type' => 'text',
'class' => 'small-text',
'name' => sprintf( '%s[%s][key]', $this->get_name(), $index ),
'value' => $item['key'],
];
$breakpoint_attrs = [
'type' => 'text',
'class' => 'small-text',
'name' => sprintf( '%s[%s][breakpoint]', $this->get_name(), $index ),
'value' => $item['breakpoint'],
];
$items_attrs = [
'type' => 'text',
'class' => 'small-text',
'name' => sprintf( '%s[%s][items]', $this->get_name(), $index ),
'value' => $item['items'],
];
$html .= '<div class="cs-field--rb-item cs-flex cs-mb-4 cs-items-center cs-space-x-1 cs-bg-gray-200 cs-p-2">';
$html .= '<label>' . esc_html__( 'Key: ', 'carousel-slider' ) . '</label>';
$html .= '<input ' . $this->array_to_attributes( $key_attrs ) . '>';
$html .= '<label>' . esc_html__( 'Breakpoint: ', 'carousel-slider' ) . '</label>';
$html .= '<input ' . $this->array_to_attributes( $breakpoint_attrs ) . '>';
$html .= '<label>' . esc_html__( 'Items: ', 'carousel-slider' ) . '</label>';
$html .= '<input ' . $this->array_to_attributes( $items_attrs ) . '>';
$html .= '<div class="cs-field--rb-item-cross cs-text-red-600 cs-inline-flex cs-items-center cs-justify-center cs-w-8 cs-h-8">';
$html .= '<span class="cs-field--rb-item-cross-icon dashicons dashicons-remove"></span>';
$html .= '</div>';
$html .= '</div>';
}
$html .= '</div>';
$html .= '<div class="cs-mb-4"><button class="button btn--add-new-breakpoint" disabled>';
$html .= esc_html__( 'Add New Breakpoint', 'carousel-slider' );
$html .= '</button></div>';
return $html;
}
/**
* Get default values
*
* @return array[]
*/
public function get_defaults(): array {
return [
[
'key' => 'xs',
'breakpoint' => 300,
'items' => 1,
],
[
'key' => 'sm',
'breakpoint' => 640,
'items' => 2,
],
[
'key' => 'md',
'breakpoint' => 768,
'items' => 3,
],
[
'key' => 'lg',
'breakpoint' => 1024,
'items' => 4,
],
[
'key' => 'xl',
'breakpoint' => 1280,
'items' => 5,
],
[
'key' => '2xl',
'breakpoint' => 1536,
'items' => 6,
],
];
}
/**
* Sanitized breakpoint value
*
* @param mixed $value The value to be sanitized.
*
* @return array
*/
public static function sanitize( $value ): array {
$sanitized_value = [];
if ( ! is_array( $value ) ) {
return $sanitized_value;
}
foreach ( $value as $item ) {
if ( ! isset( $item['key'], $item['breakpoint'], $item['items'] ) ) {
continue;
}
$sanitized_value[] = [
'key' => sanitize_text_field( $item['key'] ),
'breakpoint' => intval( $item['breakpoint'] ),
'items' => floatval( $item['items'] ),
];
}
usort(
$sanitized_value,
function ( array $array1, array $array2 ) {
return $array1['breakpoint'] - $array2['breakpoint'];
}
);
return $sanitized_value;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| BaseField.php | File | 5.86 KB | 0775 |
|
| Breakpoint.php | File | 3.36 KB | 0775 |
|
| ButtonGroup.php | File | 1.86 KB | 0775 |
|
| Checkbox.php | File | 882 B | 0775 |
|
| CheckboxSwitch.php | File | 887 B | 0775 |
|
| Color.php | File | 636 B | 0775 |
|
| DataSharing.php | File | 1.53 KB | 0775 |
|
| Html.php | File | 310 B | 0775 |
|
| ImageUploader.php | File | 1.06 KB | 0775 |
|
| ImageUrl.php | File | 762 B | 0775 |
|
| ImagesGallery.php | File | 1.49 KB | 0775 |
|
| MultiCheckbox.php | File | 1.3 KB | 0775 |
|
| Radio.php | File | 1.41 KB | 0775 |
|
| ResponsiveControl.php | File | 5.26 KB | 0775 |
|
| Select.php | File | 1.31 KB | 0775 |
|
| SelectImageSize.php | File | 347 B | 0775 |
|
| SelectPosts.php | File | 633 B | 0775 |
|
| SelectTerms.php | File | 633 B | 0775 |
|
| Spacing.php | File | 1.18 KB | 0775 |
|
| Text.php | File | 257 B | 0775 |
|
| Textarea.php | File | 524 B | 0775 |
|