/** * Saves the page url and returns it * @param PageUrl $pageUrl The page url * @return PageUrl Returns the page url with properties attached */ public function Save(PageUrl $pageUrl = null) { $exists = $pageUrl && $pageUrl->Exists(); $page = $this->Value('Page') ? Page::Schema()->ByID($this->Value('Page')) : null; if (!$page) { if ($exists) { $pageUrl->Delete(); } return null; } if (!$exists) { $pageUrl = new PageUrl(); } $pageUrl->SetPage($page); $pageUrl->SetFragment($this->Value('Fragment')); $pageUrl->Save(); $this->SaveParams($pageUrl); return $pageUrl; }