Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
316ca106fd | ||
|
|
fd9b201346 | ||
|
|
667dc4de8e |
@@ -1,325 +0,0 @@
|
|||||||
<?php // phpcs:disable Generic.Files.LineLength
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace tests;
|
|
||||||
|
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test class for Language\GetSettings
|
|
||||||
*
|
|
||||||
* @coversDefaultClass \CoreLibs\Language\GetSettings
|
|
||||||
* @testdox \CoreLibs\Language\GetSettings method tests
|
|
||||||
*/
|
|
||||||
final class CoreLibsLanguageGetSettingsTest extends TestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* set all constant variables that must be set before call
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function setUpBeforeClass(): void
|
|
||||||
{
|
|
||||||
define('DEFAULT_LANG', 'en_US');
|
|
||||||
// default web page encoding setting
|
|
||||||
define('DEFAULT_ENCODING', 'UTF-8');
|
|
||||||
// default lang + encoding
|
|
||||||
define('DEFAULT_LOCALE', 'en_US.UTF-8');
|
|
||||||
// site
|
|
||||||
define('SITE_LANG', DEFAULT_LANG);
|
|
||||||
// just set
|
|
||||||
define('BASE', str_replace('/configs', '', __DIR__) . DIRECTORY_SEPARATOR);
|
|
||||||
define('INCLUDES', 'includes' . DIRECTORY_SEPARATOR);
|
|
||||||
define('LANG', 'lang' . DIRECTORY_SEPARATOR);
|
|
||||||
define('CONTENT_PATH', 'frontend' . DIRECTORY_SEPARATOR);
|
|
||||||
// array session
|
|
||||||
$_SESSION = [];
|
|
||||||
global $_SESSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* all the test data
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function setLangEncodingProvider(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
// 0: locale/lang
|
|
||||||
// 1: domain
|
|
||||||
// 2: path
|
|
||||||
// 3: SESSION DEFAULT_CHARSE
|
|
||||||
// 4: GLOBALS: OVERRIDE_LANG
|
|
||||||
// 5: SESSION: DEFAULT_LANG
|
|
||||||
// 6: expected array
|
|
||||||
'no params, all default constants' => [
|
|
||||||
// lang, domain, path
|
|
||||||
null, null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
null, null, null,
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'en_US',
|
|
||||||
2 => 'en',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'en_US',
|
|
||||||
'lang_short' => 'en',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'no params, session charset and lang' => [
|
|
||||||
// lang, domain, path
|
|
||||||
null, null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
'UTF-8', null, 'ja_JP',
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'ja_JP',
|
|
||||||
2 => 'ja',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'ja_JP',
|
|
||||||
'lang_short' => 'ja',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'no params, session charset and lang short' => [
|
|
||||||
// lang, domain, path
|
|
||||||
null, null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
'UTF-8', null, 'ja',
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'ja',
|
|
||||||
2 => 'ja',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'ja',
|
|
||||||
'lang_short' => 'ja',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// globals override lang
|
|
||||||
'no params, session charset and lang, default lang override' => [
|
|
||||||
// lang, domain, path
|
|
||||||
null, null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
'UTF-8', 'en_US', 'ja_JP',
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'en_US',
|
|
||||||
2 => 'en',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'en_US',
|
|
||||||
'lang_short' => 'en',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// globals override lang short
|
|
||||||
'no params, session charset and lang, default lang short override' => [
|
|
||||||
// lang, domain, path
|
|
||||||
null, null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
'UTF-8', 'en', 'ja_JP',
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'en',
|
|
||||||
2 => 'en',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'en',
|
|
||||||
'lang_short' => 'en',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// param lang (no override)
|
|
||||||
'locale param only, no override' => [
|
|
||||||
// lang, domain, path
|
|
||||||
'ja.UTF-8', null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
null, null, null,
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'ja',
|
|
||||||
2 => 'ja',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'ja',
|
|
||||||
'lang_short' => 'ja',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// different locale setting
|
|
||||||
'locale complex param only, no override' => [
|
|
||||||
// lang, domain, path
|
|
||||||
'ja_JP.SJIS', null, null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
null, null, null,
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'SJIS',
|
|
||||||
1 => 'ja_JP',
|
|
||||||
2 => 'ja',
|
|
||||||
3 => 'frontend',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'SJIS',
|
|
||||||
'lang' => 'ja_JP',
|
|
||||||
'lang_short' => 'ja',
|
|
||||||
'domain' => 'frontend',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// param lang and domain (no override)
|
|
||||||
'locale, domain params, no override' => [
|
|
||||||
// lang, domain, path
|
|
||||||
'ja.UTF-8', 'admin', null,
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
null, null, null,
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'ja',
|
|
||||||
2 => 'ja',
|
|
||||||
3 => 'admin',
|
|
||||||
4 => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'ja',
|
|
||||||
'lang_short' => 'ja',
|
|
||||||
'domain' => 'admin',
|
|
||||||
'path' => "/^\/(.*\/)?includes\/lang\/frontend\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// all params set (no override)
|
|
||||||
'all params, no override' => [
|
|
||||||
// lang, domain, path
|
|
||||||
'ja.UTF-8', 'admin', __DIR__ . '/locale_other/',
|
|
||||||
// global set no session
|
|
||||||
// SESSION: DEFAULT_CHARSET, GLOBALS: OVERRIDE_LANG, SESSION: DEFAULT_LANG
|
|
||||||
null, null, null,
|
|
||||||
// return array
|
|
||||||
[
|
|
||||||
0 => 'UTF-8',
|
|
||||||
1 => 'ja',
|
|
||||||
2 => 'ja',
|
|
||||||
3 => 'admin',
|
|
||||||
4 => "/^\/(.*\/)?locale_other\/$/",
|
|
||||||
'encoding' => 'UTF-8',
|
|
||||||
'lang' => 'ja',
|
|
||||||
'lang_short' => 'ja',
|
|
||||||
'domain' => 'admin',
|
|
||||||
'path' => "/^\/(.*\/)?locale_other\/$/",
|
|
||||||
],
|
|
||||||
],
|
|
||||||
// TODO invalid params (bad path) (no override)
|
|
||||||
// TODO param calls, but with override set
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Undocumented function
|
|
||||||
*
|
|
||||||
* @covers ::setLangEncoding
|
|
||||||
* @dataProvider setLangEncodingProvider
|
|
||||||
* @testdox lang settings lang $language, domain $domain, path $path; null session char: $SESSION_DEFAULT_CHARSET, null global lang: $GLOBAL_OVERRIDE_LANG, null session lang: $SESSION_DEFAULT_LANG [$_dataName]
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function testSetLangEncoding(
|
|
||||||
?string $language,
|
|
||||||
?string $domain,
|
|
||||||
?string $path,
|
|
||||||
?string $SESSION_DEFAULT_CHARSET,
|
|
||||||
?string $GLOBAL_OVERRIDE_LANG,
|
|
||||||
?string $SESSION_DEFAULT_LANG,
|
|
||||||
array $expected,
|
|
||||||
): void {
|
|
||||||
$return_lang_settings = [];
|
|
||||||
global $_SESSION;
|
|
||||||
// set override
|
|
||||||
if ($SESSION_DEFAULT_CHARSET !== null) {
|
|
||||||
$_SESSION['DEFAULT_CHARSET'] = $SESSION_DEFAULT_CHARSET;
|
|
||||||
}
|
|
||||||
if ($GLOBAL_OVERRIDE_LANG !== null) {
|
|
||||||
$GLOBALS['OVERRIDE_LANG'] = $GLOBAL_OVERRIDE_LANG;
|
|
||||||
}
|
|
||||||
if ($SESSION_DEFAULT_LANG !== null) {
|
|
||||||
$_SESSION['DEFAULT_LANG'] = $SESSION_DEFAULT_LANG;
|
|
||||||
}
|
|
||||||
// function call
|
|
||||||
if ($language === null && $domain === null && $path === null) {
|
|
||||||
$return_lang_settings = \CoreLibs\Language\GetSettings::setLangEncoding();
|
|
||||||
} elseif ($language !== null && $domain === null && $path === null) {
|
|
||||||
$return_lang_settings = \CoreLibs\Language\GetSettings::setLangEncoding(
|
|
||||||
$language
|
|
||||||
);
|
|
||||||
} elseif ($language !== null && $domain !== null && $path === null) {
|
|
||||||
$return_lang_settings = \CoreLibs\Language\GetSettings::setLangEncoding(
|
|
||||||
$language,
|
|
||||||
$domain
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$return_lang_settings = \CoreLibs\Language\GetSettings::setLangEncoding(
|
|
||||||
$language,
|
|
||||||
$domain,
|
|
||||||
$path
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// print "RETURN: " . print_r($return_lang_settings, true) . "\n";
|
|
||||||
|
|
||||||
foreach (
|
|
||||||
[
|
|
||||||
0, 1, 2, 3, 4,
|
|
||||||
'encoding', 'lang', 'lang_short', 'domain', 'path'
|
|
||||||
] as $key
|
|
||||||
) {
|
|
||||||
$value = $expected[$key];
|
|
||||||
if (strpos($value, "/") === 0) {
|
|
||||||
// this is regex
|
|
||||||
$this->assertMatchesRegularExpression(
|
|
||||||
$value,
|
|
||||||
$return_lang_settings[$key]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// assert equal
|
|
||||||
$this->assertEquals(
|
|
||||||
$value,
|
|
||||||
$return_lang_settings[$key],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// unset all vars
|
|
||||||
$_SESSION = [];
|
|
||||||
unset($GLOBALS['OVERRIDE_LANG']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// __END__
|
|
||||||
@@ -44,9 +44,24 @@ $db = new CoreLibs\DB\IO(DB_CONFIG, $log);
|
|||||||
// login & page access check
|
// login & page access check
|
||||||
$login = new CoreLibs\ACL\Login($db, $log);
|
$login = new CoreLibs\ACL\Login($db, $log);
|
||||||
```
|
```
|
||||||
|
* update language class
|
||||||
|
```php
|
||||||
|
// pre auto detect language after login
|
||||||
|
$locale = \CoreLibs\Language\GetLocale::setLocale();
|
||||||
|
// set lang and pass to smarty/backend
|
||||||
|
$l10n = new \CoreLibs\Language\L10n(
|
||||||
|
$locale['locale'],
|
||||||
|
$locale['domain'],
|
||||||
|
$locale['path'],
|
||||||
|
);
|
||||||
|
```
|
||||||
|
* smarty needs language
|
||||||
|
```php
|
||||||
|
$smarty = new CoreLibs\Template\SmartyExtend($l10n, $locale);
|
||||||
|
```
|
||||||
* admin backend also needs logger
|
* admin backend also needs logger
|
||||||
```php
|
```php
|
||||||
$cms = new CoreLibs\Admin\Backend($db, $log);
|
$cms = new CoreLibs\Admin\Backend($db, $log, $l10n, $locale);
|
||||||
```
|
```
|
||||||
* update and `$cms` or similar calls so db is in `$cms->db->...` and log are in `$cms->log->...`
|
* update and `$cms` or similar calls so db is in `$cms->db->...` and log are in `$cms->log->...`
|
||||||
* update all `config.*.php` files where needed
|
* update all `config.*.php` files where needed
|
||||||
@@ -60,6 +75,12 @@ require BASE . LIB . 'autoloader.php';
|
|||||||
```
|
```
|
||||||
**UPDATE:**
|
**UPDATE:**
|
||||||
```php
|
```php
|
||||||
|
// po langs [DEPRECAED: use LOCALE]
|
||||||
|
define('LANG', 'lang' . DIRECTORY_SEPARATOR);
|
||||||
|
// po locale file
|
||||||
|
define('LOCALE', 'locale' . DIRECTORY_SEPARATOR);
|
||||||
|
```
|
||||||
|
```php
|
||||||
// SSL host name
|
// SSL host name
|
||||||
// define('SSL_HOST', $_ENV['SSL_HOST'] ?? '');
|
// define('SSL_HOST', $_ENV['SSL_HOST'] ?? '');
|
||||||
```
|
```
|
||||||
@@ -85,6 +106,13 @@ define('CONTENT_WIDTH', '100%');
|
|||||||
define('BASE_NAME', preg_replace('/[^A-Za-z0-9]/', '', $_ENV['BASE_NAME'] ?? ''));
|
define('BASE_NAME', preg_replace('/[^A-Za-z0-9]/', '', $_ENV['BASE_NAME'] ?? ''));
|
||||||
```
|
```
|
||||||
```php
|
```php
|
||||||
|
/************* LANGUAGE / ENCODING *******/
|
||||||
|
// default lang + encoding
|
||||||
|
define('DEFAULT_LOCALE', 'en_US.UTF-8');
|
||||||
|
// default web page encoding setting
|
||||||
|
define('DEFAULT_ENCODING', 'UTF-8');
|
||||||
|
```
|
||||||
|
```php
|
||||||
// BAIL ON MISSING DB CONFIG:
|
// BAIL ON MISSING DB CONFIG:
|
||||||
// we have either no db selction for this host but have db config entries
|
// we have either no db selction for this host but have db config entries
|
||||||
// or we have a db selection but no db config as array or empty
|
// or we have a db selection but no db config as array or empty
|
||||||
@@ -104,6 +132,10 @@ if (
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
```php
|
```php
|
||||||
|
// remove SITE_LANG
|
||||||
|
define('SITE_LOCALE', $SITE_CONFIG[HOST_NAME]['site_locale'] ?? DEFAULT_LOCALE);
|
||||||
|
define('SITE_ENCODING', $SITE_CONFIG[HOST_NAME]['site_encoding'] ?? DEFAULT_ENCODING);
|
||||||
|
```
|
||||||
```php
|
```php
|
||||||
/************* GENERAL PAGE TITLE ********/
|
/************* GENERAL PAGE TITLE ********/
|
||||||
define('G_TITLE', $_ENV['G_TITLE'] ?? '');
|
define('G_TITLE', $_ENV['G_TITLE'] ?? '');
|
||||||
@@ -118,6 +150,15 @@ In the config then
|
|||||||
```php
|
```php
|
||||||
'db_name' => $_ENV['DB_NAME.TEST'] ?? '',
|
'db_name' => $_ENV['DB_NAME.TEST'] ?? '',
|
||||||
```
|
```
|
||||||
|
* config.host.php update
|
||||||
|
must add site_locale (site_lang + site_encoding)
|
||||||
|
remove site_lang
|
||||||
|
```php
|
||||||
|
// lang + encoding
|
||||||
|
'site_locale' => 'en_US.UTF-8',
|
||||||
|
// site language
|
||||||
|
'site_encoding' => 'UTF-8',
|
||||||
|
```
|
||||||
* copy `layout/admin/javascript/edit.jq.js`
|
* copy `layout/admin/javascript/edit.jq.js`
|
||||||
* check other javacsript files if needed (`edit.jq.js`)
|
* check other javacsript files if needed (`edit.jq.js`)
|
||||||
|
|
||||||
|
|||||||
@@ -27,9 +27,8 @@ $__LOCAL_CONFIG = [
|
|||||||
'db_host' => 'test',
|
'db_host' => 'test',
|
||||||
'location' => 'test',
|
'location' => 'test',
|
||||||
'debug_flag' => true,
|
'debug_flag' => true,
|
||||||
'site_lang' => 'en_US',
|
|
||||||
'site_encoding' => 'UTF-8',
|
|
||||||
'site_locale' => 'en_US.UTF-8',
|
'site_locale' => 'en_US.UTF-8',
|
||||||
|
'site_encoding' => 'UTF-8',
|
||||||
'login_enabled' => true
|
'login_enabled' => true
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -46,11 +45,10 @@ $SITE_CONFIG = [
|
|||||||
'location' => 'test',
|
'location' => 'test',
|
||||||
// show DEBUG override
|
// show DEBUG override
|
||||||
'debug_flag' => true,
|
'debug_flag' => true,
|
||||||
// site language
|
// site locale
|
||||||
'site_lang' => 'en_US',
|
|
||||||
'site_encoding' => 'UTF-8',
|
|
||||||
// lang + encoding
|
|
||||||
'site_locale' => 'en_US.UTF-8',
|
'site_locale' => 'en_US.UTF-8',
|
||||||
|
// site encoding
|
||||||
|
'site_encoding' => 'UTF-8',
|
||||||
// enable/disable login override
|
// enable/disable login override
|
||||||
'login_enabled' => true
|
'login_enabled' => true
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -65,8 +65,6 @@ define('JS', 'javascript' . DIRECTORY_SEPARATOR);
|
|||||||
define('TABLE_ARRAYS', 'table_arrays' . DIRECTORY_SEPARATOR);
|
define('TABLE_ARRAYS', 'table_arrays' . DIRECTORY_SEPARATOR);
|
||||||
// smarty libs path
|
// smarty libs path
|
||||||
define('SMARTY', 'Smarty' . DIRECTORY_SEPARATOR);
|
define('SMARTY', 'Smarty' . DIRECTORY_SEPARATOR);
|
||||||
// po langs [DEPRECAED: use LOCALE]
|
|
||||||
define('LANG', 'lang' . DIRECTORY_SEPARATOR);
|
|
||||||
// po locale file
|
// po locale file
|
||||||
define('LOCALE', 'locale' . DIRECTORY_SEPARATOR);
|
define('LOCALE', 'locale' . DIRECTORY_SEPARATOR);
|
||||||
// cache path
|
// cache path
|
||||||
@@ -160,11 +158,10 @@ define('CACHE_ID', 'CACHE_' . BASE_NAME . '_' . SERVER_NAME_HASH);
|
|||||||
define('COMPILE_ID', 'COMPILE_' . BASE_NAME . '_' . SERVER_NAME_HASH);
|
define('COMPILE_ID', 'COMPILE_' . BASE_NAME . '_' . SERVER_NAME_HASH);
|
||||||
|
|
||||||
/************* LANGUAGE / ENCODING *******/
|
/************* LANGUAGE / ENCODING *******/
|
||||||
define('DEFAULT_LANG', 'en_US');
|
|
||||||
// default web page encoding setting
|
|
||||||
define('DEFAULT_ENCODING', 'UTF-8');
|
|
||||||
// default lang + encoding
|
// default lang + encoding
|
||||||
define('DEFAULT_LOCALE', 'en_US.UTF-8');
|
define('DEFAULT_LOCALE', 'en_US.UTF-8');
|
||||||
|
// default web page encoding setting
|
||||||
|
define('DEFAULT_ENCODING', 'UTF-8');
|
||||||
|
|
||||||
/************* LOGGING *******************/
|
/************* LOGGING *******************/
|
||||||
// below two can be defined here, but they should be
|
// below two can be defined here, but they should be
|
||||||
@@ -262,9 +259,8 @@ $GLOBALS['DB_CONFIG'] = DB_CONFIG;
|
|||||||
// debug settings, site lang, etc
|
// debug settings, site lang, etc
|
||||||
define('TARGET', $SITE_CONFIG[HOST_NAME]['location'] ?? 'test');
|
define('TARGET', $SITE_CONFIG[HOST_NAME]['location'] ?? 'test');
|
||||||
define('DEBUG', $SITE_CONFIG[HOST_NAME]['debug_flag'] ?? false);
|
define('DEBUG', $SITE_CONFIG[HOST_NAME]['debug_flag'] ?? false);
|
||||||
define('SITE_LANG', $SITE_CONFIG[HOST_NAME]['site_lang'] ?? DEFAULT_LANG);
|
|
||||||
define('SITE_ENCODING', $SITE_CONFIG[HOST_NAME]['site_encoding'] ?? DEFAULT_ENCODING);
|
|
||||||
define('SITE_LOCALE', $SITE_CONFIG[HOST_NAME]['site_locale'] ?? DEFAULT_LOCALE);
|
define('SITE_LOCALE', $SITE_CONFIG[HOST_NAME]['site_locale'] ?? DEFAULT_LOCALE);
|
||||||
|
define('SITE_ENCODING', $SITE_CONFIG[HOST_NAME]['site_encoding'] ?? DEFAULT_ENCODING);
|
||||||
define('LOGIN_ENABLED', $SITE_CONFIG[HOST_NAME]['login_enabled'] ?? false);
|
define('LOGIN_ENABLED', $SITE_CONFIG[HOST_NAME]['login_enabled'] ?? false);
|
||||||
define('AUTH', $SITE_CONFIG[HOST_NAME]['auth'] ?? false);
|
define('AUTH', $SITE_CONFIG[HOST_NAME]['auth'] ?? false);
|
||||||
// paths
|
// paths
|
||||||
|
|||||||
@@ -53,9 +53,14 @@ if (!defined('DIR')) {
|
|||||||
// find trigger name "admin/" or "frontend/" in the getcwd() folder
|
// find trigger name "admin/" or "frontend/" in the getcwd() folder
|
||||||
foreach (['admin', 'frontend'] as $folder) {
|
foreach (['admin', 'frontend'] as $folder) {
|
||||||
if (strstr(getcwd() ?: '', DIRECTORY_SEPARATOR . $folder)) {
|
if (strstr(getcwd() ?: '', DIRECTORY_SEPARATOR . $folder)) {
|
||||||
define('CONTENT_PATH', $folder . DIRECTORY_SEPARATOR);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if content path is empty, fallback is default
|
||||||
|
/** @phpstan-ignore-next-line can be empty */
|
||||||
|
if (empty($folder)) {
|
||||||
|
$folder = 'default';
|
||||||
|
}
|
||||||
|
define('CONTENT_PATH', $folder . DIRECTORY_SEPARATOR);
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,141 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Internal function for getting languange and encodig settings
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace CoreLibs\Language;
|
|
||||||
|
|
||||||
class GetSettings
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Sets encoding and language
|
|
||||||
* Can be overridden with language + path to mo file
|
|
||||||
* If locale is set it must be in the format of:
|
|
||||||
* <lang>.<encoding>
|
|
||||||
* <lang>_<country>.<encoding>
|
|
||||||
* <lang>_<country>.<encoding>@<subset>
|
|
||||||
* If no encoding is set in the is, UTF-8 is assumed
|
|
||||||
*
|
|
||||||
* Returned is an array with array indes and dictionary index
|
|
||||||
* 0~4 array are
|
|
||||||
* encoding: 0
|
|
||||||
* lang: 1
|
|
||||||
* lang_short: 2
|
|
||||||
* domain: 3
|
|
||||||
* path: 4
|
|
||||||
*
|
|
||||||
* @param string|null $locale A valid locale name
|
|
||||||
* @param string|null $path A valid path where the mo files will be based
|
|
||||||
* @return array<int|string,string> Settings as array/dictionary
|
|
||||||
* @deprecated Use CoreLibs\Language\GetLocale::setLocale()
|
|
||||||
*/
|
|
||||||
public static function setLangEncoding(
|
|
||||||
?string $locale = null,
|
|
||||||
?string $domain = null,
|
|
||||||
?string $path = null
|
|
||||||
): array {
|
|
||||||
$lang = '';
|
|
||||||
$lang_short = '';
|
|
||||||
$encoding = '';
|
|
||||||
// if is is set, extract
|
|
||||||
if (!empty($locale)) {
|
|
||||||
preg_match(
|
|
||||||
// language code
|
|
||||||
'/^(?P<lang>[a-z]{2,3})'
|
|
||||||
// _ country code
|
|
||||||
. '(?:_(?P<country>[A-Z]{2}))?'
|
|
||||||
// . charset
|
|
||||||
. '(?:\\.(?P<charset>[-A-Za-z0-9_]+))?'
|
|
||||||
// @ modifier
|
|
||||||
. '(?:@(?P<modifier>[-A-Za-z0-9_]+))?$/',
|
|
||||||
$locale,
|
|
||||||
$matches
|
|
||||||
);
|
|
||||||
// lang short part
|
|
||||||
$lang_short = $matches['lang'] ?? '';
|
|
||||||
$lang = $lang_short;
|
|
||||||
// lang + country if country is set
|
|
||||||
if (!empty($matches['country'])) {
|
|
||||||
$lang = sprintf('%s_%s', $lang_short, $matches['country']);
|
|
||||||
}
|
|
||||||
// encoding if set
|
|
||||||
$encoding = strtoupper($matches['charset'] ?? 'UTF-8');
|
|
||||||
}
|
|
||||||
// if domain is set, must be alphanumeric, if not unset
|
|
||||||
if (
|
|
||||||
!empty($domain) &&
|
|
||||||
!preg_match("/^\w+$/", $domain)
|
|
||||||
) {
|
|
||||||
$domain = '';
|
|
||||||
}
|
|
||||||
// path checks if set, if not valid path unset
|
|
||||||
if (
|
|
||||||
!empty($path) &&
|
|
||||||
!is_dir($path)
|
|
||||||
) {
|
|
||||||
$path = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// just emergency fallback for language
|
|
||||||
// set encoding
|
|
||||||
if (empty($encoding)) {
|
|
||||||
if (!empty($_SESSION['DEFAULT_CHARSET'])) {
|
|
||||||
$encoding = $_SESSION['DEFAULT_CHARSET'];
|
|
||||||
} else {
|
|
||||||
$encoding = DEFAULT_ENCODING;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// gobal override
|
|
||||||
if (empty($lang)) {
|
|
||||||
if (!empty($GLOBALS['OVERRIDE_LANG'])) {
|
|
||||||
$lang = $GLOBALS['OVERRIDE_LANG'];
|
|
||||||
} elseif (!empty($_SESSION['DEFAULT_LANG'])) {
|
|
||||||
// session (login)
|
|
||||||
$lang = $_SESSION['DEFAULT_LANG'];
|
|
||||||
} else {
|
|
||||||
// mostly default SITE LANG or DEFAULT LANG
|
|
||||||
$lang = defined('SITE_LANG') && !empty(SITE_LANG) ?
|
|
||||||
SITE_LANG :
|
|
||||||
DEFAULT_LANG;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// create the char lang encoding
|
|
||||||
if (empty($lang_short)) {
|
|
||||||
$lang_short = substr($lang, 0, 2);
|
|
||||||
}
|
|
||||||
// set the language folder
|
|
||||||
if (empty($path)) {
|
|
||||||
// LEGACY
|
|
||||||
$path = BASE . INCLUDES . LANG . CONTENT_PATH;
|
|
||||||
// will be BASE . INCLUDES . LANG . $language . /LC_MESSAGES/
|
|
||||||
// so CONTENT_PATH has to be removed
|
|
||||||
}
|
|
||||||
// if no domain is set, fall back to content path
|
|
||||||
if (empty($domain)) {
|
|
||||||
$domain = str_replace('/', '', CONTENT_PATH);
|
|
||||||
}
|
|
||||||
// return
|
|
||||||
return [
|
|
||||||
// as array
|
|
||||||
0 => $encoding,
|
|
||||||
1 => $lang,
|
|
||||||
2 => $lang_short,
|
|
||||||
3 => $domain,
|
|
||||||
4 => $path,
|
|
||||||
// with index name
|
|
||||||
// encoding
|
|
||||||
'encoding' => $encoding,
|
|
||||||
// language full string, eg en_US
|
|
||||||
'lang' => $lang,
|
|
||||||
// lang short, if eg en_US only en
|
|
||||||
'lang_short' => $lang_short,
|
|
||||||
// translation domain (CONTENT_PATH)
|
|
||||||
'domain' => $domain,
|
|
||||||
// folder BASE ONLY
|
|
||||||
'path' => $path,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
www/vendor/composer/autoload_classmap.php
vendored
1
www/vendor/composer/autoload_classmap.php
vendored
@@ -48,7 +48,6 @@ return array(
|
|||||||
'CoreLibs\\Language\\Core\\StringReader' => $baseDir . '/lib/CoreLibs/Language/Core/StringReader.php',
|
'CoreLibs\\Language\\Core\\StringReader' => $baseDir . '/lib/CoreLibs/Language/Core/StringReader.php',
|
||||||
'CoreLibs\\Language\\Encoding' => $baseDir . '/lib/CoreLibs/Language/Encoding.php',
|
'CoreLibs\\Language\\Encoding' => $baseDir . '/lib/CoreLibs/Language/Encoding.php',
|
||||||
'CoreLibs\\Language\\GetLocale' => $baseDir . '/lib/CoreLibs/Language/GetLocale.php',
|
'CoreLibs\\Language\\GetLocale' => $baseDir . '/lib/CoreLibs/Language/GetLocale.php',
|
||||||
'CoreLibs\\Language\\GetSettings' => $baseDir . '/lib/CoreLibs/Language/GetSettings.php',
|
|
||||||
'CoreLibs\\Language\\L10n' => $baseDir . '/lib/CoreLibs/Language/L10n.php',
|
'CoreLibs\\Language\\L10n' => $baseDir . '/lib/CoreLibs/Language/L10n.php',
|
||||||
'CoreLibs\\Output\\Form\\Elements' => $baseDir . '/lib/CoreLibs/Output/Form/Elements.php',
|
'CoreLibs\\Output\\Form\\Elements' => $baseDir . '/lib/CoreLibs/Output/Form/Elements.php',
|
||||||
'CoreLibs\\Output\\Form\\Generate' => $baseDir . '/lib/CoreLibs/Output/Form/Generate.php',
|
'CoreLibs\\Output\\Form\\Generate' => $baseDir . '/lib/CoreLibs/Output/Form/Generate.php',
|
||||||
|
|||||||
1
www/vendor/composer/autoload_static.php
vendored
1
www/vendor/composer/autoload_static.php
vendored
@@ -113,7 +113,6 @@ class ComposerStaticInit10fe8fe2ec4017b8644d2b64bcf398b9
|
|||||||
'CoreLibs\\Language\\Core\\StringReader' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/Core/StringReader.php',
|
'CoreLibs\\Language\\Core\\StringReader' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/Core/StringReader.php',
|
||||||
'CoreLibs\\Language\\Encoding' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/Encoding.php',
|
'CoreLibs\\Language\\Encoding' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/Encoding.php',
|
||||||
'CoreLibs\\Language\\GetLocale' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/GetLocale.php',
|
'CoreLibs\\Language\\GetLocale' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/GetLocale.php',
|
||||||
'CoreLibs\\Language\\GetSettings' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/GetSettings.php',
|
|
||||||
'CoreLibs\\Language\\L10n' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/L10n.php',
|
'CoreLibs\\Language\\L10n' => __DIR__ . '/../..' . '/lib/CoreLibs/Language/L10n.php',
|
||||||
'CoreLibs\\Output\\Form\\Elements' => __DIR__ . '/../..' . '/lib/CoreLibs/Output/Form/Elements.php',
|
'CoreLibs\\Output\\Form\\Elements' => __DIR__ . '/../..' . '/lib/CoreLibs/Output/Form/Elements.php',
|
||||||
'CoreLibs\\Output\\Form\\Generate' => __DIR__ . '/../..' . '/lib/CoreLibs/Output/Form/Generate.php',
|
'CoreLibs\\Output\\Form\\Generate' => __DIR__ . '/../..' . '/lib/CoreLibs/Output/Form/Generate.php',
|
||||||
|
|||||||
Reference in New Issue
Block a user