diff --git a/modules/cms/classes/Page.php b/modules/cms/classes/Page.php index 8e6775a0e..a6ea9b62c 100644 --- a/modules/cms/classes/Page.php +++ b/modules/cms/classes/Page.php @@ -15,7 +15,7 @@ class Page extends CmsCompoundObject { protected $settingsValidationRules = [ 'title' => 'required', - 'url' => ['required', 'regex:/^\/[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i'] + 'url' => ['required', 'regex:/^\/[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i'] ]; /** @@ -72,4 +72,29 @@ class Page extends CmsCompoundObject return $result; } + + /** + * Helper that returns a nicer list of pages for use in dropdowns. + * @return array + */ + public static function getNameList() + { + $result = []; + $pages = self::sortBy('baseFileName')->all(); + foreach ($pages as $page) { + $result[$page->baseFileName] = $page->title.' ('.$page->baseFileName.')'; + } + + return $result; + } + + /** + * Helper that makes a URL for a page in the active theme. + * @return string + */ + public static function url($page, $params = []) + { + $controller = new Controller; + return $controller->pageUrl($page, $params); + } }