mirror of
https://github.com/processwire/processwire.git
synced 2025-08-16 11:44:42 +02:00
Add a $languages->pageNames() shortcut method for accessing the LanguageSupportPageNames module directly, when installed.
This commit is contained in:
@@ -97,6 +97,12 @@ class Languages extends PagesType {
|
|||||||
*/
|
*/
|
||||||
protected $editableCache = array();
|
protected $editableCache = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var LanguageSupportPageNames|null|false
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
protected $languageSupportPageNames = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct
|
* Construct
|
||||||
*
|
*
|
||||||
@@ -107,7 +113,7 @@ class Languages extends PagesType {
|
|||||||
*/
|
*/
|
||||||
public function __construct(ProcessWire $wire, $templates = array(), $parents = array()) {
|
public function __construct(ProcessWire $wire, $templates = array(), $parents = array()) {
|
||||||
parent::__construct($wire, $templates, $parents);
|
parent::__construct($wire, $templates, $parents);
|
||||||
$this->wire('database')->addHookAfter('unknownColumnError', $this, 'hookUnknownColumnError');
|
$this->wire()->database->addHookAfter('unknownColumnError', $this, 'hookUnknownColumnError');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -347,16 +353,16 @@ class Languages extends PagesType {
|
|||||||
if(is_int($language)) {
|
if(is_int($language)) {
|
||||||
$language = $this->get($language);
|
$language = $this->get($language);
|
||||||
} else if(is_string($language)) {
|
} else if(is_string($language)) {
|
||||||
$language = $this->get($this->wire('sanitizer')->pageNameUTF8($language));
|
$language = $this->get($this->wire()->sanitizer->pageNameUTF8($language));
|
||||||
}
|
}
|
||||||
if(!$language instanceof Language || !$language->id) throw new WireException("Unknown language");
|
if(!$language instanceof Language || !$language->id) throw new WireException("Unknown language");
|
||||||
$user = $this->wire('user');
|
$user = $this->wire()->user;
|
||||||
$this->savedLanguage2 = null;
|
$this->savedLanguage2 = null;
|
||||||
if($user->language && $user->language->id) {
|
if($user->language && $user->language->id) {
|
||||||
if($language->id == $user->language->id) return false; // no change necessary
|
if($language->id == $user->language->id) return false; // no change necessary
|
||||||
$this->savedLanguage2 = $user->language;
|
$this->savedLanguage2 = $user->language;
|
||||||
}
|
}
|
||||||
$user->language = $language;
|
$user->setQuietly('language', $language);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,10 +392,10 @@ class Languages extends PagesType {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function unsetLanguage() {
|
public function unsetLanguage() {
|
||||||
$user = $this->wire('user');
|
$user = $this->wire()->user;
|
||||||
if(!$this->savedLanguage2) return false;
|
if(!$this->savedLanguage2) return false;
|
||||||
if($user->language && $user->language->id == $this->savedLanguage2->id) return false;
|
if($user->language && $user->language->id == $this->savedLanguage2->id) return false;
|
||||||
$user->language = $this->savedLanguage2;
|
$user->setQuietly('language', $this->savedLanguage2);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -604,6 +610,24 @@ class Languages extends PagesType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get LanguageSupportPageNames module if installed, false if not
|
||||||
|
*
|
||||||
|
* @return LanguageSupportPageNames|bool
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function pageNames() {
|
||||||
|
if($this->languageSupportPageNames === null) {
|
||||||
|
$modules = $this->wire()->modules;
|
||||||
|
if($modules->isInstalled('LanguageSupportPageNames')) {
|
||||||
|
$this->languageSupportPageNames = $modules->getModule('LanguageSupportPageNames');
|
||||||
|
} else {
|
||||||
|
$this->languageSupportPageNames = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->languageSupportPageNames;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all language specific page-edit permissions, or individually one of them
|
* Get all language specific page-edit permissions, or individually one of them
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user