static function set_can_be_child_off($a) { self::$can_be_child_of = $a; }
function createnewbusinesslistingfrompoint($request) { if (!isset($_GET["address"])) { $addressArray = array(); $address = ''; } else { $addressArray = unserialize($_GET["address"]); $address = $addressArray["address"]; } if (!isset($_GET["name"])) { $name = ''; } else { $name = Convert::raw2xml($_GET["name"]); } if (!isset($_GET["parent"])) { $parent = 0; } else { $parent = intval($_GET["parent"]); } if ($member = Member::currentMember()) { if ($name) { if ($parent && ($parentPage = DataObject::get_by_id("SiteTree", $parent))) { if ($address && count($addressArray)) { $allowedParents = BusinessPage::get_can_be_child_off(); if (is_array($allowedParents) && in_array($parentPage->ClassName, $allowedParents)) { $extension = ''; if (Versioned::current_stage() == "Live") { $extension = "_Live"; } $page = DataObject::get_one("BusinessPage", "ParentID = " . $parentPage->ID . " AND SiteTree{$extension}.Title = '" . Convert::raw2sql($name) . "'"); if ($page) { //do nothing } else { $page = new BusinessPage(); $page->Title = $name; $page->MenuTitle = $name; $page->MetaTitle = $name; $page->Email = $member->Email; $page->ParentID = $parentPage->ID; $page->writeToStage('Stage'); $page->publish('Stage', 'Live'); $page->flushCache(); $page->Members()->add($member); $member->addToGroupByCode(BusinessPage::get_member_group_code()); } $point = new GoogleMapLocationsObject(); $point->addDataFromArray($addressArray); $point->ParentID = $page->ID; $point->write(); Director::redirect($page->Link()); return; } else { Director::redirect($this->linkWithExtras(array("address" => $address, "name" => $name, "error" => "Could not find correct parent page type "))); return; } } else { Director::redirect($this->linkWithExtras(array("address" => $address, "name" => $name, "error" => "Could not find address page."))); return; } } else { Director::redirect($this->linkWithExtras(array("address" => $address, "name" => $name, "error" => "Could not find parent page."))); return; } } Director::redirect($this->linkWithExtras(array("address" => $address, "name" => $name, "error" => "Could not find listing name."))); return; } else { Security::permissionFailure($this, "You must have an account and be logged in to create new a new listing."); } }