mirror of
https://github.com/e107inc/e107.git
synced 2025-07-31 20:00:37 +02:00
Allow for disabling of language-perm checking on a page-by-page basis. Usage: $_E107['no_language_perm_check'] = true; before class2.php.
Allow language to be defined by script. Usage Example: define("e_PAGE_LANGUAGE", "French"); OR define("e_PAGE_LANGUAGE", "E_SITELANGUAGE"); before class2.php.
This commit is contained in:
@@ -24,7 +24,7 @@ define('e_CAPTCHA_FONTCOLOR','#F9A533');
|
||||
|
||||
// Required for a clean v1.x -> v2 upgrade.
|
||||
$core = e107::getConfig('core');
|
||||
if($core->get('admintheme') != 'bootstrap' && $core->get('admintheme') != 'bootstrap3')
|
||||
if($core->get('admintheme') != 'bootstrap3')
|
||||
{
|
||||
$core->update('admintheme','bootstrap3');
|
||||
$core->update('adminstyle','infopanel');
|
||||
@@ -35,7 +35,7 @@ if($core->get('admintheme') != 'bootstrap' && $core->get('admintheme') != 'boots
|
||||
}
|
||||
|
||||
// Check Admin-Perms for current language and redirect if necessary.
|
||||
if(USER && !getperms('0') && vartrue($pref['multilanguage']) && !getperms(e_LANGUAGE))
|
||||
if(USER && !getperms('0') && vartrue($pref['multilanguage']) && !getperms(e_LANGUAGE) && empty($_E107['no_language_perm_check']))
|
||||
{
|
||||
$lng = e107::getLanguage();
|
||||
|
||||
|
@@ -289,6 +289,16 @@ class language{
|
||||
return false;
|
||||
}
|
||||
|
||||
if($lang == 'E_SITELANGUAGE') // allows for overriding language using a scripted 'define' before class2.php is loaded.
|
||||
{
|
||||
$lang = $pref['sitelanguage'];
|
||||
}
|
||||
|
||||
if($lang == 'E_ADMINLANGUAGE')
|
||||
{
|
||||
$lang = $pref['adminlanguage'];
|
||||
}
|
||||
|
||||
if(strlen($lang)== 2)
|
||||
{
|
||||
$iso = $lang;
|
||||
@@ -453,12 +463,13 @@ class language{
|
||||
|
||||
/**
|
||||
* Detect a Language Change
|
||||
* 0. Parked Domain eg. http://mylanguagedomain.com
|
||||
* 1. Parked subDomain eg. http://es.mydomain.com (Preferred for SEO)
|
||||
* 2. e_MENU Query eg. /index.php?[es]
|
||||
* 3. $_GET['elan'] eg. /index.php?elan=es
|
||||
* 4. $_POST['sitelanguage'] eg. <input type='hidden' name='sitelanguage' value='Spanish' />
|
||||
* 5. $GLOBALS['elan'] eg. <?php $GLOBALS['elan']='es' (deprecated)
|
||||
* 1. Scripted Definition eg. define('e_PAGE_LANGUAGE', 'English');
|
||||
* 2. Parked Domain eg. http://mylanguagedomain.com
|
||||
* 3. Parked subDomain eg. http://es.mydomain.com (Preferred for SEO)
|
||||
* 4. e_MENU Query eg. /index.php?[es]
|
||||
* 5. $_GET['elan'] eg. /index.php?elan=es
|
||||
* 6. $_POST['sitelanguage'] eg. <input type='hidden' name='sitelanguage' value='Spanish' />
|
||||
* 7. $GLOBALS['elan'] eg. <?php $GLOBALS['elan']='es' (deprecated)
|
||||
*
|
||||
* @param boolean $force force detection, don't use cached value
|
||||
*/
|
||||
@@ -470,7 +481,11 @@ class language{
|
||||
if(false !== $this->detect && !$force) return $this->detect;
|
||||
$this->_cookie_domain = '';
|
||||
|
||||
if(vartrue($pref['multilanguage_subdomain']) && $this->isLangDomain(e_DOMAIN) && (defset('MULTILANG_SUBDOMAIN') !== false))
|
||||
if(defined('e_PAGE_LANGUAGE') && ($detect_language = $this->isValid(e_PAGE_LANGUAGE))) // page specific override.
|
||||
{
|
||||
// Do nothing as $detect_language is set.
|
||||
}
|
||||
elseif(vartrue($pref['multilanguage_subdomain']) && $this->isLangDomain(e_DOMAIN) && (defset('MULTILANG_SUBDOMAIN') !== false))
|
||||
{
|
||||
$detect_language = (e_SUBDOMAIN) ? $this->isValid(e_SUBDOMAIN) : $pref['sitelanguage'];
|
||||
// Done in session handler now, based on MULTILANG_SUBDOMAIN value
|
||||
|
Reference in New Issue
Block a user