From e898cf1f4d91a0d30cd25c9c86a8ed0e2b3a7f2c Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 6 Aug 2018 13:06:34 -0700 Subject: [PATCH] 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. --- app/filters.php | 17 +++++++++++++++++ resources/views/partials/searchform.blade.php | 8 ++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/filters.php b/app/filters.php index d30d166..16fe4d5 100644 --- a/app/filters.php +++ b/app/filters.php @@ -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; +}); diff --git a/resources/views/partials/searchform.blade.php b/resources/views/partials/searchform.blade.php index ff35d92..d4b5847 100644 --- a/resources/views/partials/searchform.blade.php +++ b/resources/views/partials/searchform.blade.php @@ -1,7 +1,7 @@ -