/** * Setup pages... **/ public function requireDefaultRecords() { parent::requireDefaultRecords(); $bt = defined('DB::USE_ANSI_SQL') ? "\"" : "`"; $parents = DataObject::get("BrowseRegionsPage"); if ($parents && isset($_GET["geobuild"]) && $_GET["geobuild"] && $this->allowBrowseChildren()) { foreach ($parents as $parent) { if ($parent->CreateChildren && $parent->HiddenDataID) { echo "<li>creating cities for " . $parent->Title . "<ul>"; $cities = $this->getDataFromTable("cities", "RegionID = " . $parent->HiddenDataID, "City"); foreach ($cities as $city) { if (!DataObject::get_one("BrowseCitiesPage", "{$bt}BrowseAbstractPage{$bt}.{$bt}HiddenDataID{$bt} = " . $city["CityID"])) { $page = new BrowseCitiesPage(); $page->CreateCity($city, $parent); $page->destroy(); } } echo "</ul></li>"; } } $parents->destroy(); } }
/** * This static method creates a city page and all the required parent pages... *@param Int - $CityID: the ID for the city to create **/ public static function create_city_and_parents($CityID) { $cityPage = null; //check if the city exists at all $sql = ' SELECT cities.RegionID, regions.CountryID, countries.ContinentID From cities, regions, countries, continents WHERE cities.RegionID = regions.RegionID AND regions.CountryID = countries.CountryID AND countries.ContinentID = continents.ContinentID AND cities.CityID = ' . $CityID . ' LIMIT 1;'; $result = DB::query($sql); foreach ($result as $row) { break; } $abstractHelpPage = new BrowseAbstractPage(); if ($row) { //1 check if world exists if ($worldPage = DataObject::get_one("BrowseWorldPage")) { //do nothing } else { $worldPage = new BrowseWorldPage(); $name = "Find"; $worldPage->Title = $name; $worldPage->MetaTitle = $name; $worldPage->MenuTitle = $name; $worldPage->writeToStage('Stage'); $worldPage->publish('Stage', 'Live'); $worldPage->flushCache(); } //2 check if continent exists $ContinentID = $row["ContinentID"]; if ($continentPage = DataObject::get_one("BrowseContinentsPage", 'HiddenDataID = ' . $ContinentID)) { //debug::show("continent exists"); } else { //create continent $continents = $abstractHelpPage->getDataFromTable("continents", "ContinentID = " . $ContinentID, null); foreach ($continents as $continentData) { $continentPage = new BrowseContinentsPage(); $continentPage->CreateContinent($continentData, $worldPage); } } //3 check if country exists $CountryID = $row["CountryID"]; if ($countryPage = DataObject::get_one("BrowseCountriesPage", 'HiddenDataID = ' . $CountryID)) { //debug::show("country exists"); } else { //create Country $countries = $abstractHelpPage->getDataFromTable("countries", "CountryID = " . $CountryID, null); foreach ($countries as $countryData) { $countryPage = new BrowseCountriesPage(); $countryPage->CreateCountry($countryData, $continentPage); } } //4 check if region exists $RegionID = $row["RegionID"]; if ($regionPage = DataObject::get_one("BrowseRegionsPage", 'HiddenDataID = ' . $RegionID)) { //debug::show("region exists"); } else { //create region $regions = $abstractHelpPage->getDataFromTable("regions", "RegionID = " . $RegionID, null); foreach ($regions as $regionData) { $regionPage = new BrowseRegionsPage(); $regionPage->CreateRegion($regionData, $countryPage); } } if ($cityPage = DataObject::get_one("BrowseCitiesPage", 'HiddenDataID = ' . $CityID)) { //debug::show("city exists"); } else { //create region $cities = $abstractHelpPage->getDataFromTable("cities", "CityID = " . $CityID, null); foreach ($cities as $city) { $cityPage = new BrowseCitiesPage(); $cityPage->CreateCity($city, $regionPage); } } } return $cityPage; }
public function donewlistingform($data = null, $form = null) { //add new search record here.... if (!isset($data["NewListingAddress"])) { $data["NewListingAddress"] = ''; } if (!isset($data["NewListingName"])) { $data["NewListingName"] = ''; } $extension = ''; if (Versioned::current_stage() == "Live") { $extension = "_Live"; } if (DataObject::get_one("SiteTree", "\"SiteTree{$extension}\".\"Title\" = '" . Convert::raw2sql($data["NewListingName"]) . "'") || !$data["NewListingName"] || strlen($data["NewListingName"]) < 3) { $form->addErrorMessage('NewListingName', 'Sorry, but a listing with that name already exists.', "bad"); Director::redirectBack(); return; } $addressArray = $form->dataFieldByName("NewListingAddress")->getAddressArray(); if ($addressArray) { if (GoogleMapLocationsObject::pointExists($addressArray)) { $form->addErrorMessage('NewListingAddress', 'This address already exists for another listing. Please check the existing listings first to prevent double-ups OR use a more specific address.', "bad"); Director::redirectBack(); return; } $parentPage = BrowseCitiesPage::get_clostest_city_page($addressArray); if (!$parentPage) { $form->addErrorMessage('NewListingAddress', 'Location could not be found. ', "bad"); Director::redirectBack(); return; } $nextLink = $this->linkWithExtras(array("parent" => $parentPage->ID, "address" => $addressArray, "name" => $data["NewListingName"]), 'createnewbusinesslistingfrompoint'); if (!Member::currentMember()) { $nextLink = RegisterAndEditDetailsPage::link_for_going_to_page_via_making_user($nextLink); } Director::redirect($nextLink); return; } $nextLink = $this->linkWithExtras(array("address" => $data["NewListingAddress"], "name" => $data["NewListingName"])); Director::redirect($this->backwardLink); return; }