diff --git a/wire/core/Page.php b/wire/core/Page.php index a2b5eda3..2bcfbd11 100644 --- a/wire/core/Page.php +++ b/wire/core/Page.php @@ -8,7 +8,7 @@ * 1. Providing get/set access to the Page's properties * 2. Accessing the related hierarchy of pages (i.e. parents, children, sibling pages) * - * ProcessWire 3.x, Copyright 2016 by Ryan Cramer + * ProcessWire 3.x, Copyright 2017 by Ryan Cramer * https://processwire.com * * #pw-summary Class used by all Page objects in ProcessWire. @@ -112,7 +112,7 @@ * * Methods added by LanguageSupportPageNames.module (not installed by default) * --------------------------------------------------------------------------- - * @method string localName($language = null) Return the page name in the current user's language, or specify $language argument (Language object, name, or ID). #pw-group-languages + * @method string localName($language = null, $useDefaultWhenEmpty = false) Return the page name in the current user’s language, or specify $language argument (Language object, name, or ID), or TRUE to use default page name when blank (instead of 2nd argument). #pw-group-languages * @method string localPath($language = null) Return the page path in the current user's language, or specify $language argument (Language object, name, or ID). #pw-group-languages * @method string localUrl($language = null) Return the page URL in the current user's language, or specify $language argument (Language object, name, or ID). #pw-group-languages * @method string localHttpUrl($language = null) Return the page URL (including scheme and hostname) in the current user's language, or specify $language argument (Language object, name, or ID). #pw-group-languages diff --git a/wire/modules/LanguageSupport/LanguageSupportPageNames.module b/wire/modules/LanguageSupport/LanguageSupportPageNames.module index e7edee0e..01182e87 100644 --- a/wire/modules/LanguageSupport/LanguageSupportPageNames.module +++ b/wire/modules/LanguageSupport/LanguageSupportPageNames.module @@ -611,7 +611,8 @@ class LanguageSupportPageNames extends WireData implements Module, ConfigurableM /** * Add a Page::localName function with optional $language as argument * - * event param Language|string|int Optional language + * event param Language|string|int|bool Optional language, or boolean true for behavior of 2nd argument. + * event param bool Substitute default language page name when page name is not defined for requested language. * event return string Localized language name or blank if not set * * @param HookEvent $event @@ -623,6 +624,9 @@ class LanguageSupportPageNames extends WireData implements Module, ConfigurableM $nameField = $language->isDefault() ? "name" : "name$language"; $value = $page->get($nameField); if(is_null($value)) $value = ''; + if(empty($value) && $nameField !== 'name' && ($event->arguments(0) === true || $event->arguments(1) === true)) { + $value = $page->name; + } $event->return = $value; }