From 945669564e7d5e72ab15121097bc675b36b31e73 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Thu, 6 Jun 2013 17:27:37 +0000 Subject: [PATCH] delete saved form --- Toolkit/Members/UserSearchForm.php.save | 936 ------------------------ 1 file changed, 936 deletions(-) delete mode 100644 Toolkit/Members/UserSearchForm.php.save diff --git a/Toolkit/Members/UserSearchForm.php.save b/Toolkit/Members/UserSearchForm.php.save deleted file mode 100644 index b363890..0000000 --- a/Toolkit/Members/UserSearchForm.php.save +++ /dev/null @@ -1,936 +0,0 @@ - - * @copyright 2009 Jamie Kahgee - * @license http://www.gaslightmedia.com Gaslightmedia - * @version CVS: $Id: UserSearchForm.php,v 1.27 2010/07/14 23:31:14 jamie Exp $ - * @link http://demo.gaslightmedia.com - */ - -/** - * Member Search Form - * - * @category MembersDB - * @package Toolkit_Members - * @author Jamie Kahgee - * @copyright 2009 Jamie Kahgee - * @license http://www.gaslightmedia.com Gaslightmedia - * @link http://demo.gaslightmedia.com - */ -class Toolkit_Members_UserSearchForm - extends Toolkit_FormBuilder -{ - // {{{ properties - - - /** - * Description for protected - * @var array - * @access protected - */ - protected $memberCatsAssignedToPage = array(); - - /** - * Description for $memberRegiansAssignedToPage - * @var array - * @access protected - */ - protected $memberRegionsAssignedToPage = array(); - - /** - * The Table name used to store the data of the member record in the database. - * - * @var string - * @access public - */ - public $tableName = 'member'; - - /** - * Array of data that holds the meta data info on the table - * - * Contains information on the type of fields in the database. - * That way when we run our automated SQL queries with our PDO - * we can properly bind data to our SQL queries. This will - * allow for one more layer of protection against any sql - * injection attempts. - * - * @var string - * @access public - */ - public $tableMetaData; - - /** - * Flexy options used in the renderer - * - * @var array - * @access protected - */ - protected $flexyOptions; - - /** - * The name of the template used to render the member info form - * - * @var string - * @access protected - */ - protected $formTemplate = 'memberSearchForm.tpl'; - - /** - * Form access from inside the template - * - * @var object - * @access protected - */ - protected $view; - - /** - * registered rules for the form - * - * @var array - * @access protected - */ - protected $registeredRules = array(); - - /** - * catid to use in the form - * - * @var integer - * @access private - */ - private $_catid; - - // }}} - - // {{{ configureConstants() - - /** - * Sets the constants for the form - * - * The member category select list must always default - * to the -- Choose Category -- option - * - * @return void - * @access public - */ - public function configureConstants() - { - $c = array( - 'catid' => $this->_catid, - 'search' => 1, - ); - - $this->setupConstants($c); - } - - // }}} - // {{{ configureDefaults() - - /** - * Sets the defaults for the an existing member - * - * Populates data for the main member form. Also grabs - * data to populate the modules on the form if needed. - * - * @return array $defaults Returns the array of defaults - * so children who call this function - * can obtain a copy of these values. - * @access public - */ - public function configureDefaults() - { - $d = array(); - - $this->setupDefaults($d); - - return $d; - } - - // }}} - // {{{ configureElements() - - /** - * Setup the elements to use on the form. - * - * @param PDO $dbh Database handler - * @param Config_Container $c Configuration object - * - * @return void - * @access public - */ - public function configureElements(PDO $dbh, Config_Container $c) - { - $e = array(); - - // get reference to [listing type] section of config file - $singularType = $c->getItem('section', 'listing type') - ->getItem('directive', 'singular') - ->getContent(); - $pluralType = $c->getItem('section', 'listing type') - ->getItem('directive', 'plural') - ->getContent(); - $hasRegions = $c->getItem('section', 'conf') - ->getItem('directive', 'regions') - ->getContent(); - - $memberCategories = $this->getMemberCats($dbh); - if (!isset($_GET['category_id'])) { - $_GET['category_id'] = null; - } - $memberSubCategories - = $this->getMemberSubCats( - $dbh, - $memberCategories, - $_GET['category_id'] - ); - $memberAmenities = $this->getMemberAmenities($dbh); - - $regions = ($hasRegions) ? $this->getAvailableRegions($dbh) : array(); - $this->createAvailableMemberTypesFromRegions($dbh, $regions); - - // All Grouped Elements are created here. - foreach ($memberAmenities as $k => $v) { - $amenities[] = array( - 'type' => 'checkbox', - 'req' => false, - 'name' => $v, - 'display' => $k - ); - } - - // All Elements are created here. This includes group element definitions. - $e[] = array( - 'type' => 'header', - 'req' => false, - 'name' => 'SearchForm_hdr' - ); - $e[] = array( - 'type' => 'hidden', - 'req' => false, - 'name' => 'catid' - ); - $e[] = array( - 'type' => 'hidden', - 'req' => false, - 'name' => 'search' - ); - $e[] = array( - 'type' => 'text', - 'req' => false, - 'name' => 'member_name', - 'display' => "Name", - 'opts' => array('class' => 'text') - ); - if (isset($regions) && !empty($regions) && count($regions) > 1) { - $e[] = array( - 'type' => 'select', - 'req' => false, - 'name' => 'region_id', - 'display' => 'Region', - 'opts' => array('' => '-- Select --') + $regions, - ); - } else if (isset($regions) && count($regions) == 1) { -// $e[] = array( -// 'type' => 'hidden', -// 'req' => false, -// 'name' => 'region_id', -// 'display' => implode('', array_keys($regions)) -// ); - } - if ( isset($memberCategories) - && is_array($memberCategories) - && !empty($memberCategories) - ) { - $e[] = array( - 'type' => 'select', - 'req' => false, - 'name' => 'category_id', - 'display' => "Category", - 'opts' => array('' => '-- Select --') + $memberCategories - ); - } - if ( isset($memberSubCategories) - && is_array($memberSubCategories) - && !empty($memberSubCategories) - ) { - $e[] = array( - 'type' => 'select', - 'req' => false, - 'name' => 'sub_category_id', - 'display' => "Subcategory", - 'opts' => array('' => '-- Select --') + $memberSubCategories - ); - } - // Only show do if we have amenities to show. - if (!empty($memberAmenities)) { - $e[] = array( - 'type' => 'group', - 'req' => false, - 'name' => 'amenities', - 'group' => $amenities, - 'seperator' => '', - 'appendName' => true - ); - $e[] = array( - 'type' => 'checkbox', - 'req' => false, - 'name' => 'search_all_amenity', - 'opts' => 'Only show members who offer all selected amenities' - ); - } - - $this->setupElements($e); - } - - // }}} - // {{{ configureFilters() - - /** - * Setup the filters to apply to the elements before we are - * handed the values submitted - * - * @return void - * @access public - */ - public function configureFilters() - { - $f = array(); - - $f[] = array( - 'element' => '__ALL__', - 'filter' => 'trim' - ); - - $this->setupFilters($f); - } - - // }}} - // {{{ configureForm() - - /** - * Helper method to configure the entire form - * - * @param PDO $dbh Database handler - * @param Config_Container $c Configuration object - * - * @return void - * @access public - */ - public function configureForm(PDO $dbh, Config_Container $c) - { - $this->configureElements($dbh, $c); - $this->configureRules(); - $this->configureFilters(); - $this->configureDefaults(); - $this->configureConstants(); - } - - // }}} - // {{{ configureRules() - - /** - * Sets up all the rules to be used when the form is validated. - * - * @return void - * @access public - */ - public function configureRules() - { - // No Rules - $r = array(); - $this->setupRules($r); - } - - // }}} - // {{{ createAvailableMemberTypesFromRegions() - - /** - * Get available categories from members assigned to regions - * - * @param PDO $dbh Database handler - * @param array $regions Available regions to get members from - * - * @return void - * @access protected - */ - protected function createAvailableMemberTypesFromRegions( - PDO $dbh, - array $regions - ) { - try { - $regionCats = array(); - $availRegions = array(); - $availCats = array(); - $mainCats = array(); - if (!empty($this->memberCatsAssignedToPage)) { - foreach ($this->memberCatsAssignedToPage as $i) { - $cats = Toolkit_Common::getHierarchicalTreeStructure( - $dbh, - 'category', - 'category_id', - 'parent_id', - 'pos', - $i, - 0, - false - ); - if (is_array($cats) && !empty($cats)) { - $availCats = array_merge($availCats, array_keys($cats)); - } - } - } - if ($availCats && !empty($availCats)) { - $availCats = implode(', ', $availCats); - } - - if (!empty($this->memberRegionsAssignedToPage)) { - $availRegions = implode(', ', $availRegions); - } - $pNameSql = " - SELECT name - FROM category - WHERE parent_id = :cid"; - $getParentName = $dbh->prepare($pNameSql); - $sql = "SELECT distinct c.category_id, c.parent_id, - ( SELECT name FROM category WHERE category_id = c.parent_id) AS parent, - c.name AS category - FROM category c - WHERE c.category_id IN ( - SELECT distinct c.category_id - FROM category c, member_category mc, member m - WHERE - c.category_id = mc.category_id - AND mc.member_id = m.member_id - AND m.active"; - if ($regions) { - $sql .= " AND (region = :rid OR region IS NULL) "; - } - - $sql .= ") - AND c.parent_id > 0 "; - if ($availRegions) { - $sql .= " AND region in ($availRegions) "; - } - if ($availCats) { - $sql .= " AND c.category_id in ($availCats) "; - } - $sql .= " ORDER BY c.name"; - $stmt = $dbh->prepare($sql); - if ($regions) { - foreach ($regions as $i => $j) { - if (is_numeric($i)) { - $stmt->bindParam(':rid', $i, PDO::PARAM_INT); - $stmt->execute(); - $row = $stmt->fetchAll(PDO::FETCH_ASSOC); - foreach ($row as $x) { - $regionCats[$i][$x['parent_id']][$x['category_id']] = $x['category']; - $mainCats[$x['parent_id']] = $x['parent']; - } - } - } - } else { - $stmt->execute(); - $row = $stmt->fetchAll(PDO::FETCH_ASSOC); - foreach ($row as $x) { - $regionCats[$i][$x['parent_id']][$x['category_id']] = $x['category']; - $mainCats[$x['parent_id']] = $x['parent']; - } - } - - asort($mainCats); - $this->regionCategories = $regionCats; - $this->mainCats = $mainCats; - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } - - // }}} - - // {{{ getAvailableRegions() - - /** - * Returns all available regions that derive from members assigned to - * this page - * - * @param PDO $dbh Database handler - * - * @return array regions available to this page - * @access protected - */ - protected function getAvailableRegions(PDO $dbh) - { - // Make sure we have all sub-cats nos also - - - try { - $sql = "SELECT DISTINCT c.category_id - FROM category c, member_category mc, member m - WHERE c.category_id = mc.category_id - AND m.member_id = mc.member_id - AND m.active "; - if (is_array($this->memberCatsAssignedToPage) - && !empty($this->memberCatsAssignedToPage)) { - $mcats = implode(',', $this->memberCatsAssignedToPage); - $sql .= " AND c.parent_id IN ($mcats)"; - } - $mcstmt = $this->dbh->prepare($sql); - $mcstmt->execute(); - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - while ($row = $mcstmt->fetch()) { - $this->memberCatsAssignedToPage[] = $row['category_id']; - } - - $regions = array(); - $memCats = array(); - try { - - $sql = " - SELECT * - FROM region - WHERE region_id in ( - SELECT distinct(region) - FROM member - WHERE active = 't' - AND region is not null"; - if (!empty($this->memberCatsAssignedToPage)) { - $sql .= " AND member_id in (SELECT distinct(member_id) - FROM member_category - WHERE category_id in (".implode(',', $this->memberCatsAssignedToPage).") - )"; - } - - if (!empty($this->memberRegionsAssignedToPage)) { - $sql .= " AND region_id in (".implode(',', $this->memberRegionsAssignedToPage).") "; - } - - $sql .= " ) - ORDER BY region_name"; - - $stmt = $dbh->prepare($sql); - $stmt->execute(); - while ($row = $stmt->fetch()) { - $regions[$row['region_id']] = $row['region_name']; - } - - asort($regions); - - return $regions; - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } - - // }}} - // {{{ getMemberAmenities() - - /** - * Get all the amenities for the member - * - * @param PDO $dbh Database handler - * - * @return array member amenities - * @access protected - */ - protected function getMemberAmenities(PDO $dbh) - { - try { - $amenities = array(); - $sql = " - SELECT accommodations - FROM category - WHERE category_id = :cid"; - $isAccommodationCategory = $dbh->prepare($sql); - $sql = " - SELECT a.* - FROM amenity a - NATURAL JOIN member_amenity ma - NATURAL JOIN member_category mc - NATURAL JOIN member m - WHERE m.new_member <> CAST(1 AS BOOLEAN) - AND m.active = CAST(1 AS BOOLEAN) - AND a.display_form = CAST(1 AS BOOLEAN) - AND (mc.category_id = :cid - OR mc.category_id in ( - SELECT category_id - FROM category - WHERE parent_id = :cid)) - ORDER BY amenity_name"; - - $stmt = $dbh->prepare($sql); - foreach ($this->memberCatsAssignedToPage as $id) { - $isAccommodationCategory->bindParam(':cid', $id, PDO::PARAM_INT); - $isAccommodationCategory->execute(); - if (!$isAccommodationCategory->fetchColumn()) { - continue; - } - $stmt->bindParam(':cid', $id, PDO::PARAM_INT); - $stmt->execute(); - while ($row = $stmt->fetch()) { - $amenities[$row['amenity_name']] = $row['amenity_id']; - } - } - return $amenities; - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } - - // }}} - // {{{ getMemberCats() - - /** - * Get all the main categories available from the categories that - * are assigned to the page. - * - * If a main category is assigned to a page, then add to list. - * - * If a sub category is assgined to page, then add parent (main) category - * to the list. - * - * @param PDO $dbh Database handler - * - * @return array Main categories available for page - * @access protected - */ - protected function getMemberCats(PDO $dbh) - { - try { - - $sql = " - SELECT * - FROM category - WHERE category_id = :cid"; - - $stmt = $dbh->prepare($sql); - $categories = array(); - foreach ($this->memberCatsAssignedToPage as $id) { - $stmt->bindParam(':cid', $id, PDO::PARAM_INT); - $stmt->execute(); - if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { - if ($row['parent_id'] == '0') { - $categories[$row['category_id']] = $row['name']; - } else { - $stmt->bindParam(':cid', $row['parent_id'], PDO::PARAM_INT); - $stmt->execute(); - if ($parRow = $stmt->fetch(PDO::FETCH_ASSOC)) { - $categories[$parRow['category_id']] = $parRow['name']; - } - } - } - } - asort($categories); - - return $categories; - - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } - - // }}} - // {{{ getMemberSubCats() - - /** - * Get all the sub categories available from the main categories that - * are available to the page. - * - * @param PDO $dbh Database handler - * @param array $categories Main level categories to get sub levels for - * @param integer $parentIdKey (optional) Main level that was searched on - * - * @return array Sub categories available for page - * @access protected - */ - protected function getMemberSubCats( - PDO $dbh, - array $categories, - $parentIdKey = null - ) { - if (empty($categories)) { - return array(); - } - - try { - // Get the category information - $sql = " - SELECT * - FROM category - WHERE category_id = :cid"; - - $catStmt = $dbh->prepare($sql); - - // Get the sub-category information - $sql = " - SELECT c.* - FROM category c, member_category mc, member m - WHERE c.parent_id = :parent_id - AND c.category_id = mc.category_id - AND mc.member_id = m.member_id - AND m.active - "; - $subCatStmt = $dbh->prepare($sql); - $subCategories = array(); - - while (list($id,) = each($categories)) { - $catStmt->bindParam(':cid', $id, PDO::PARAM_INT); - $catStmt->execute(); - $category = $catStmt->fetch(); - try { - $subCatStmt->bindParam( - ':parent_id', - $category['category_id'], - PDO::PARAM_INT - ); - $subCatStmt->execute(); - if ($subCatData = $subCatStmt->fetchAll()) { - foreach ($subCatData as $key => $val) { - $catStmt->bindParam( - ':cid', - $val['category_id'], - PDO::PARAM_INT - ); - $catStmt->execute(); - $subCat = $catStmt->fetch(); - if (in_array($subCat['category_id'], $this->memberCatsAssignedToPage)) { - // Subcat assgined to page, only assign - // child of parent cat that is assigned - // to page. - $subCategories[$subCat['parent_id']][$subCat['category_id']] = $subCat['name']; - } elseif (in_array($subCat['parent_id'], $this->memberCatsAssignedToPage)) { - // Parent category assigned to page, add all - // children found - $subCategories[$subCat['parent_id']][$subCat['category_id']] = $subCat['name']; - } - } - } - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } - - if ( is_numeric($parentIdKey) - && array_key_exists($parentIdKey, $subCategories) - ) { - return $subCategories[$parentIdKey]; - } else { - $subCategories - = Toolkit_Common::arrayFlatten($subCategories, 2); - asort($subCategories); - return $subCategories; - } - } catch (PDOException $e) { - return Toolkit_Common::handleError($e); - } - } - - // }}} - - // {{{ toHtml() - - /** - * Renders the form - * - * sets the page the form should be redirected to instead of coming back - * around to itself. - * - * @param array $flexyOpts Flexy template engine options - * @param Toolkit_Toolbox_PageGatewayAbstract $pageGateway Page gateway - * - * @return string The rendered form - * @access public - */ - public function toHtml( - array $flexyOpts, - Toolkit_Toolbox_PageGatewayAbstract $pageGateway - ) { - $GLOBALS['bottomScripts'][] - = BASE_URL . 'Toolkit/Members/libjs/business-search.js'; - - $GLOBALS['styleSheets'][] = BASE_URL . 'Toolkit/Members/css/member.css'; - - // We need to validate (and freeze if needed) - // before we render the form. That way the - // template knows about any errors on the form. - $this->validated = $this->validate(); - - $page = $pageGateway->find($this->_catid); - - // ProcessData handles settingup the lat/lon coordinates if they were not entered - // into the form. these values ar calculated and then inserted into the forms - // element values. So we need to process the data first and then render the form. - $this->setupRenderers($flexyOpts); - - return $this->template->bufferedOutputObject($this->view); - } - - // }}} - - // {{{ setCatId() - - /** - * set the catid to use in the form - * - * @param integer $catid page catid - * - * @return PEAR Error return a PEAR error if an invalid catid is passed in - * @access public - */ - public function setCatId($catid) - { - if (ctype_digit((string)$catid)) { - $this->_catid = $catid; - } else { - return PEAR::raiseError('Invalid catid'); - } - } - - // }}} - // {{{ setPageMemberCategories() - - /** - * Relate toolbox categories with main member categories - * - * @param Toolkit_Toolbox_GatewayAbstract $gateway Page gateway to get categories from - * - * @return array toolbox -> category relations - * @access public - */ - public function setPageMemberCategories( - Toolkit_Toolbox_GatewayAbstract $gateway - ) { - $page = $gateway->find($this->_catid); - - $this->memberCatsAssignedToPage = $page['member_categories']; - - // If there's no member category filter selected, use all with members - if (count($this->memberCatsAssignedToPage) == 0) { - $sql = "SELECT DISTINCT c.category_id - FROM category c - WHERE ( - c.category_id IN ( - SELECT distinct c.category_id - FROM category c, member_category mc, member m - WHERE c.parent_id = 0 - AND c.category_id = mc.category_id - AND mc.member_id = m.member_id - AND m.active - ) - ) - OR ( - c.category_id IN ( - SELECT distinct sc.parent_id - FROM category sc, member_category smc, member sm - WHERE sc.parent_id > 0 - AND sc.parent_id != sc.category_id - AND sc.category_id = smc.category_id - AND smc.member_id = sm.member_id - AND sm.active - ) - ) - ;"; - $mcstmt = $this->dbh->prepare($sql); - $mcstmt->execute(); - while ($row = $mcstmt->fetch()) { - $this->memberCatsAssignedToPage[] = $row['category_id']; - } - $page['member_categories'] = $this->memberCatsAssignedToPage; - - // Otherwise add any subgategories for the selected cats with active members - } else { - - $sql = "SELECT DISTINCT c.category_id - FROM category c, member_category mc, member m - WHERE c.category_id = mc.category_id - AND m.member_id = mc.member_id - AND m.active"; - if (is_array($this->memberCatsAssignedToPage) - && !empty($this->memberCatsAssignedToPage)) { - $mcats = implode(',', $this->memberCatsAssignedToPage); - $sql .= " AND c.parent_id IN ($mcats)"; - } - $mcstmt = $this->dbh->prepare($sql); - $mcstmt->execute(); - while ($row = $mcstmt->fetch()) { - $this->memberCatsAssignedToPage[] = $row['category_id']; - } - $page['member_categories'] = $this->memberCatsAssignedToPage; - } - - return $page['member_categories']; - } - - // }}} - // {{{ setPageMemberRegions() - - /** - * Relate toolbox member cities - * - * @param Toolkit_Toolbox_GatewayAbstract $gateway Page gateway to get categories from - * - * @return array toolbox -> category relations - * @access public - */ - public function setPageMemberRegions( - Toolkit_Toolbox_GatewayAbstract $gateway - ) { - $page = $gateway->find($this->_catid); - $this->memberRegionsAssignedToPage = $page['member_regions']; - - // If no regions specified then use all regions - if (count($this->memberRegionsAssignedToPage) == 0) { - $sql .= " - SELECT DISTINCT region - FROM member - WHERE active - AND region is not null;"; - $stmt = $this->dbh->prepare($sql); - $stmt->execute(); - while ($row = $stmt->fetch()) { - $this->memberRegionsAssignedToPage[] = $row['region']; - } - $page['member_regions'] = $this->memberRegionsAssignedToPage; - } - - return $page['member_regions']; - } - - // }}} - // {{{ setupRenderers() - - /** - * Sets up the Flexy template - * - * @param array $flexyOpts Flexy template engine options - * - * @return void - * @access protected - */ - protected function setupRenderers(array $flexyOpts) - { - $renderer = new HTML_QuickForm_Renderer_Object(true); - - $this->accept($renderer); - - $this->template = new HTML_Template_Flexy($flexyOpts); - - // Make the view a copy of the $this object - // That way we have access to call functions in - // this class from within the template. - $this->view = $this; - $this->view->form = $renderer->toObject(); - $this->template->compile($this->formTemplate); - } - - // }}} -} -?> -- 2.17.1