Advertisement
eventsmanager

custom templates/search.php

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