mirror of
https://github.com/processwire/processwire.git
synced 2025-08-09 00:06:55 +02:00
Update PagesEditor to throw descriptive exception when attempting to save a NullPage. This is to fix what were previously ambiguous error messages.
This commit is contained in:
@@ -97,6 +97,14 @@ class NullPage extends Page implements WireNull {
|
|||||||
*/
|
*/
|
||||||
public function isHidden() { return true; }
|
public function isHidden() { return true; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* #pw-internal
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function isNew() { return false; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* #pw-internal
|
* #pw-internal
|
||||||
*
|
*
|
||||||
|
@@ -447,9 +447,9 @@ class PagesEditor extends Wire {
|
|||||||
$language = null;
|
$language = null;
|
||||||
|
|
||||||
// if language support active, switch to default language so that saved fields and hooks don't need to be aware of language
|
// if language support active, switch to default language so that saved fields and hooks don't need to be aware of language
|
||||||
if($languages && $page->id != $user->id) {
|
if($languages && $page->id != $user->id && "$user->language") {
|
||||||
$language = $user->language && $user->language->id ? $user->language : null;
|
$language = $user->language;
|
||||||
if($language) $user->language = $languages->getDefault();
|
$user->setLanguage($languages->getDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
$reason = '';
|
$reason = '';
|
||||||
@@ -457,8 +457,8 @@ class PagesEditor extends Wire {
|
|||||||
if($isNew) $this->pages->setupNew($page);
|
if($isNew) $this->pages->setupNew($page);
|
||||||
|
|
||||||
if(!$this->isSaveable($page, $reason, '', $options)) {
|
if(!$this->isSaveable($page, $reason, '', $options)) {
|
||||||
if($language) $user->language = $language;
|
if($language) $user->setLanguage($language);
|
||||||
throw new WireException("Can’t save page {$page->id}: {$page->path}: $reason");
|
throw new WireException(rtrim("Can’t save page (id=$page->id): $page->path", ": ") . ": $reason");
|
||||||
}
|
}
|
||||||
|
|
||||||
if($page->hasStatus(Page::statusUnpublished) && $page->template->noUnpublish) {
|
if($page->hasStatus(Page::statusUnpublished) && $page->template->noUnpublish) {
|
||||||
@@ -476,7 +476,7 @@ class PagesEditor extends Wire {
|
|||||||
if($options['adjustName']) $this->pages->names()->checkNameConflicts($page);
|
if($options['adjustName']) $this->pages->names()->checkNameConflicts($page);
|
||||||
if(!$this->savePageQuery($page, $options)) return false;
|
if(!$this->savePageQuery($page, $options)) return false;
|
||||||
$result = $this->savePageFinish($page, $isNew, $options);
|
$result = $this->savePageFinish($page, $isNew, $options);
|
||||||
if($language) $user->language = $language; // restore language
|
if($language) $user->setLanguage($language); // restore language
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user