From 20e279bf4ce2af6ec38b30cfff31e0d6133613b6 Mon Sep 17 00:00:00 2001 From: Sam Georges Date: Thu, 21 Aug 2014 19:46:32 +1000 Subject: [PATCH] Page URLs now support dots (.) Add hook for cms.page.init --- modules/cms/classes/Controller.php | 9 +++++++++ modules/cms/classes/Page.php | 2 +- modules/cms/lang/de/lang.php | 2 +- modules/cms/lang/en/lang.php | 2 +- modules/cms/lang/fr/lang.php | 2 +- modules/cms/lang/it/lang.php | 2 +- modules/cms/lang/ja/lang.php | 2 +- modules/cms/lang/nl/lang.php | 2 +- modules/cms/lang/pt-br/lang.php | 2 +- modules/cms/lang/ro/lang.php | 2 +- modules/cms/lang/ru/lang.php | 2 +- modules/cms/lang/sv/lang.php | 2 +- modules/cms/lang/tr/lang.php | 2 +- 13 files changed, 21 insertions(+), 12 deletions(-) diff --git a/modules/cms/classes/Controller.php b/modules/cms/classes/Controller.php index 42f0598e2..ae01bfc67 100644 --- a/modules/cms/classes/Controller.php +++ b/modules/cms/classes/Controller.php @@ -195,6 +195,15 @@ class Controller extends BaseController $this->pageObj->onInit(); CmsException::unmask(); + /* + * Extensibility + */ + if ($event = $this->fireEvent('page.init', [$url, $page], true)) + return $event; + + if ($event = Event::fire('cms.page.init', [$this, $url, $page], true)) + return $event; + /* * Execute AJAX event */ diff --git a/modules/cms/classes/Page.php b/modules/cms/classes/Page.php index a6ea9b62c..a51df7695 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'] ]; /** diff --git a/modules/cms/lang/de/lang.php b/modules/cms/lang/de/lang.php index 9d5f125f9..4bbabe6a3 100644 --- a/modules/cms/lang/de/lang.php +++ b/modules/cms/lang/de/lang.php @@ -34,7 +34,7 @@ return [ 'menu_label' => 'Seiten', 'no_list_records' => 'Keine Seiten gefunden', 'new' => 'Neue Seite', - 'invalid_url' => 'Ungültiges URL-Format. Die URL muss mit einem Slash beginnen und darf nur Ziffern, lateinische Zeichen und die folgenden Symbole beinhalten: _-[]:?|/+*', + 'invalid_url' => 'Ungültiges URL-Format. Die URL muss mit einem Slash beginnen und darf nur Ziffern, lateinische Zeichen und die folgenden Symbole beinhalten: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Wollen Sie die ausgewählten Seiten wirklich löschen?', 'delete_confirm_single' => 'Wollen Sie diese Seite wirklich löschen?', 'no_layout' => '-- Kein Layout --' diff --git a/modules/cms/lang/en/lang.php b/modules/cms/lang/en/lang.php index 21e130ddb..f29007641 100644 --- a/modules/cms/lang/en/lang.php +++ b/modules/cms/lang/en/lang.php @@ -40,7 +40,7 @@ return [ 'menu_label' => 'Pages', 'no_list_records' => 'No pages found', 'new' => 'New page', - 'invalid_url' => 'Invalid URL format. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: _-[]:?|/+*', + 'invalid_url' => 'Invalid URL format. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Do you really want to delete selected pages?', 'delete_confirm_single' => 'Do you really want delete this page?', 'no_layout' => '-- no layout --' diff --git a/modules/cms/lang/fr/lang.php b/modules/cms/lang/fr/lang.php index 3dcfbc514..21edf845a 100644 --- a/modules/cms/lang/fr/lang.php +++ b/modules/cms/lang/fr/lang.php @@ -40,7 +40,7 @@ return [ 'menu_label' => 'Pages', 'no_list_records' => 'Aucune page trouvée', 'new' => 'Nouvelle page', - 'invalid_url' => 'Format d\'URL invalide. L\'URL doit commencer par un / et peut contenit des chiffres, des lettres et les symboles suivants: _-[]:?|/+*', + 'invalid_url' => 'Format d\'URL invalide. L\'URL doit commencer par un / et peut contenit des chiffres, des lettres et les symboles suivants: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Voulez-vous vraiment supprimer les pages sélectionnées ?', 'delete_confirm_single' => 'Voulez-vous vraiment supprimer cette page ?', 'no_layout' => '-- aucun layout --' diff --git a/modules/cms/lang/it/lang.php b/modules/cms/lang/it/lang.php index f73a2f5c5..406d4ca30 100644 --- a/modules/cms/lang/it/lang.php +++ b/modules/cms/lang/it/lang.php @@ -40,7 +40,7 @@ return [ 'menu_label' => 'Pagine', 'no_list_records' => 'Pagine non trovate', 'new' => 'Nuova pagina', - 'invalid_url' => 'Formato URL non valido. L\'URL deve iniziare con una barra e può contenere numeri, lettere e i seguenti simboli: _-[]:?|/+*', + 'invalid_url' => 'Formato URL non valido. L\'URL deve iniziare con una barra e può contenere numeri, lettere e i seguenti simboli: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Sei sicuro di voler eliminare le pagine selezionate?', 'delete_confirm_single' => 'Sei sicuro di voler eliminare questa pagina?', 'no_layout' => '-- nessun layout --' diff --git a/modules/cms/lang/ja/lang.php b/modules/cms/lang/ja/lang.php index 9082fdf6c..8a087e347 100644 --- a/modules/cms/lang/ja/lang.php +++ b/modules/cms/lang/ja/lang.php @@ -34,7 +34,7 @@ return [ 'menu_label' => 'ページ', 'no_list_records' => 'ページが見つかりません', 'new' => '新ページ', - 'invalid_url' => '正しくないURL形式。URLはスラッシュ(/)で始まり、数字、ラテン文字、_-[]:?|/+*で構成します。', + 'invalid_url' => '正しくないURL形式。URLはスラッシュ(/)で始まり、数字、ラテン文字、._-[]:?|/+*で構成します。', 'delete_confirm_multiple' => '指定した全ページを本当に削除しますか?', 'delete_confirm_single' => '本当にこのページを削除しますか?', 'no_layout' => '-- レイアウト無し --' diff --git a/modules/cms/lang/nl/lang.php b/modules/cms/lang/nl/lang.php index 0a59ce1d7..a28d5597f 100644 --- a/modules/cms/lang/nl/lang.php +++ b/modules/cms/lang/nl/lang.php @@ -34,7 +34,7 @@ return [ 'menu_label' => 'Pagina\'s', 'no_list_records' => 'Geen pagina\'s gevonden', 'new' => 'Nieuwe pagina', - 'invalid_url' => 'Ongeldig URL formaat. De URL moet beginnen met een schuine streep en mag enkel bestaan uit letters, cijfers en de volgende tekens: _-[]:?|/+*', + 'invalid_url' => 'Ongeldig URL formaat. De URL moet beginnen met een schuine streep en mag enkel bestaan uit letters, cijfers en de volgende tekens: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Weet je zeker dat je de geselecteerde pagina\'s wilt verwijderen?', 'delete_confirm_single' => 'Weet je zeker dat je deze pagina wilt verwijderen?', 'no_layout' => '-- geen layout --' diff --git a/modules/cms/lang/pt-br/lang.php b/modules/cms/lang/pt-br/lang.php index 1c63967db..f02c0e962 100644 --- a/modules/cms/lang/pt-br/lang.php +++ b/modules/cms/lang/pt-br/lang.php @@ -33,7 +33,7 @@ return [ ], 'menu_label' => 'Páginas', 'no_list_records' => 'Nenhuma página foi encontradas', - 'invalid_url' => 'Formato de URL inválido. O URL deve começar com o símbolo de barra e pode conter dígitos, letras latinas e os seguintes símbolos: _-[]:?|/+*', + 'invalid_url' => 'Formato de URL inválido. O URL deve começar com o símbolo de barra e pode conter dígitos, letras latinas e os seguintes símbolos: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Você realmente quer excluir as páginas selecionadas?', 'delete_confirm_single' => 'Você realmente quer excluir esta página?', 'no_layout' => '-- sem layout --' diff --git a/modules/cms/lang/ro/lang.php b/modules/cms/lang/ro/lang.php index 8c2965bc9..2af6f1c6c 100644 --- a/modules/cms/lang/ro/lang.php +++ b/modules/cms/lang/ro/lang.php @@ -40,7 +40,7 @@ return [ 'menu_label' => 'Pagini', 'no_list_records' => 'Nu au fost gasite pagini', 'new' => 'Pagina noua', - 'invalid_url' => 'Format URL invalid. URL-ul ar trebui sa inceapa cu un slash ( / ) si poate sa contina cifre, caractere latine si urmatoarele simboluri: _-[]:?|/+*', + 'invalid_url' => 'Format URL invalid. URL-ul ar trebui sa inceapa cu un slash ( / ) si poate sa contina cifre, caractere latine si urmatoarele simboluri: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Vreti sa stergeti paginile selectate?', 'delete_confirm_single' => 'Vreti sa stergeti aceasta pagina?', 'no_layout' => '-- fara macheta --' diff --git a/modules/cms/lang/ru/lang.php b/modules/cms/lang/ru/lang.php index 510657d18..f6ad38c29 100644 --- a/modules/cms/lang/ru/lang.php +++ b/modules/cms/lang/ru/lang.php @@ -40,7 +40,7 @@ return [ 'menu_label' => 'Страницы', 'no_list_records' => 'Страницы не найдены', 'new' => 'Новая страница', - 'invalid_url' => 'Неверный формат адреса. Адрес страницы должен начинаться со знака / и может содержать цифры, латинские буквы, и следующие знаки: _-[]:?|/+*', + 'invalid_url' => 'Неверный формат адреса. Адрес страницы должен начинаться со знака / и может содержать цифры, латинские буквы, и следующие знаки: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Вы действительно хотите удалить выделенные страницы?', 'delete_confirm_single' => 'Вы действительно хотите удалить эту страницу?', 'no_layout' => '-- без шаблона --' diff --git a/modules/cms/lang/sv/lang.php b/modules/cms/lang/sv/lang.php index ccc047f99..b8dab98a1 100644 --- a/modules/cms/lang/sv/lang.php +++ b/modules/cms/lang/sv/lang.php @@ -34,7 +34,7 @@ return [ 'menu_label' => 'Sidor', 'no_list_records' => 'Inga sidor funna', 'new' => 'Ny sida', - 'invalid_url' => 'Felaktigt URL-format. URLen skall starta med ett / och kan innehålla siffror, bokstäver och följande tecken: _-[]:?|/+*', + 'invalid_url' => 'Felaktigt URL-format. URLen skall starta med ett / och kan innehålla siffror, bokstäver och följande tecken: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Vill du verkligen radera markerade sidor?', 'delete_confirm_single' => 'Vill du verkligen radera denna sida?', 'no_layout' => '-- ingen layout --' diff --git a/modules/cms/lang/tr/lang.php b/modules/cms/lang/tr/lang.php index a0b4eac09..7aa0d65ae 100644 --- a/modules/cms/lang/tr/lang.php +++ b/modules/cms/lang/tr/lang.php @@ -34,7 +34,7 @@ return [ 'menu_label' => 'Sayfalar', 'no_list_records' => 'Hiç sayfa yok.', 'new' => 'Sayfa oluştur', - 'invalid_url' => 'Hata URL formatı. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: _-[]:?|/+*', + 'invalid_url' => 'Hata URL formatı. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: ._-[]:?|/+*', 'delete_confirm_multiple' => 'Seçili sayfaları silmek istediğinize emin misiniz?', 'delete_confirm_single' => 'Bu sayfayı silmek istediğinize emin misiniz?', 'no_layout' => '-- şablon yok --'