public function addAction() { $this->view->title = ucfirst("Country - Add"); $this->view->headTitle($this->view->title); $form = new Admin_Form_Country(); $this->view->form = $form; $this->view->successMsg = ""; if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { $usersNs = new Zend_Session_Namespace("members"); $formData['userId'] = $usersNs->userId; $formData['type'] = $this->_getParam('type'); $this->view->warningMsg = ''; $model = new Application_Model_Country($formData); $id = $model->save($model); $form->reset(); $this->view->successMsg = "Country added successfully. Country Id : {$id}"; } else { $form->populate($formData); } } }
public function xmlAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); echo "<pre>"; $filename = "data/sample - Chiang Mai.xml"; $xml_parser = new Base_Xml_Parser(null, $filename); $continentName = $xml_parser->Data['identification']['geoTag1']; $countryName = $xml_parser->Data['identification']['geoTag2']; $cityName = $xml_parser->Data['identification']['geoTag3']; $regionName = $cityName; $stateName = $cityName; //----insert into continent $continent_id = 0; $continentM = new Application_Model_Continent(); $continent = $continentM->fetchRow("name='{$continentName}'"); if (false === $continent) { $continentM->setName($continentName); $continent_id = $continentM->save(); } else { $continent_id = $continent->getId(); } //-------------------------- //----insert into country $country_id = 0; $countryM = new Application_Model_Country(); $country = $countryM->fetchRow("name='{$countryName}' and continent_id='{$continent_id}'"); if (false === $country) { $countryM->setName($countryName); $countryM->setContinentId($continent_id); $country_id = $countryM->save(); } else { $country_id = $country->getId(); } //------------------------------- ///------insert into region $region_id = 0; $regionM = new Application_Model_Region(); $region = $regionM->fetchRow("name='{$regionName}' and country_id='{$country_id}'"); if (false === $region) { $regionM->setName($regionName); $regionM->setCountryId($country_id); $region_id = $regionM->save(); } else { $region_id = $region->getId(); } //------------------------ ///------insert into state $state_id = 0; $stateM = new Application_Model_State(); $state = $stateM->fetchRow("name='{$stateName}' and region_id='{$region_id}'"); if (false === $state) { $stateM->setName($stateName); $stateM->setRegionId($region_id); $state_id = $stateM->save(); } else { $state_id = $state->getId(); } //------------------------ ///------insert into city $city_id = 0; $cityM = new Application_Model_City(); $city = $cityM->fetchRow("name='{$cityName}' and country_id='{$state_id}'"); if (false === $city) { $cityM->setName($cityName); $cityM->setCountryId($country_id); $city_id = $cityM->save(); } else { $city_id = $city->getId(); } //------------------------ if ($continent_id > 0 && $country_id > 0 && $city_id > 0) { //it is city $locationType = "city"; $locationId = $city_id; } else { if ($continent_id > 0 && $country_id > 0) { //it is country $locationType = "country"; $locationId = $country_id; } else { if ($continent_id > 0) { //it is continent $locationType = "continent"; $locationId = $continent_id; } } } ///////////Remove///////// $destinationM = new Application_Model_Destination(); $destinationM->delete(); $experiencesM = new Application_Model_Experiences(); $experiencesM->delete(); $practicalitiesM = new Application_Model_Practicalities(); $practicalitiesM->delete(); //------------------------------ $title = $xml_parser->Data['content']['title']; $introduction = $xml_parser->Data['content']['introduction']; $destinationM = new Application_Model_Destination(); $destinationM->setTitle($title); $destinationM->setIntroduction($introduction); $destinationM->setLocationId($locationId); $destinationM->setLocationType($locationType); $destination_id = $destinationM->save(); foreach ($xml_parser->Data['content']['experiences'] as $experiences) { foreach ($experiences as $_item) { $experiencesM = new Application_Model_Experiences(); $experiencesM->setTitle($_item['title']); $experiencesM->setDestinationId($destination_id); $experiencesM->setCopy($_item['copy']); $experiencesM->save(); } } foreach ($xml_parser->Data['content']['practicalities'] as $practicalities) { foreach ($practicalities as $_item) { $practicalitiesM = new Application_Model_Practicalities(); $practicalitiesM->setTitle($_item['title']); $practicalitiesM->setDestinationId($destination_id); $practicalitiesM->setCopy($_item['copy']); $practicalitiesM->save(); } } //print_r($xml_parser->Data); }
/** * @Created By : Mahipal Singh Adhikari * @Created On : 2-Dec-2010 * @Description : Used to parse Lonely Planet Country XML and save data to database table */ public function lonelyXmlAction() { //disable layout and view $this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); //create Db and Sanitize class objects $db = Zend_Registry::get("db"); $sanitizeM = new Base_Sanitize(); //Truncate or Empty table first $db->query("TRUNCATE TABLE lonely_planet_country"); //$directory="data/1615/xml/20110119/"; $directory = "data/1615/xml/20110304/"; //$directory="data/1615/xml/test/"; if (!($dp = opendir($directory))) { die("Cannot open {$directory}."); } $countFiles = 1; while ($filename = readdir($dp)) { $file_path = ""; if (is_dir($filename)) { continue; } else { if ($filename != '.' && $filename != '..') { $fileExtension = explode(".", $filename); $fileExtension = strtolower($fileExtension[count($fileExtension) - 1]); if ($fileExtension == "xml") { $file_path = $directory . $filename; //open and replace HTMl tags from XML file and rewrite $fileContent = ""; $fh = ""; $fileContent = file_get_contents($file_path); $fileContent = $this->replaceText($fileContent); $fh = fopen($file_path, 'w+') or die("can't open file"); fwrite($fh, $fileContent); fclose($fh); //now load XML files and parse XMLs $data = array(); echo "<br><br>Strart processing file==><b>" . $file_path . "</b> counter=>" . $countFiles; $destination = simplexml_load_file($file_path); $data["node_id"] = (string) $destination["node_id"]; $data["destination_name"] = (string) $sanitizeM->clearInputs($destination->destination_name); $data["full_destination_name"] = (string) $destination->general->full_destination_name; $data["intro_mini"] = (string) $this->replaceText($destination->general->intro_mini, true); $data["intro_short"] = (string) $this->replaceText($destination->general->intro_short, true); $data["warning_title"] = (string) $destination->general->warning_title; $data["warning_text"] = (string) $this->replaceText($destination->general->warning_text, true); $data["warning_position"] = (string) $destination->general->warning_position; $data["warning_severity"] = (string) $destination->general->warning_severity; //timezones if ($destination->general->timezones) { $tz = 0; $arrayTimezone = array(); foreach ($destination->general->timezones->children() as $timezone) { $arrayTimezone[$tz]['gmt_utc'] = (string) $timezone->gmt_utc; $tz++; } $data["timezones"] = serialize($arrayTimezone); } $data["weights_measures_system"] = (string) $destination->general->weights_measures_system; $data["capital_city"] = (string) $destination->general->capital_city; //government leaders if ($destination->government->leaders) { $ld = 0; $arrayLeaders = array(); foreach ($destination->government->leaders->children() as $leader) { $arrayLeaders[$ld]['leader_name'] = (string) $leader->leader_name; $arrayLeaders[$ld]['leader_type'] = (string) $leader->leader_type; $arrayLeaders[$ld]['leader_title'] = (string) $leader->leader_title; $ld++; } $data["leaders"] = serialize($arrayLeaders); } $data["government_type"] = (string) $destination->government->government_type; $data["area_sqkm"] = (string) $destination->environment->area_sqkm; $data["population"] = (string) $destination->environment->population; //languages $i = 0; if ($destination->society->language_spokens) { $arrayLanguage = array(); foreach ($destination->society->language_spokens->children() as $language_spoken) { $arrayLanguage[$i]['language_spoken_type'] = (string) $language_spoken->language_spoken_type; $arrayLanguage[$i]['language_spoken_name'] = (string) $language_spoken->language_spoken_name; if ($language_spoken->language_spoken_description) { $arrayLanguage[$i]['language_spoken_description'] = (string) $this->replaceText($language_spoken->language_spoken_description, true); } $i++; } $data["language_spokens"] = serialize($arrayLanguage); } $data["religion"] = (string) $this->replaceText($destination->society->religion, true); $data["currency_code"] = (string) $destination->economy->currency_code; $data["currency_name"] = (string) $destination->economy->currency_name; $data["currency_symbol"] = (string) $destination->economy->currency_symbol; $data["currency_unit"] = (string) $destination->economy->currency_unit; //$data["relative_cost_rooms"]=serialize($destination->money->relative_cost_rooms); //$data["relative_cost_meals"]=serialize($destination->money->relative_cost_meals); $pre = 'pre-departure'; $when_to_go = $destination->{$pre}->when_to_go; $data["when_to_go"] = (string) $this->replaceText($destination->{$pre}->when_to_go, true); $data["visas_overview"] = (string) $this->replaceText($destination->{$pre}->visas_overview, true); //electrical plugs if ($destination->{$pre}->electrical_plugs) { $ep = 0; $arrayElectricalPlugs = array(); foreach ($destination->{$pre}->electrical_plugs->children() as $electrical_plugs) { $arrayElectricalPlugs[$ep]['image_filename'] = (string) $electrical_plugs->image_filename; $arrayElectricalPlugs[$ep]['electrical_plug_description'] = (string) $this->replaceText($electrical_plugs->electrical_plug_description, true); $ep++; } $data["electrical_plugs"] = serialize($arrayElectricalPlugs); } $data["electricity_voltage"] = (string) $destination->{$pre}->electricity_voltage; $data["electricity_hz"] = (string) $destination->{$pre}->electricity_hz; $data["dangers_and_annoyances"] = (string) $this->replaceText($destination->health->dangers_and_annoyances, true); //health conditions if ($destination->health->health_conditions) { $arrHealthCondition = array(); foreach ($destination->health->health_conditions->children() as $healthCondition) { $type = ""; $type = (string) $healthCondition->health_condition_type; $arrHealthCondition[$type] = (string) $this->replaceText($healthCondition->health_condition_description, true); } $data["health_conditions"] = serialize($arrHealthCondition); } $data["weather_overview"] = (string) $this->replaceText($destination->weather->weather_overview, true); $data["country_dialling_code"] = (string) $destination->communication->country_dialling_code; //transports if ($destination->transport) { $arrTransport = array(); foreach ($destination->transport->destination_transport_topics->children() as $transport) { $transport_type = ""; $transport_type = (string) $transport->transport_type; $arrTransport[$transport_type] = (string) $this->replaceText($transport->transport_description, true); } $data["transport"] = serialize($arrTransport); } $data["history_pre_20c"] = (string) $this->replaceText($destination->culture->history_pre_20c, true); $data["history_modern"] = (string) $this->replaceText($destination->culture->history_modern, true); $data["history_recent"] = (string) $this->replaceText($destination->culture->history_recent, true); //$data["product_info"]=serialize($destination->product_info); //get images if ($destination->images) { $img = 0; $arrayImages = array(); foreach ($destination->images->children() as $image) { $arrayImages[$img]['image_caption'] = (string) $image->image_caption; $arrayImages[$img]['image_photographer'] = (string) $image->image_photographer; $arrayImages[$img]['image_filename'] = (string) $image->image_filename; $arrayImages[$img]['image_thumbnail_filename'] = (string) $image->image_thumbnail_filename; $img++; } $data["images"] = serialize($arrayImages); } //get maps if ($destination->map) { $arrayMaps = array(); $arrayMaps['map_name'] = (string) $destination->map->map_name; $arrayMaps['map_filename'] = (string) $destination->map->map_filename; $arrayMaps['map_thumbnail_filename'] = (string) $destination->map->map_thumbnail_filename; $data["map"] = serialize($arrayMaps); } $i = 0; foreach ($destination->pois->children() as $poi) { $arrayPoi[$i]['poi_name'] = (string) $poi->poi_name; $address_parts = (array) $poi->address_parts; $addressPart = array(); if (isset($address_parts['address_part']) && count($address_parts['address_part']) > 0) { foreach ($address_parts['address_part'] as $address_part) { $addressPart[] = (array) $address_part; } $arrayPoi[$i]['address_parts'] = $addressPart; } $arrayPoi[$i]['address_postcode'] = (string) $poi->address_postcode; $arrayPoi[$i]['poi_web'] = (string) $poi->poi_web; $arrayPoi[$i]['review_summary'] = (string) $this->replaceText($poi->review_summary, true); $arrayPoi[$i]['review_full'] = (string) $this->replaceText($poi->review_full, true); $arrayPoi[$i]['keywords'] = (array) $poi->keywords; $i++; } $data["pois"] = serialize($arrayPoi); //attrations if ($destination->attractions) { $attr = 0; $arrayAttr = array(); foreach ($destination->attractions->children() as $attraction) { $arrayAttr[$attr]['destination_name'] = (string) $attraction->destination_name; $arrayAttr[$attr]['full_destination_name'] = (string) $attraction->general->full_destination_name; $arrayAttr[$attr]['intro_short'] = (string) $this->replaceText($attraction->general->intro_short, true); $arrayAttr[$attr]['intro_medium'] = (string) $this->replaceText($attraction->general->intro_medium, true); $attr++; } $data["attractions"] = serialize($arrayAttr); } $data["copyright"] = (string) $destination->copyright; $data["addedon"] = time(); /*----Country Info----*/ $countryM = new Application_Model_Country(); $countryName = $sanitizeM->clearInputs($data["destination_name"]); if (!get_magic_quotes_gpc()) { $countryName = addslashes($countryName); } //$countryName=@mb_convert_encoding($countryName, 'UTssssF8', 'auto'); $country = $countryM->fetchRow("name like '{$countryName}'"); if (false === $country) { //get country continent $continent_id = ""; $continent_id = $countryM->countryContinent($countryName); $countryName = $sanitizeM->clearInputs($data["destination_name"]); //if doesn't exists if (!$this->duplicateCountries($countryName)) { $countryM->setName($countryName); $countryM->setContinentId($continent_id); $country_id = $countryM->save(); } } else { $country_id = $country->getId(); } $data['country_id'] = $country_id; /*---------------*/ //check existing country record in lonely_planet_country table $lonelyM = new Application_Model_LonelyPlanetCountry(); $lonelyM = $lonelyM->fetchRow("country_id={$country_id}"); if (false !== $lonelyM) { $res = $db->update("lonely_planet_country", $data, "country_id={$country_id}"); } else { $res = $db->insert("lonely_planet_country", $data); } echo "<br>END File==><b>" . $file_path . "</b> has been processed, counter=>" . $countFiles; $countFiles++; } //end of if } } //end of else if } //end of while closedir($dp); //rename countries name $db->query("UPDATE country SET name='Bosnia and Herzogovina' WHERE name='Bosnia-Hercegovina'"); $db->query("UPDATE country SET name='Vatican City' WHERE name='Holy See'"); $db->query("UPDATE country SET name='Ivory Coast' WHERE name='Cote dIvoire'"); //delete countries for which no planet feeds data available //$sSQlQuery = "DELETE FROM country WHERE id IN(select t.id FROM (SELECT id FROM `country` WHERE id NOT IN (SELECT country_id FROM lonely_planet_country WHERE country_id IS NOT NULL)) AS t)"; //$db->query($sSQlQuery); }