mirror of
https://github.com/processwire/processwire.git
synced 2025-08-10 08:44:46 +02:00
Add support for custom LanguagePage classes per feature request in processwire/processwire-issues#1246
This commit is contained in:
@@ -606,7 +606,7 @@ class PageTraversal {
|
||||
*/
|
||||
public function urlOptions(Page $page, $options = array()) {
|
||||
|
||||
$config = $page->wire('config');
|
||||
$config = $page->wire()->config;
|
||||
$template = $page->template;
|
||||
|
||||
$defaults = array(
|
||||
@@ -615,7 +615,7 @@ class PageTraversal {
|
||||
'data' => array(),
|
||||
'urlSegmentStr' => is_string($options) ? $options : '',
|
||||
'urlSegments' => array(),
|
||||
'language' => is_object($options) && $options instanceof Page && $options->className() === 'Language' ? $options : null,
|
||||
'language' => is_object($options) && wireInstanceOf($options, 'Language') ? $options : null,
|
||||
);
|
||||
|
||||
if(empty($options)) {
|
||||
@@ -625,7 +625,7 @@ class PageTraversal {
|
||||
}
|
||||
|
||||
$options = is_array($options) ? array_merge($defaults, $options) : $defaults;
|
||||
$sanitizer = $page->wire('sanitizer');
|
||||
$sanitizer = $page->wire()->sanitizer;
|
||||
$language = null;
|
||||
$url = null;
|
||||
|
||||
|
@@ -894,13 +894,18 @@ class LanguageSupportPageNames extends WireData implements Module, ConfigurableM
|
||||
/** @var array $extraData */
|
||||
$extraData = $event->return;
|
||||
|
||||
$alwaysActiveTypes = array('User', 'Role', 'Permission', 'Language');
|
||||
$alwaysActiveTypes = array(
|
||||
'User', 'UserPage',
|
||||
'Role', 'RolePage',
|
||||
'Permission', 'PermissionPage',
|
||||
'Language', 'LanguagePage',
|
||||
);
|
||||
$pageNameCharset = $this->wire('config')->pageNameCharset;
|
||||
$isCloning = $pages->editor()->isCloning();
|
||||
|
||||
if(!is_array($extraData)) $extraData = array();
|
||||
|
||||
foreach($this->wire('languages') as $language) {
|
||||
foreach($this->wire()->languages as $language) {
|
||||
|
||||
if($language->isDefault()) continue;
|
||||
$language_id = (int) $language->id;
|
||||
|
@@ -138,7 +138,9 @@ class Languages extends PagesType {
|
||||
*
|
||||
*/
|
||||
public function getPageClass() {
|
||||
return 'Language';
|
||||
if($this->pageClass) return $this->pageClass;
|
||||
$this->pageClass = class_exists(__NAMESPACE__ . "\\LanguagePage") ? 'LanguagePage' : 'Language';
|
||||
return $this->pageClass;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -324,10 +324,10 @@ class ProcessPageEdit extends Process implements WirePageEditor, ConfigurableMod
|
||||
*
|
||||
*/
|
||||
protected $otherCorePageClasses = array(
|
||||
'User',
|
||||
'Role',
|
||||
'Permission',
|
||||
'Language'
|
||||
'User', 'UserPage',
|
||||
'Role', 'RolePage',
|
||||
'Permission', 'PermissionPage',
|
||||
'Language', 'LanguagePage',
|
||||
);
|
||||
|
||||
/***********************************************************************************************************************
|
||||
|
Reference in New Issue
Block a user