diff --git a/wire/core/Page.php b/wire/core/Page.php index 77e2537b..eeca57d4 100644 --- a/wire/core/Page.php +++ b/wire/core/Page.php @@ -909,7 +909,7 @@ class Page extends WireData implements \Countable, WireMatchable { // if the page is currently loading from the database, we assume that any set values are 'raw' and need to be woken up if(!$this->isLoaded) { // queue for wakeup and sanitize on first field access - $this->wakeupNameQueue[$field->name] = $field->name; + $this->wakeupNameQueue[$key] = $key; // page is currently loading, so we don't need to continue any further return parent::set($key, $value); } diff --git a/wire/modules/LanguageSupport/FieldtypeTextLanguage.module b/wire/modules/LanguageSupport/FieldtypeTextLanguage.module index 5668bc8d..26ab7da3 100644 --- a/wire/modules/LanguageSupport/FieldtypeTextLanguage.module +++ b/wire/modules/LanguageSupport/FieldtypeTextLanguage.module @@ -37,14 +37,16 @@ class FieldtypeTextLanguage extends FieldtypeText implements FieldtypeLanguageIn // great, already what we wanted } else { // convert it to a LanguagesPageFieldValue - $pageValue = $page->getUnformatted($field->name); + $pageValue = $page->data($field->name); // raw unformatted value, with no load possible if(!$pageValue instanceof LanguagesPageFieldValue) { $pageValue = new LanguagesPageFieldValue($page, $field, $pageValue); // #98 } if(is_array($value)) { $pageValue->importArray($value); } else { - $pageValue->setLanguageValue($this->wire('user')->language->id, (string) $value); + $user = $this->wire('user'); + $language = $user ? $user->language : null; + if($language) $pageValue->setLanguageValue($language->id, (string) $value); } $value = $pageValue; }