コード例 #1
0
 public static function regionSearch($searchTerm)
 {
     if ($searchTerm == 25) {
         return FM_Components_Util_LimeCard::statenIslandSearch();
     }
     if ($searchTerm == 26) {
         return FM_Components_Util_LimeCard::oceanCountySearch();
     }
     $regions = array();
     $towns = FM_Components_Util_Region::getTownIdsByRegion($searchTerm);
     foreach ($towns as $index => $town) {
         $regions[] = $town['id'];
     }
     $model = new FM_Models_FM_LimeCard();
     $nonOrg = $model->regionSearch($searchTerm);
     $orgDataModel = new FM_Models_FM_Orgdata();
     $orgs = $orgDataModel->regionSearch($regions);
     $orgArray = array();
     foreach (array_merge($orgs, $nonOrg) as $index => $org) {
         if (array_key_exists($org['name'], $orgArray)) {
             $orgArray[$org['name']]['categories'][] = $org['catName'];
         } else {
             $orgArray[$org['name']]['record'] = $org;
             $orgArray[$org['name']]['categories'][] = $org['catName'];
         }
     }
     return $orgArray;
 }
コード例 #2
0
 public function buildFromNpSearchObj($searchComponent)
 {
     if (count($regions = $searchComponent->getRegions())) {
         foreach ($regions as $key => $regionId) {
             $towns = FM_Components_Util_Region::getTownIdsByRegion($regionId);
             foreach ($towns as $index => $town) {
                 $searchComponent->addTown($town);
             }
         }
     }
     switch ($searchComponent->getType()) {
         case 3:
             $table = ' FM.orgdata ';
             break;
     }
     $query = "SELECT o.* FROM FM.orgdata o ";
     if (count($towns = $searchComponent->getTowns())) {
         $query .= " JOIN FM.org_town ot ON ot.orgId = o.id ";
     }
     if (count($categories = $searchComponent->getCategories())) {
         $query .= " LEFT OUTER JOIN FM.nporg_cat bc ON bc.orgId = o.id ";
     }
     if ($sports = count($categories = $searchComponent->getCategories()) && in_array(12, $categories)) {
         $query .= " LEFT OUTER JOIN FM.orgdata_sports sc ON sc.orgId = o.id ";
     }
     $query .= "WHERE ";
     $i = 0;
     if (count($towns)) {
         $i++;
         $query .= " ot.townId IN (" . implode(' , ', $towns) . ") AND ";
     }
     if (count($categories) && !$sports) {
         $i++;
         $query .= " bc.catId IN (" . implode(' , ', $categories) . ") AND ";
     } else {
         if (count($categories)) {
             $i++;
             $query .= " (bc.catId IN (" . implode(' , ', $categories) . ") OR sc.category > 0 ) AND ";
         }
     }
     if (count($keywords = $searchComponent->getkeywords())) {
         $i++;
         $query .= '(';
         foreach ($keywords as $index => $value) {
             $query .= " o.description LIKE ('%" . $value . "%') OR  o.keywords LIKE ('%" . $value . "%') OR o.name LIKE ('%" . $value . "%') OR ";
         }
         $query = substr($query, 0, -4) . ') AND ';
     }
     if ($zip = $searchComponent->getZipcode()) {
         $i++;
         $query .= " o.zip = {$zip} AND ";
     }
     if (($type = $searchComponent->getType()) && !$sports && count($categories)) {
         $i++;
         $query .= " o.type = 3 AND ";
     } else {
         if (($type = $searchComponent->getType()) && $sports || !count($categories)) {
             $i++;
             $query .= " o.type IN (3 , 4)  AND ";
         }
     }
     if ($i > 0) {
         $query = substr($query, 0, -4);
     } else {
         $query = substr($query, 0, -6);
     }
     $query .= "GROUP BY o.id ORDER BY o.active DESC, o.name ASC ";
     //print $query;exit;
     return $this->getMultipleRows($query);
 }