/** * Gets the first page url parameter * @return PageUrlParameter Returns the first parameter or null if none exists */ public function TopMost() { $sql = Access::SqlBuilder(); $tblParams = PageUrlParameter::Schema()->Table(); $where = $sql->Equals($tblParams->Field('PageUrl'), $sql->Value($this->pageUrl->GetID()))->And_($sql->IsNull($tblParams->Field('Previous'))); return PageUrlParameter::Schema()->First($where); }
/** * Gets the url for a page url entity * @param PageUrl $pageUrl The page url as stored in the database * @param array $additionalParameters Additional parameters; will override stored parameters with same keys * @return string Returns the page url */ static function Url(PageUrl $pageUrl, array $additionalParameters = array()) { $list = new PageParamListProvider($pageUrl); $params = $list->ToArray(); foreach ($additionalParameters as $key => $value) { $params[$key] = $value; } return self::PageUrl($pageUrl->GetPage(), $params, $pageUrl->GetFragment()); }
/** * Clears the parameters of the page url * @param PageUrl $pageUrl The page url */ private function ClearParams(PageUrl $pageUrl) { $sql = Access::SqlBuilder(); $tblParams = PageUrlParameter::Schema()->Table(); $where = $sql->Equals($tblParams->Field('PageUrl'), $sql->Value($pageUrl->GetID())); PageUrlParameter::Schema()->Delete($where); }