PluginProbe
Filter Everything — WordPress & WooCommerce Filters / trunk
Filter Everything — WordPress & WooCommerce Filters vtrunk
1.9.6 1.9.5 1.9.4 1.9.3 1.9.2.2 1.9.2.1 trunk 1.2.1 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.4.1 1.4.4 1.4.5 1.4.8 1.4.9 1.5.0 1.5.1 1.6.0 1.6.1 1.6.2 1.6.3 All 51 releases
filter-everything / views / frontend / date.php

date.php in Filter Everything — WordPress & WooCommerce Filters trunk, at views/frontend/date.php

169 lines 11.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The Template for displaying filter date range.
4 *
5 * This template can be overridden by copying it to yourtheme/filters/date.php
6 *
7 * $filter - array, with the Filter parameters
8 * $url_manager - object, of the UrlManager PHP class
9 * $terms - array, with objects of all filter terms except excluded
10 *
11 * @see https://filtereverything.pro/resources/templates-overriding/
12 */
13
14 if ( ! defined('ABSPATH') ) {
15 exit;
16 }
17
18 use \FilterEverything\Filter\PostDateEntity;
19 use \FilterEverything\Filter\PostMetaDateEntity;
20
21 /**
22 * @todo We have to display UI calendar in any case even there are no available terms
23 */
24 $args = [
25 'hide' => $view_args['ask_to_select_parent'],
26 'use_apply_button' => $view_args['use_apply_button'],
27 'hide_empty' => $set['hide_empty']['value'],
28 'hide_empty_filter' => isset($set['hide_empty_filter']['value']) ? $set['hide_empty_filter']['value'] : '',
29 ];
30 $parent_filter_apply_button_data = flrt_parent_filter_apply_button_data($filter, $view_args);
31 $parent_filter_apply_class = flrt_parent_filter_apply_class($filter, $view_args, $terms);
32 ?>
33 <div class="<?php echo esc_attr('wpc-range-filter'); ?> <?php echo flrt_filter_class( $filter, [], $terms, $args ); // Already escaped ?><?php echo $parent_filter_apply_class; ?>" data-fid="<?php echo esc_attr( $filter['ID'] ); ?>" data-filter-e-name="<?php echo esc_attr($filter['e_name']); ?>"<?php echo $parent_filter_apply_button_data; ?>>
34 <?php flrt_filter_header( $filter, $terms ); // Safe, escaped ?>
35 <div class="<?php echo esc_attr( flrt_filter_content_class( $filter ) ); ?>">
36 <div class="wpc-filters-range-inputs">
37 <?php if( ! empty( $terms ) || $view_args['ask_to_select_parent'] || !empty($filter['values']) || ( empty( $terms ) && $view_args['use_apply_button']) ):
38 if( $view_args['ask_to_select_parent'] !== false && !$view_args['use_apply_button'] ) { ?>
39 <div><?php echo esc_html( $view_args['ask_to_select_parent'] ); ?></div>
40 <?php } else {
41 if( $view_args['ask_to_select_parent'] !== false && $view_args['use_apply_button'] ) { ?>
42 <div class="wpc-ask-to-parent-display"><?php echo esc_html( $view_args['ask_to_select_parent'] ); ?></div>
43 <?php }
44 $fromName = flrt_range_input_name( $filter['slug'], 'from', 'date' );
45 $toName = flrt_range_input_name( $filter['slug'], 'to', 'date' );
46
47 $date_format = isset( $filter['date_format'] ) ? $filter['date_format'] : flrt_default_date_format( $filter['date_type'] );
48
49 $absFrom = $absTo = $absFromBeforeFormat = $absToBeforeFormat = '';
50
51 foreach ( $terms as $term ) {
52 foreach( $terms as $term ) {
53 if ( $filter['date_type'] === 'time' ) {
54 if( isset($term->time_from) ) {
55 $absFrom = $term->time_from;
56 }
57 if( isset( $term->time_to ) ) {
58 $absTo = $term->time_to;
59 }
60 } else {
61 if( isset($term->from) ) {
62 $absFrom = flrt_clean_date_time( $term->from, $filter['date_type'] );
63 }
64 if( isset( $term->to ) ) {
65 $absTo = flrt_clean_date_time( $term->to, $filter['date_type'] );
66 }
67 }
68 }
69 }
70
71 $absFromBeforeFormat = $absFrom;
72 $absToBeforeFormat = $absTo;
73
74 $to = $visible_to = isset( $filter['values']['to'] ) ? $filter['values']['to'] : $absTo;
75 $from = $visible_from = isset( $filter['values']['from'] ) ? $filter['values']['from'] : $absFrom;
76
77 $fromBeforeFormat = $from;
78 $toBeforeFormat = $to;
79
80
81 $wpcTempTo = str_replace( '.', ':', $to);
82 $wpcTempFrom = str_replace( '.', ':', $from);
83
84 $visible_to = flrt_apply_date_format( $to, $date_format );
85 $visible_from = flrt_apply_date_format( $from, $date_format );
86 $wpcTempTo = flrt_apply_date_format( $wpcTempTo, $date_format );
87 $wpcTempFrom = flrt_apply_date_format( $from, $date_format );
88 $abs_visible_to = flrt_apply_date_format( $absTo, $date_format );
89 $abs_visible_from = flrt_apply_date_format( $absFrom, $date_format );
90
91 //@todo should be changed
92 if ( $filter['date_type'] === 'datetime' ) {
93 $to = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $to ) );
94 $from = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $from ) );
95 $absFrom = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $absFrom ) );
96 $absTo = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $absTo ) );
97 }
98
99 ?>
100 <form action="" method="GET" class="wpc-filter-date-range-form-visible" data-fid="<?php echo esc_attr( $filter['ID'] ); ?>">
101 <div class="wpc-filters-date-range-wrapper">
102 <div class="wpc-filters-date-range-column wpc-filters-date-range-from-column">
103 <label for="wpc-filters-alt-date-from-<?php echo esc_attr( $filter['ID'] ); ?>"><?php esc_html_e( 'After', 'filter-everything' ); ?></label>
104 <input type="text" id="wpc-filters-alt-date-from-<?php echo esc_attr( $filter['ID'] ); ?>" data-fid="<?php echo esc_attr( $filter['ID'] ); ?>" class="wpc-filters-range-from" name="alt_<?php echo esc_attr( $fromName ); ?>" value="<?php echo esc_attr( $visible_from ); ?>"
105 data-wpc-temp-from="<?php echo esc_attr($wpcTempFrom); ?>"
106 data-wpc-e-name="<?php echo esc_attr($filter['e_name']); ?>"
107 data-wpc-slug="<?php echo esc_attr( $fromName ); ?>"
108 data-wpc-date-type="<?php echo esc_attr( $filter['date_type'] ); ?>"
109 data-wpc-abs-from="<?php echo esc_attr( $abs_visible_from ); ?>"
110 data-wpc-abs-from-raw="<?php echo esc_attr( $absFromBeforeFormat ); ?>"
111 data-wpc-chips-text="<?php echo esc_attr( esc_html__('After', 'filter-everything') ); ?>"
112 data-wpc-chip-label="<?php echo esc_attr( isset( $filter['min_num_label'] ) ? $filter['min_num_label'] : '' ); ?>"
113 />
114 </div>
115 <div class="wpc-filters-date-range-column wpc-filters-date-range-to-column">
116 <label for="wpc-filters-alt-date-to-<?php echo esc_attr( $filter['ID'] ); ?>"><?php esc_html_e( 'Before', 'filter-everything' ); ?></label>
117 <input type="text" id="wpc-filters-alt-date-to-<?php echo esc_attr( $filter['ID'] ); ?>" data-fid="<?php echo esc_attr( $filter['ID'] ); ?>" class="wpc-filters-range-to" name="alt_<?php echo esc_attr( $toName ); ?>" value="<?php echo esc_attr( $visible_to ); ?>"
118 data-wpc-temp-to="<?php echo esc_attr( $wpcTempTo ); ?>"
119 data-wpc-e-name="<?php echo esc_attr($filter['e_name']); ?>"
120 data-wpc-slug="<?php echo esc_attr( $toName ); ?>"
121 data-wpc-date-type="<?php echo esc_attr( $filter['date_type'] ); ?>"
122 data-wpc-abs-to="<?php echo esc_attr( $abs_visible_to ); ?>"
123 data-wpc-abs-to-raw="<?php echo esc_attr( $absToBeforeFormat ); ?>"
124 data-wpc-chips-text="<?php echo esc_attr( esc_html__('Before', 'filter-everything') ); ?>"
125 data-wpc-chip-label="<?php echo esc_attr( isset( $filter['max_num_label'] ) ? $filter['max_num_label'] : '' ); ?>"
126 />
127 </div>
128 </div>
129 </form>
130 <!-- Hidden part of the date form -->
131 <form style="display: none;" action="<?php echo esc_url( $url_manager->getFormActionOrFullPageUrl() ); ?>" method="GET" class="wpc-filter-date-range-form" id="wpc-filter-date-range-form-<?php echo esc_attr( $filter['ID'] ); ?>">
132 <div class="wpc-filters-date-range-wrapper">
133 <div class="wpc-filters-date-range-column wpc-filters-date-range-from-column">
134 <input type="text" id="wpc-filters-date-from-<?php echo esc_attr( $filter['ID'] ); ?>" class="wpc-filters-range-from" name="<?php echo esc_attr( $fromName ); ?>" value="<?php echo esc_attr( $from ); ?>" data-from="<?php echo esc_attr( $absFrom ); ?>"
135 data-wpc-e-name="<?php echo esc_attr($filter['e_name']); ?>"
136 data-wpc-slug="<?php echo esc_attr( $fromName ); ?>"
137 data-wpc-date-type="<?php echo esc_attr( $filter['date_type'] ); ?>"
138 data-set="<?php echo esc_attr( $filter['parent'] ); ?>"
139 />
140 </div>
141 <div class="wpc-filters-date-range-column wpc-filters-date-range-to-column">
142 <input type="text" id="wpc-filters-date-to-<?php echo esc_attr( $filter['ID'] ); ?>" class="wpc-filters-range-to" name="<?php echo esc_attr( $toName ); ?>" value="<?php echo esc_attr( $to ); ?>" data-to="<?php echo esc_attr( $absTo ); ?>"
143 data-wpc-e-name="<?php echo esc_attr($filter['e_name']); ?>"
144 data-wpc-slug="<?php echo esc_attr( $toName ); ?>"
145 data-wpc-date-type="<?php echo esc_attr( $filter['date_type'] ); ?>"
146 data-set="<?php echo esc_attr( $filter['parent'] ); ?>"
147 />
148 </div>
149 </div>
150 <?php
151 /**
152 * @bug if $absFrom === $absTo slider freezes
153 */
154 ?>
155 <?php
156 flrt_query_string_form_fields(
157 flrt_get_query_string_parameters(),
158 [$fromName, $toName]
159 );
160 ?>
161 </form>
162 <?php } ?>
163 <?php else: ?>
164 <?php esc_html_e('There are no posts with such filtering criteria on this site.', 'filter-everything' ); ?>
165 <?php endif; ?>
166 </div>
167 </div>
168 </div>
169