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.");
     }
 }