From b158b71c4202a73b5abd1c0f2fe452b8a66be9a8 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Mon, 4 Mar 2019 10:10:58 -0500 Subject: [PATCH] Update per processwire/processwire-issues#648 --- wire/core/PagesEditor.php | 4 +++- wire/core/PagesNames.php | 13 +++++++++++++ .../Process/ProcessPageAdd/ProcessPageAdd.module | 6 +++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/wire/core/PagesEditor.php b/wire/core/PagesEditor.php index 0992c03d..74f917ed 100644 --- a/wire/core/PagesEditor.php +++ b/wire/core/PagesEditor.php @@ -361,7 +361,6 @@ class PagesEditor extends Wire { * @param array $options * - format: Optionally specify the format to use, or leave blank to auto-determine. * @return string If a name was generated it is returned. If no name was generated blank is returned. - * @throws WireException if unique name can't be generated (highly unlikely) * */ public function setupPageName(Page $page, array $options = array()) { @@ -608,6 +607,9 @@ class PagesEditor extends Wire { $page->set($nameField, $pageName); $query->bindValue(":$nameField", $this->wire('sanitizer')->pageName($pageName, Sanitizer::toAscii)); + // indicate that page has a modified name + $this->pages->names()->hasAdjustedName($page, true); + return true; } diff --git a/wire/core/PagesNames.php b/wire/core/PagesNames.php index e445d051..ddd35e52 100644 --- a/wire/core/PagesNames.php +++ b/wire/core/PagesNames.php @@ -109,6 +109,19 @@ class PagesNames extends Wire { return $name; } + /** + * Does the given page have a modified “name” during this request? + * + * @param Page $page + * @param bool|null $set Specify boolean true or false to set whether or not it has an adjusted name, or omit just to get + * @return bool + * + */ + public function hasAdjustedName(Page $page, $set = null) { + if(is_bool($set)) $page->setQuietly('_hasAdjustedName', $set); + return $page->get('_hasAdjustedName') ? true : false; + } + /** * Is given page name an untitled page name? * diff --git a/wire/modules/Process/ProcessPageAdd/ProcessPageAdd.module b/wire/modules/Process/ProcessPageAdd/ProcessPageAdd.module index 1e1842e8..89879b85 100644 --- a/wire/modules/Process/ProcessPageAdd/ProcessPageAdd.module +++ b/wire/modules/Process/ProcessPageAdd/ProcessPageAdd.module @@ -1197,9 +1197,9 @@ class ProcessPageAdd extends Process implements ConfigurableModule, WirePageEdit return false; } - $this->createdPageMessage($this->page); - - if($pageName != $this->page->name) { + $this->createdPageMessage($this->page); + + if($this->wire('pages')->names()->hasAdjustedName($this->page)) { $warning = $this->nameChangedWarning($this->page, $pageName); if($warning) $this->warning($warning); }