search.php
9.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
/* WARNING!!! (2013-07-10) We intend to add a few more fields into this search form over the coming weeks/months.
* Overriding shouldn't hinder functionality at all but these new search options won't appear on your form!
*/
/*
* By modifying this in your theme folder within plugins/events-manager/templates/events-search.php, you can change the way the search form will look.
* To ensure compatability, it is recommended you maintain class, id and form name attributes, unless you now what you're doing.
* You also have an $args array available to you with search options passed on by your EM settings or shortcode
*/
/* @var $args array */
if( empty($args['id']) ) $args['id'] = rand(); // prevent warnings
$id = esc_attr($args['id']); // id of form for unique selections
//em_template_classes('search', 'modal,search-advanced');
?>
<div class="<?php em_template_classes('search'); ?> <?php echo esc_attr(implode(' ', $args['css_classes'])); ?>" id="em-search-<?php echo $id; ?>" data-view="<?php echo esc_attr($args['view']); ?>">
<form action="<?php echo !empty($args['search_url']) ? esc_url($args['search_url']) : EM_URI; ?>" method="post" class="em-search-form" id="em-search-form-<?php echo $id; ?>">
<input type="hidden" name="action" value="<?php echo esc_attr($args['search_action']); ?>" />
<input type="hidden" name="view_id" value="<?php echo esc_attr($args['id']); ?>" />
<?php if( $args['show_main'] ): //show the 'main' search form ?>
<div class="em-search-main em-search-main-bar">
<?php do_action('em_template_events_search_form_header'); //hook in here to add extra fields, text etc. ?>
<?php
//search text - tweak ID so it is unique when repeated in advanced further down
$args['id'] = '-main-' . $args['id'];
if( !empty($args['search_term_main']) ) em_locate_template('templates/search/search.php',true,array('args'=>$args));
if( !empty($args['search_geo_main']) ) em_locate_template('templates/search/geo.php',true,array('args'=>$args));
if( !empty($args['search_scope_main']) ) em_locate_template('templates/search/scope.php',true,array('args'=>$args));
$args['id'] = $id;
?>
<?php if( !empty($args['advanced_hidden']) && !empty($args['show_advanced']) ): //show the advanced search toggle if advanced fields are collapsed ?>
<div class="em-search-advanced-trigger">
<button type="button" class="em-search-advanced-trigger em-clickable em-tooltip" data-search-advanced-id="em-search-advanced-<?php echo $id; ?>" id="em-search-advanced-trigger-<?php echo $id; ?>" aria-label="<?php echo esc_html($args['search_text_show']); ?>"></button>
</div>
<?php endif; ?>
<?php if( !empty($args['views']) && count($args['views']) > 1 ): //show the advanced search toggle if advanced fields are collapsed ?>
<div class="em-search-views" aria-label="<?php esc_attr_e('View Types', 'events-manager'); ?>">
<?php $search_views = em_get_search_views(); ?>
<div class="em-search-views-trigger" data-template="em-search-views-options-<?php echo $id; ?>">
<button type="button" class="em-search-view-option em-clickable em-search-view-type-<?php echo $args['view']; ?>" data-view="<?php echo esc_attr($args['view']); ?>"><?php echo esc_html($search_views[$args['view']]['name']); ?></button>
</div>
<div class="em-search-views-options input" id="em-search-views-options-<?php echo $id; ?>">
<fieldset class="em-search-views-options-list" id="em-search-views-options-select-<?php echo $id; ?>">
<legend class="screen-reader-text"><?php esc_html_e('Search Results View Type','events-manager'); ?></legend>
<?php foreach( $args['views'] as $view ): $view_name = $search_views[$view]['name']; ?>
<label class="em-search-view-option em-search-view-type-<?php echo esc_attr($view); ?> <?php if( $view === $args['view'] ) echo 'checked'; ?>" data-view="<?php echo esc_attr($view); ?>">
<input type="radio" name="view" class="em-search-view-option em-search-view-type-<?php echo esc_attr($view); ?>" value="<?php echo esc_attr($view); ?>" <?php if( $view === $args['view'] ) echo 'checked'; ?>>
<?php echo esc_html($view_name); ?>
</label>
<?php endforeach; ?>
</fieldset>
</div>
</div>
<?php else: ?>
<input name="view" type="hidden" value="<?php echo $args['view']; ?>">
<?php endif; ?>
<div class="em-search-submit input">
<button type="submit" class="em-search-submit button-primary"><?php echo esc_html($args['search_button']); ?></button>
</div>
</div>
<?php endif; ?>
<?php if( (empty($args['show_advanced']) || empty($args['search_countries'])) && !empty($args['country']) ): //show country in hidden field for geo searching ?>
<input type="hidden" name="country" value="<?php echo esc_attr($args['country']) ?>" />
<?php endif; ?>
<?php if( empty($args['search_geo_units']) ): //show country in hidden field for geo searching ?>
<?php if( !empty($args['near_distance']) ) : ?><input name="near_distance" type="hidden" value="<?php echo esc_attr($args['near_distance']); ?>" /><?php endif; ?>
<?php if( !empty($args['near_unit']) ) : ?><input name="near_unit" type="hidden" value="<?php echo esc_attr($args['near_unit']); ?>" /><?php endif; ?>
<?php endif; ?>
<?php if( !empty($args['show_advanced']) && $args['advanced_mode'] == 'inline' ): //show inline if requested ?>
<div class="em-search-advanced input" <?php if( !empty($args['advanced_hidden']) ) echo 'style="display:none"'; ?>>
<?php
//date range (scope)
//if( !empty($args['search_scope']) ) em_locate_template('templates/search/scope.php',true,array('args'=>$args));
//categories
if( get_option('dbem_categories_enabled') && !empty($args['search_categories']) ) em_locate_template('templates/search/categories.php',true,array('args'=>$args));
//Location data
em_locate_template('templates/search/location.php',true, array('args'=>$args));
if( !empty($args['search_geo_units']) ) em_locate_template('templates/search/geo-units.php',true, array('args'=>$args));
?>
<?php do_action('em_template_events_search_form_footer'); //hook in here to add extra fields, text etc. ?>
<?php if( !$args['show_main'] ): //show button if it wasn't shown further up ?>
<button type="submit" class="em-search-submit button-primary">
<?php echo esc_html($args['search_button']); ?>
</button>
<?php endif; ?>
</div>
<?php else: // Search Form Pop-Up Shown as separate form ?>
<div class="em-modal <?php em_template_classes('search', 'search-advanced'); ?> <?php echo esc_attr(implode(' ', $args['css_classes_advanced'])); ?>" id="em-search-advanced-<?php echo $id; ?>" data-parent="em-search-form-<?php echo $id; ?>" data-view="<?php echo esc_attr($args['view']); ?>">
<div class="em-modal-popup">
<header>
<a class="em-close-modal" href="#"></a><!-- close modal -->
<div class="em-modal-title">
<?php echo esc_html($args['search_text_show']); ?>
</div>
</header>
<div class="em-modal-content em-search-sections input">
<section class="em-search-main">
<?php
// main three searches on top
if( !empty($args['search_term']) ) em_locate_template('templates/search/search.php',true,array('args'=>$args));
if( !empty($args['search_scope']) ) em_locate_template('templates/search/scope.php',true,array('args'=>$args));
if( !empty($args['search_geo']) ) em_locate_template('templates/search/geo.php',true,array('args'=>$args));
?>
</section>
<section class="em-search-advanced-sections">
<section class="em-search-section-location em-search-advanced-section">
<header>Location Options</header>
<div class="em-search-section-content">
<?php
em_locate_template('templates/search/location.php', true, array('args'=>$args));
if( !empty($args['search_geo_units']) ) em_locate_template('templates/search/geo-units.php',true, array('args'=>$args));
if( !empty($args['search_eventful']) ) em_locate_template('templates/search/eventful-locations.php',true,array('args'=>$args));
?>
</div>
</section>
<?php if( get_option('dbem_categories_enabled') && !empty($args['search_categories']) ): ?>
<section class="em-search-section-categories em-search-advanced-section">
<header><?php echo esc_html($args['category_label']); ?></header>
<div class="em-search-section-content">
<?php em_locate_template('templates/search/categories.php',true,array('args'=>$args)); ?>
</div>
</section>
<?php endif; ?>
<?php if( get_option('dbem_tags_enabled') && !empty($args['search_tags']) ): ?>
<section class="em-search-section-tags em-search-advanced-section">
<header><?php echo esc_html($args['tag_label']); ?></header>
<div class="em-search-section-content">
<?php em_locate_template('templates/search/tags.php',true,array('args'=>$args)); ?>
</div>
</section>
<?php endif; ?>
</section>
</div><!-- content -->
<footer class="em-submit-section input">
<div>
<button type="reset" class="button button-secondary"><?php esc_html_e('Clear All', 'events-manager'); ?></button>
</div>
<div>
<button type="submit" class="button button-primary"><?php echo esc_html($args['search_button']); ?></button>
</div>
</footer>
</div><!-- modal -->
</div>
<?php endif; ?>
</form>
</div>
<?php if( empty($args['has_view']) ): // if called by another shortcode e.g. events_list, then that shortcode should generate the search form and wrap itself in the below ?>
<div class='<?php em_template_classes('view-container'); ?> <?php echo esc_attr(implode(' ', $args['css_classes'])); ?>' id="em-view-<?php echo $id; ?>" data-view="<?php echo esc_attr($args['view']); ?>"></div>
<?php endif; ?>