/** * It creates a new CityArea object class ir if it has been created * before, it return the previous object * * @access public * @since unknown * @return CityArea */ public static function newInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; }
/** * Delete a city with its city areas * * @access public * @since 3.1 * @param $pk * @return int number of failed deletions or 0 in case of none */ function deleteByPrimaryKey($pk) { $mCityAreas = CityArea::NewInstance(); $aCityAreas = $mCityAreas->findByCity($pk); $result = 0; foreach ($aCityAreas as $cityarea) { $result += $mCityAreas->deleteByPrimaryKey($cityarea['pk_i_id']); } Item::newInstance()->deleteByCity($pk); CityStats::newInstance()->delete(array('fk_i_city_id' => $pk)); User::newInstance()->update(array('fk_i_city_id' => null, 's_city' => ''), array('fk_i_city_id' => $pk)); if (!$this->delete(array('pk_i_id' => $pk))) { $result++; } return $result; }
/** * 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; }