Extract logic from search form template
This removes all logic from the search form Blade template, and extracts it to the "Controller" level via Sage's filter system. It also adds a global 'app' filter to hook into, so that the search form data will be served on every page.
This commit is contained in:
@@ -13,6 +13,11 @@ add_filter('body_class', function (array $classes) {
|
||||
}
|
||||
}
|
||||
|
||||
/** Add a global class to everything.
|
||||
* We want it to come first, so stuff its filter does can be overridden.
|
||||
*/
|
||||
array_unshift($classes, 'app');
|
||||
|
||||
/** Add class if sidebar is active */
|
||||
if (display_sidebar()) {
|
||||
$classes[] = 'sidebar-primary';
|
||||
@@ -75,3 +80,15 @@ add_filter('comments_template', function ($comments_template) {
|
||||
add_filter('get_search_form', function () {
|
||||
return template('partials.searchform');
|
||||
});
|
||||
|
||||
/**
|
||||
* Collect data for searchform.
|
||||
*/
|
||||
add_filter('sage/template/app/data', function ($data) {
|
||||
$data['sf_action'] = esc_url(home_url('/'));
|
||||
$data['sf_screen_reader_text'] = _x('Search for:', 'label', 'sage');
|
||||
$data['sf_placeholder'] = esc_attr_x('Search …', 'placeholder', 'sage');
|
||||
$data['sf_current_query'] = get_search_query();
|
||||
$data['sf_submit_text'] = esc_attr_x('Search', 'submit button', 'sage');
|
||||
return $data;
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<form role="search" method="get" class="search-form" action="{{ esc_url(home_url('/')) }}">
|
||||
<form role="search" method="get" class="search-form" action="{{ $sf_action }}">
|
||||
<label>
|
||||
<span class="screen-reader-text">{{ _x('Search for:', 'label', 'sage') }}</span>
|
||||
<input type="search" class="search-field" placeholder="{!! esc_attr_x('Search …', 'placeholder', 'sage') !!}" value="{{ get_search_query() }}" name="s">
|
||||
<span class="screen-reader-text">{{ $sf_screen_reader_text }}</span>
|
||||
<input type="search" class="search-field" placeholder="{!! $sf_placeholder !!}" value="{{ $sf_current_query }}" name="s">
|
||||
</label>
|
||||
<input type="submit" class="search-submit" value="{{ esc_attr_x('Search', 'submit button', 'sage') }}">
|
||||
<input type="submit" class="search-submit" value="{{ $sf_submit_text }}">
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user