From 3c416b72ab92f4b1d7ce61d1e74031d2f98fb9a0 Mon Sep 17 00:00:00 2001 From: Anthony Talarico Date: Mon, 6 Mar 2017 16:43:13 -0500 Subject: [PATCH] adding search results view, adding starting search form processing to start building queries --- models/front/obits/search.php | 79 +++++++++++++++++++--- views/front/obits/search.html | 98 +++++++++++++++++++--------- views/front/obits/searchResults.html | 0 3 files changed, 137 insertions(+), 40 deletions(-) create mode 100644 views/front/obits/searchResults.html diff --git a/models/front/obits/search.php b/models/front/obits/search.php index 0a5c5e9..257e277 100644 --- a/models/front/obits/search.php +++ b/models/front/obits/search.php @@ -19,7 +19,7 @@ require_once GLM_MEMBERS_OBITS_PLUGIN_CLASS_PATH.'/obitSupportFunctions.php'; class GlmMembersFront_obits_search extends GlmDataObits { - + public $table; /** * WordPress Database Object * @@ -69,7 +69,6 @@ class GlmMembersFront_obits_search extends GlmDataObits */ public function __construct ($wpdb, $config) { - // Save WordPress Database object $this->wpdb = $wpdb; @@ -88,24 +87,88 @@ class GlmMembersFront_obits_search extends GlmDataObits public function modelAction($actionData = false) { + $this->table = GLM_MEMBERS_OBITS_PLUGIN_DB_PREFIX . 'obits'; + + $view = 'search'; + +// $sql_all = "SELECT * FROM $this->table"; +// $sql_where = "SELECT * FROM $this->table WHERE "; + $year_ranges = new glmObitSupportFunctions($this->wpdb, $this->config); $birth_death_range = array('birth' => $year_ranges->getObitYearRange(BIRTH_YEAR_START), 'death' => $year_ranges->getObitYearRange(DEATH_YEAR_START)); - $logic_dropdown = array('equals','starts','contains', 'more than', 'less than', 'between', '') + $logic_dropdown = array('Contains','Starts','Equals', 'More than', 'Less than', 'Between', 'Empty'); $form_data = $_REQUEST; + $form_fields = array( + $last = filter_var( $_REQUEST['last_name'], FILTER_SANITIZE_STRING), + $first = filter_var( $_REQUEST['first_mid'], FILTER_SANITIZE_STRING), + $byear = filter_var( $_REQUEST['b_year'], FILTER_SANITIZE_STRING), + $byear_range = filter_var( $_REQUEST['b_yr_range'], FILTER_SANITIZE_STRING), + $dyear = filter_var( $_REQUEST['d_year'], FILTER_SANITIZE_STRING), + $dyear_range = filter_var( $_REQUEST['d_yr_range'], FILTER_SANITIZE_STRING), + $maiden = filter_var( $_REQUEST['maiden_other'], FILTER_SANITIZE_STRING), + $spouse = filter_var( $_REQUEST['spouse_partner'], FILTER_SANITIZE_STRING) + ); + +// $last = filter_var( $_REQUEST['last_name'], FILTER_SANITIZE_STRING); +// $first = filter_var( $_REQUEST['first_mid'], FILTER_SANITIZE_STRING); +// $byear = filter_var( $_REQUEST['b_year'], FILTER_SANITIZE_STRING); +// $byear_range = filter_var( $_REQUEST['b_yr_range'], FILTER_SANITIZE_STRING); +// $dyear = filter_var( $_REQUEST['d_year'], FILTER_SANITIZE_STRING); +// $dyear_range = filter_var( $_REQUEST['d_yr_range'], FILTER_SANITIZE_STRING); +// $maiden = filter_var( $_REQUEST['maiden_other'], FILTER_SANITIZE_STRING); +// $spouse = filter_var( $_REQUEST['spouse_partner'], FILTER_SANITIZE_STRING); +// + + $sql = "SELECT * FROM $this->table WHERE last_name = '$last' OR first_mid = '$first' OR b_year = '$byear' OR b_yr_range = '$byear_range' OR d_year = '$dyear' OR d_yr_range = '$dyear_range' OR maiden_other = '$maiden' OR spouse_partner = '$spouse';"; + + + if( isset( $_REQUEST['any-condition'] ) ){ + $clause = 'OR'; + } else if ( isset( $_REQUEST['all-conditions'] ) ) { + $clause = 'AND'; + } + +// echo '
', print_r($form_data), '
'; + // no restrictions + $obits = $this->wpdb->get_results($sql, 'ARRAY_A'); +// echo '
', print_r($obits), '
'; + + + foreach($form_data as $key=>$value){ + if (isset($value) && $value !== ''){ + if( $value !== 'Search' && $value !== 'search-results' && $key !== 'conditions'){ + $value = filter_var($value, FILTER_SANITIZE_STRING); + $queries[$key] = array('field' => $value); +// echo $value; + + } + } + } +// echo '
', print_r($queries), '
'; + foreach($queries as $key=>$value){ +// print_r($value); + } + + if( isset($_REQUEST['search-results']) ){ + $view = 'searchResults'; + } + // Compile template data $templateData = array( - 'birth_death_range' => $birth_death_range + 'birth_death_range' => $birth_death_range, + 'sql' => $sql, + 'obits' => $obits, + 'logic' => $logic_dropdown, + 'clause' => $clause ); // Return status, any suggested view, and any data to controller return array( 'status' => true, 'modelRedirect' => false, - 'view' => 'front/obits/search.html', + 'view' => "front/obits/".$view.".html", 'data' => $templateData ); } - - -} +} \ No newline at end of file diff --git a/views/front/obits/search.html b/views/front/obits/search.html index 5e7688c..56f9f5a 100644 --- a/views/front/obits/search.html +++ b/views/front/obits/search.html @@ -1,18 +1,26 @@
@@ -50,14 +66,17 @@ Birth Year Range:
- - + +
- +
+ +
- +
- +
@@ -84,14 +107,17 @@ Death Year Range:
- - + +
- +
- + {foreach from=$birth_death_range.death item=r} {/foreach} @@ -103,14 +129,18 @@ Maiden or Other Name:
- - + +
- +
- +
@@ -118,14 +148,18 @@ Spouse / Partner Name:
- - + +
- +
- +
diff --git a/views/front/obits/searchResults.html b/views/front/obits/searchResults.html new file mode 100644 index 0000000..e69de29 -- 2.17.1