mirror of
https://github.com/processwire/processwire.git
synced 2025-08-09 16:26:59 +02:00
Enhance Page::localName() method per processwire/processwire-issues#373
This commit is contained in:
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user