PluginProbe
Filter Everything — WordPress & WooCommerce Filters / 1.9.2.2
Filter Everything — WordPress & WooCommerce Filters v1.9.2.2
1.9.7 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 All 52 releases
filter-everything / views / frontend / date.php

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

117 lines 7.0 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 ?>
25 <div class="<?php echo flrt_filter_class( $filter ); // Already escaped ?>" data-fid="<?php echo esc_attr( $filter['ID'] ); ?>">
26 <?php flrt_filter_header( $filter, $terms ); // Safe, escaped ?>
27 <div class="<?php echo esc_attr( flrt_filter_content_class( $filter ) ); ?>">
28 <div class="wpc-filters-range-inputs">
29 <?php if( ! empty( $terms ) || $view_args['ask_to_select_parent'] || !empty($filter['values']) ):
30 if( $view_args['ask_to_select_parent'] !== false ) { ?>
31 <div><?php echo esc_html( $view_args['ask_to_select_parent'] ); ?></div>
32 <?php } else {
33
34 $fromName = flrt_range_input_name( $filter['slug'], 'from', 'date' );
35 $toName = flrt_range_input_name( $filter['slug'], 'to', 'date' );
36
37 $date_format = isset( $filter['date_format'] ) ? $filter['date_format'] : flrt_default_date_format( $filter['date_type'] );
38
39 $absFrom = $absTo = '';
40
41 foreach ( $terms as $term ) {
42 foreach( $terms as $term ) {
43 if ( $filter['date_type'] === 'time' ) {
44 if( isset($term->time_from) ) {
45 $absFrom = $term->time_from;
46 }
47 if( isset( $term->time_to ) ) {
48 $absTo = $term->time_to;
49 }
50 } else {
51 if( isset($term->from) ) {
52 $absFrom = flrt_clean_date_time( $term->from, $filter['date_type'] );
53 }
54 if( isset( $term->to ) ) {
55 $absTo = flrt_clean_date_time( $term->to, $filter['date_type'] );
56 }
57 }
58 }
59 }
60
61 $to = $visible_to = isset( $filter['values']['to'] ) ? $filter['values']['to'] : $absTo;
62 $from = $visible_from = isset( $filter['values']['from'] ) ? $filter['values']['from'] : $absFrom;
63
64 $visible_to = flrt_apply_date_format( $to, $date_format );
65 $visible_from = flrt_apply_date_format( $from, $date_format );
66
67 //@todo should be changed
68 if ( $filter['date_type'] === 'datetime' ) {
69 $to = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $to ) );
70 $from = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $from ) );
71 $absFrom = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $absFrom ) );
72 $absTo = str_replace( ':', '.', str_replace( " ", FLRT_DATE_TIME_SEPARATOR, $absTo ) );
73 }
74
75 ?>
76 <form action="" method="GET" class="wpc-filter-date-range-form-visible" data-fid="<?php echo esc_attr( $filter['ID'] ); ?>">
77 <div class="wpc-filters-date-range-wrapper">
78 <div class="wpc-filters-date-range-column wpc-filters-date-range-from-column">
79 <label for="wpc-filters-alt-date-from-<?php echo esc_attr( $filter['ID'] ); ?>"><?php esc_html_e( 'After', 'filter-everything' ); ?></label>
80 <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 ); ?>" />
81 </div>
82 <div class="wpc-filters-date-range-column wpc-filters-date-range-to-column">
83 <label for="wpc-filters-alt-date-to-<?php echo esc_attr( $filter['ID'] ); ?>"><?php esc_html_e( 'Before', 'filter-everything' ); ?></label>
84 <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 ); ?>" />
85 </div>
86 </div>
87 </form>
88 <!-- Hidden part of the date form -->
89 <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'] ); ?>">
90 <div class="wpc-filters-date-range-wrapper">
91 <div class="wpc-filters-date-range-column wpc-filters-date-range-from-column">
92 <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 ); ?>" />
93 </div>
94 <div class="wpc-filters-date-range-column wpc-filters-date-range-to-column">
95 <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 ); ?>" />
96 </div>
97 </div>
98 <?php
99 /**
100 * @bug if $absFrom === $absTo slider freezes
101 */
102 ?>
103 <?php
104 flrt_query_string_form_fields(
105 flrt_get_query_string_parameters(),
106 [$fromName, $toName]
107 );
108 ?>
109 </form>
110 <?php } ?>
111 <?php else: ?>
112 <?php esc_html_e('There are no posts with such filtering criteria on this site.', 'filter-everything' ); ?>
113 <?php endif; ?>
114 </div>
115 </div>
116 </div>
117