mirror of
https://github.com/processwire/processwire.git
synced 2025-08-13 10:15:28 +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();
|
||||
|
||||
/**
|
||||
* @var LanguageSupportPageNames|null|false
|
||||
*
|
||||
*/
|
||||
protected $languageSupportPageNames = null;
|
||||
|
||||
/**
|
||||
* Construct
|
||||
*
|
||||
@@ -107,7 +113,7 @@ class Languages extends PagesType {
|
||||
*/
|
||||
public function __construct(ProcessWire $wire, $templates = array(), $parents = array()) {
|
||||
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)) {
|
||||
$language = $this->get($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");
|
||||
$user = $this->wire('user');
|
||||
$user = $this->wire()->user;
|
||||
$this->savedLanguage2 = null;
|
||||
if($user->language && $user->language->id) {
|
||||
if($language->id == $user->language->id) return false; // no change necessary
|
||||
$this->savedLanguage2 = $user->language;
|
||||
}
|
||||
$user->language = $language;
|
||||
$user->setQuietly('language', $language);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -386,10 +392,10 @@ class Languages extends PagesType {
|
||||
*
|
||||
*/
|
||||
public function unsetLanguage() {
|
||||
$user = $this->wire('user');
|
||||
$user = $this->wire()->user;
|
||||
if(!$this->savedLanguage2) return false;
|
||||
if($user->language && $user->language->id == $this->savedLanguage2->id) return false;
|
||||
$user->language = $this->savedLanguage2;
|
||||
$user->setQuietly('language', $this->savedLanguage2);
|
||||
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
|
||||
*
|
||||
|
Reference in New Issue
Block a user