Exemple #1
0
 /**
  * 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;
 }
Exemple #2
0
 /**
  *  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;
 }
Exemple #3
0
 /**
  * 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);
                 }
             }
         }
     }
 }
Exemple #4
0
 /**
  *  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;
 }