diff --git a/htaccess.txt b/htaccess.txt
index 9df7caea..b5aa0ade 100644
--- a/htaccess.txt
+++ b/htaccess.txt
@@ -205,7 +205,10 @@ DirectoryIndex index.php index.html index.htm
# Both of these lines are optional, but can help to reduce server load. However, they
# are not compatible with the $config->pagefileSecure option (if enabled) and they
# may produce an Apache 404 rather than your regular 404. You may uncomment the two lines
- # below if you don't need to use the $config->pagefileSecure option.
+ # below if you don't need to use the $config->pagefileSecure option. After uncommenting, test
+ # a URL like domain.com/site/assets/files/test.jpg to make sure you are getting a 404 and not
+ # your homepage. If getting your homepage, then either: do not use this option, or comment out
+ # section #2 above that makes ProcessWire the 404 handler.
# -----------------------------------------------------------------------------------------------
# RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|ico)$ [NC]
diff --git a/wire/core/AdminTheme.php b/wire/core/AdminTheme.php
index 951960e0..0fd64ee5 100644
--- a/wire/core/AdminTheme.php
+++ b/wire/core/AdminTheme.php
@@ -277,7 +277,7 @@ abstract class AdminTheme extends WireData implements Module {
try {
$field->save();
} catch(\Exception $e) {
- $this->error("Error creating 'admin_theme' field: " . $e->getMessage());
+ // $this->error("Error creating 'admin_theme' field: " . $e->getMessage());
}
}
diff --git a/wire/core/Page.php b/wire/core/Page.php
index 2bcfbd11..453cc6f8 100644
--- a/wire/core/Page.php
+++ b/wire/core/Page.php
@@ -1450,7 +1450,9 @@ class Page extends WireData implements \Countable, WireMatchable {
if($field && count($parts) < 2) {
// this is a field that will provide its own formatted value
$subname = count($parts) == 1 ? array_shift($parts) : '';
- if(!$this->wire($subname)) $value = $field->type->markupValue($this, $field, $value, $subname);
+ if(!$subname || !$this->wire($subname)) {
+ $value = $field->type->markupValue($this, $field, $value, $subname);
+ }
}
} while(is_object($value) && count($parts));
diff --git a/wire/modules/Inputfield/InputfieldPassword/InputfieldPassword.module b/wire/modules/Inputfield/InputfieldPassword/InputfieldPassword.module
index 5f971c54..b4ee7a68 100644
--- a/wire/modules/Inputfield/InputfieldPassword/InputfieldPassword.module
+++ b/wire/modules/Inputfield/InputfieldPassword/InputfieldPassword.module
@@ -201,7 +201,7 @@ class InputfieldPassword extends InputfieldText {
$failIcon = "";
$okIcon = "";
$goodIcon = "";
- $oldPassLabel = $this->_('Old password');
+ $oldPassLabel = $this->_('Current password');
$newPassLabel = $this->_('New password');
$confirmLabel = $this->_('Confirm');
$name = $this->attr('name');
diff --git a/wire/modules/LanguageSupport/Languages.php b/wire/modules/LanguageSupport/Languages.php
index 217b92a4..f5bc2ae8 100644
--- a/wire/modules/LanguageSupport/Languages.php
+++ b/wire/modules/LanguageSupport/Languages.php
@@ -296,10 +296,13 @@ class Languages extends PagesType {
if(is_null($language)) {
// save current user language setting and make current language default
if(!$this->defaultLanguage) return;
+ /** @var User $user */
$user = $this->wire('user');
if($user->language->id == $this->defaultLanguage->id) return; // already default
$this->savedLanguage = $user->language;
+ $previouslyChanged = $user->isChanged('language');
$user->language = $this->defaultLanguage;
+ if(!$previouslyChanged) $user->untrackChange('language');
} else {
// set what language is the default
$this->defaultLanguage = $language;
@@ -315,7 +318,11 @@ class Languages extends PagesType {
*/
public function unsetDefault() {
if(!$this->savedLanguage || !$this->defaultLanguage) return;
- $this->wire('user')->language = $this->savedLanguage;
+ /** @var User $user */
+ $user = $this->wire('user');
+ $previouslyChanged = $user->isChanged('language');
+ $user->language = $this->savedLanguage;
+ if(!$previouslyChanged) $user->untrackChange('language');
}
/**