From: Steve Sutton Date: Thu, 20 Mar 2014 15:47:58 +0000 (+0000) Subject: use regionId X-Git-Tag: v1.0~2 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=a47d12f4661ad196ab5744b1a90b23cf581cbf12;p=web%2FMichiganTrailMaps.git use regionId --- diff --git a/Toolkit/Members/SearchQueryGenerator.php b/Toolkit/Members/SearchQueryGenerator.php index ba5197e..db7c6aa 100644 --- a/Toolkit/Members/SearchQueryGenerator.php +++ b/Toolkit/Members/SearchQueryGenerator.php @@ -23,25 +23,25 @@ */ class Toolkit_Members_SearchQueryGenerator { - // {{{ properties + // {{{ properties /** * Description of $_includeSubCats * @var unknown * @access private */ - private $_includeSubCats; + private $_includeSubCats; /** * Description of $_config * @var Config_Container * @access private */ - private $_config; + private $_config; - // }}} + // }}} - // {{{ __construct() + // {{{ __construct() /** * Class constructor @@ -51,15 +51,15 @@ class Toolkit_Members_SearchQueryGenerator * * @access public */ - public function __construct($includeSubCats, Config_Container $root) - { - $this->_includeSubCats = $includeSubCats; - $this->_config = $root; - } + public function __construct($includeSubCats, Config_Container $root) + { + $this->_includeSubCats = $includeSubCats; + $this->_config = $root; + } - // }}} + // }}} - // {{{ _getMemberCategoriesForPage() + // {{{ _getMemberCategoriesForPage() /** * Gets the member categories that are assigned to the page @@ -69,32 +69,32 @@ class Toolkit_Members_SearchQueryGenerator * @return mixed false if not categories, else array of cats * @access private */ - private function _getMemberCategoriesForPage(PDO $dbh) - { - try { - $memberCategories = array(); - $sql = " + private function _getMemberCategoriesForPage(PDO $dbh) + { + try { + $memberCategories = array(); + $sql = " SELECT category FROM member_categories2toolbox_pages WHERE page = :catid"; - $stmt = $dbh->prepare($sql); - $stmt->bindParam(':catid', $_REQUEST['catid'], PDO::PARAM_INT); - $stmt->execute(); - $stmt->bindColumn('category', $category); - - while ($row = $stmt->fetch()) { - $memberCategories[] = $category; - } - - // If we should include all the sub categories beneath a category. - if ($this->_includeSubCats) { - // For each of the categories assigned to the page, - // we need to get all sub-categories. This way the user - // can assign a top level category as a balloon to cover all the - // subcategories w/out individually assigning them as well. - foreach ($memberCategories as $v) { - $catTree = Toolkit_Common::getHierarchicalTreeStructure( + $stmt = $dbh->prepare($sql); + $stmt->bindParam(':catid', $_REQUEST['catid'], PDO::PARAM_INT); + $stmt->execute(); + $stmt->bindColumn('category', $category); + + while ($row = $stmt->fetch()) { + $memberCategories[] = $category; + } + + // If we should include all the sub categories beneath a category. + if ($this->_includeSubCats) { + // For each of the categories assigned to the page, + // we need to get all sub-categories. This way the user + // can assign a top level category as a balloon to cover all the + // subcategories w/out individually assigning them as well. + foreach ($memberCategories as $v) { + $catTree = Toolkit_Common::getHierarchicalTreeStructure( $dbh, 'category', 'category_id', @@ -103,20 +103,20 @@ class Toolkit_Members_SearchQueryGenerator $v ); - foreach ($catTree as $i => $j) { - $memberCategories[] = $i; - } - } - } + foreach ($catTree as $i => $j) { + $memberCategories[] = $i; + } + } + } - return empty($memberCategories) ? false : $memberCategories; - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } + return empty($memberCategories) ? false : $memberCategories; + } catch (PDOException $e) { + return Toolkit_Common::handleError($e); + } + } - // }}} - // {{{ _getMemberRegionsForPage() + // }}} + // {{{ _getMemberRegionsForPage() /** * Gets the member regions that are assigned to the page @@ -126,31 +126,31 @@ class Toolkit_Members_SearchQueryGenerator * @return mixed false if not regions, else array of regions * @access private */ - private function _getMemberRegionsForPage(PDO $dbh) - { - try { - $memberRegions = array(); - $sql = " + private function _getMemberRegionsForPage(PDO $dbh) + { + try { + $memberRegions = array(); + $sql = " SELECT region FROM member_regions2toolbox_pages WHERE page = :catid"; - $stmt = $dbh->prepare($sql); - $stmt->bindParam(':catid', $_REQUEST['catid'], PDO::PARAM_INT); - $stmt->execute(); - $stmt->bindColumn('region', $region); + $stmt = $dbh->prepare($sql); + $stmt->bindParam(':catid', $_REQUEST['catid'], PDO::PARAM_INT); + $stmt->execute(); + $stmt->bindColumn('region', $region); - while ($row = $stmt->fetch()) { - $memberRegions[] = $region; - } + while ($row = $stmt->fetch()) { + $memberRegions[] = $region; + } - return empty($memberRegions) ? false : $memberRegions; - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } + return empty($memberRegions) ? false : $memberRegions; + } catch (PDOException $e) { + return Toolkit_Common::handleError($e); + } + } - // }}} + // }}} public function getSearchTerms(PDO $dbh) { @@ -164,15 +164,15 @@ class Toolkit_Members_SearchQueryGenerator /** * Gets the query to use to fetch the datagrid results * - * @param PDO $dbh Database handler + * @param PDO $dbh Database handler * @param array $sections Sections array - * + * * @return void * @access public */ public function getQuery(PDO $dbh, array $sections = null) { - $sql = " + $sql = " SELECT distinct m.*, c.city_name, s.state_name AS state, s.state_abb AS state_abbr FROM member m @@ -181,43 +181,43 @@ class Toolkit_Members_SearchQueryGenerator exploded_members_name emn"; $params = array( - "new_member <> '1'", - "active = '1'", - 'emn.mid = m.member_id'); + "new_member <> '1'", + "active = '1'", + 'emn.mid = m.member_id'); // Limit to members whose first letter starts with the letter // a user clicked in the narrow alphabetically list. - if (isset($_REQUEST['alpha']) && $_REQUEST['alpha'] == '0-9') { - $params[] = "substr(m.member_name, 1, 1) ~ '[0-9]'"; + if (isset($_REQUEST['alpha']) && $_REQUEST['alpha'] == '0-9') { + $params[] = "substr(m.member_name, 1, 1) ~ '[0-9]'"; } elseif (isset($_REQUEST['alpha']) && ctype_alpha($_REQUEST['alpha'])) { - $letter = $_REQUEST['alpha'][0]; + $letter = $_REQUEST['alpha'][0]; $params[] = "upper(substr(m.member_name, 1, 1)) = upper(" . - $dbh->quote($letter) . ')'; - } + $dbh->quote($letter) . ')'; + } $memberName = filter_var($_REQUEST['member_name'], FILTER_SANITIZE_STRING); // Limit to members whose name contains the string a user // entered into the member name box. + Phonetics search matches. if (isset($memberName) && !empty($memberName)) { - $noSpaceName = preg_replace( - '/\W/', - '', - urldecode($memberName) - ); - $spaceName = urldecode($memberName); - $sanitizedNoSpaceName = $dbh->quote($noSpaceName); - $sanitizedSpaceName = $dbh->quote($spaceName); - $params[] = "member_name ilike " . $dbh->quote('%'.$memberName.'%'); + $noSpaceName = preg_replace( + '/\W/', + '', + urldecode($memberName) + ); + $spaceName = urldecode($memberName); + $sanitizedNoSpaceName = $dbh->quote($noSpaceName); + $sanitizedSpaceName = $dbh->quote($spaceName); + $params[] = "member_name ilike " . $dbh->quote('%'.$memberName.'%'); } // Using controlled cities and a search was performed on a city // get reference to [conf] section of config file $ctrlCtyD =& $this->_config - ->getItem('section', 'conf') - ->getItem('directive', 'controlledCities'); + ->getItem('section', 'conf') + ->getItem('directive', 'controlledCities'); $hasRegions =& $this->_config - ->getItem('section', 'conf') - ->getItem('directive', 'regions') - ->getContent(); - $regionId = filter_var($_REQUEST['region'], FILTER_VALIDATE_INT); + ->getItem('section', 'conf') + ->getItem('directive', 'regions') + ->getContent(); + $regionId = filter_var($_REQUEST['regionId'], FILTER_VALIDATE_INT); if ($regionId) { $params[] = " (m.region = " . $dbh->quote($regionId) .")"; } elseif ($hasRegions @@ -305,7 +305,7 @@ class Toolkit_Members_SearchQueryGenerator SELECT member_id FROM member_category WHERE category_id = " . - $dbh->quote($sub_category_id) . ')'; + $dbh->quote($sub_category_id) . ')'; } elseif ($category_id) { unset($subCats); if ($this->_includeSubCats) { @@ -357,50 +357,50 @@ class Toolkit_Members_SearchQueryGenerator WHERE category_id in ('.implode(', ', $categories).'))'; } - // Limit to members who have the amenities that a user - // checked off. - if (isset($_REQUEST['amenities']) && !empty($_REQUEST['amenities'])) { - if ( isset($_REQUEST['search_all_amenity']) - && isset($_REQUEST['amenities']) - && is_array($_REQUEST['amenities']) - && !empty($_REQUEST['amenities']) - ) { - // Member must have ALL of the selected amenities. - $innerSql = array(); - foreach ($_REQUEST['amenities'] as $k => $v) { - if (ctype_digit((string)$k)) { - $innerSql[] = " - SELECT member_id - FROM member_amenity - WHERE amenity_id = $k"; - } - } - - $innerSql = implode(' INTERSECT ', $innerSql); - $innerSql = "m.member_id in ($innerSql)"; - - $params[] = $innerSql; - } elseif (is_array($_REQUEST['amenities'])) { - $addParam = true; - foreach ($_REQUEST['amenities'] as $key => $value) { - if (!filter_var($key, FILTER_VALIDATE_INT)) { - $addParam = false; - } - } - if ($addParam) { - // Member can have ANY of the selected amenities - $params[] = " - member_id in ( - SELECT member_id - FROM member_amenity - WHERE amenity_id in(".implode(', ', array_keys($_REQUEST['amenities']))."))"; - } - } - } - - if (!empty($params)) { - $sql .= ' WHERE ' . implode(' AND ', $params); - } + // Limit to members who have the amenities that a user + // checked off. + if (isset($_REQUEST['amenities']) && !empty($_REQUEST['amenities'])) { + if ( isset($_REQUEST['search_all_amenity']) + && isset($_REQUEST['amenities']) + && is_array($_REQUEST['amenities']) + && !empty($_REQUEST['amenities']) + ) { + // Member must have ALL of the selected amenities. + $innerSql = array(); + foreach ($_REQUEST['amenities'] as $k => $v) { + if (ctype_digit((string)$k)) { + $innerSql[] = " + SELECT member_id + FROM member_amenity + WHERE amenity_id = $k"; + } + } + + $innerSql = implode(' INTERSECT ', $innerSql); + $innerSql = "m.member_id in ($innerSql)"; + + $params[] = $innerSql; + } elseif (is_array($_REQUEST['amenities'])) { + $addParam = true; + foreach ($_REQUEST['amenities'] as $key => $value) { + if (!filter_var($key, FILTER_VALIDATE_INT)) { + $addParam = false; + } + } + if ($addParam) { + // Member can have ANY of the selected amenities + $params[] = " + member_id in ( + SELECT member_id + FROM member_amenity + WHERE amenity_id in(".implode(', ', array_keys($_REQUEST['amenities']))."))"; + } + } + } + + if (!empty($params)) { + $sql .= ' WHERE ' . implode(' AND ', $params); + } return $sql; }