diff --git a/wire/modules/LanguageSupport/LanguageSupport.module b/wire/modules/LanguageSupport/LanguageSupport.module index 7a8d3eff..1345108d 100644 --- a/wire/modules/LanguageSupport/LanguageSupport.module +++ b/wire/modules/LanguageSupport/LanguageSupport.module @@ -725,25 +725,25 @@ class LanguageSupport extends WireData implements Module, ConfigurableModule { $language = $event->arguments(0); $field = $event->arguments(1); $value = $event->arguments(2); + $languages = $this->wire()->languages; $event->return = $page; if(!is_object($language)) { if(ctype_digit("$language")) $language = (int) $language; - $language = $this->wire('languages')->get($language); + $language = $languages ? $languages->get($language) : null; } if(!$language instanceof Language) throw new WireException('Unknown language set to Page::setLanguageValue'); - if($field == 'name') { - // set page name - $languages = $this->wire()->languages; + if($field === 'name' || $field === 'status') { + // set page name or status if($languages && !$languages->hasPageNames()) { - throw new WireException("Please install LanguageSupportPageNames module before attempting to set multi-language names/paths/URLs."); + throw new WireException("Please install LanguageSupportPageNames module before attempting to set multi-language names/paths/status/URLs."); } if($language->isDefault()) { - $page->set("name", $value); + $page->set($field, $value); } else { - $page->set("name$language->id", $value); + $page->set("$field$language->id", $value); } } else { diff --git a/wire/modules/Process/ProcessPageView.module b/wire/modules/Process/ProcessPageView.module index 549797dd..fb658f9f 100644 --- a/wire/modules/Process/ProcessPageView.module +++ b/wire/modules/Process/ProcessPageView.module @@ -107,7 +107,7 @@ class ProcessPageView extends Process { $pages->setOutputFormatting(true); if($timerKey) Debug::timer($timerKey); - $page = $request->getPage(); + $page = $this->getPage(); if($timerKey) Debug::saveTimer($timerKey, ($page && $page->id ? $page->path : '')); if($page && $page->id) { @@ -117,6 +117,17 @@ class ProcessPageView extends Process { } } + /** + * Get requested page + * + * @return NullPage|Page + * @throws WireException + * + */ + public function getPage() { + return $this->wire()->pages->request()->getPage(); + } + /** * Render Page *