/** * Add city areas to the search * * @access public * @since unknown * @param mixed $city_area */ public function addCityArea($city_area = array()) { if (is_array($city_area)) { foreach ($city_area as $c) { $c = trim($c); if ($c != '') { if (is_numeric($c)) { $this->city_areas[] = sprintf("%st_item_location.fk_i_city_area_id = %d ", DB_TABLE_PREFIX, $c); } else { $_city_area = CityArea::newInstance()->findByName($c); if (!empty($_city_area)) { $this->city_areas[] = sprintf("%st_item_location.fk_i_city_area_id = %d ", DB_TABLE_PREFIX, $_city_area['pk_i_id']); } else { $this->city_areas[] = sprintf("%st_item_location.s_city_area LIKE '%%%s%%' ", DB_TABLE_PREFIX, $c); } } } } } else { $city_area = trim($city_area); if ($city_area != "") { if (is_numeric($city_area)) { $this->city_areas[] = sprintf("%st_item_location.fk_i_city_area_id = %d ", DB_TABLE_PREFIX, $city_area); } else { echo "debug"; $_city_area = CityArea::newInstance()->findByName($city_area); if (!empty($_city_area)) { $this->city_areas[] = sprintf("%st_item_location.fk_i_city_area_id = %d ", DB_TABLE_PREFIX, $_city_area['pk_i_id']); } else { $this->city_areas[] = sprintf("%st_item_location.s_city_area LIKE '%%%s%%' ", DB_TABLE_PREFIX, $city_area); } } } } }
/** * Delete a country with its regions, cities,.. * * @access public * @since 2.4 * @param $pk * @return boolean */ function deleteByPrimaryKey($pk) { $mRegions = Region::NewInstance(); $aRegions = $mRegions->findByCountry($pk); $mCities = City::newInstance(); $mCityAreas = CityArea::newInstance(); $result = true; foreach ($aRegions as $region) { $aCities = $mCities->findByRegion($region['pk_i_id']); foreach ($aCities as $city) { $aCityAreas = $mCityAreas->findByCity($city['pk_i_id']); foreach ($aCityAreas as $cityArea) { if (!$mCityAreas->delete(array('pk_i_id' => $cityArea['pk_i_id']))) { $result = false; } } if (!$mCities->delete(array('pk_i_id' => $city['pk_i_id']))) { $result = false; } } if (!$mRegions->delete(array('pk_i_id' => $region['pk_i_id']))) { $result = false; } } if (!$this->delete(array('pk_c_code' => $pk))) { $result = false; } return $result; }