Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
330582f273 | ||
|
|
b0293b52bd | ||
|
|
00591deb00 | ||
|
|
737f70fac5 | ||
|
|
0328ccd2fe | ||
|
|
eba1e2885f | ||
|
|
53813261fb | ||
|
|
df2ae66942 |
329
4dev/tests/CoreLibsCheckColorsTest.php
Normal file
329
4dev/tests/CoreLibsCheckColorsTest.php
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace tests;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test class for Check\Colors
|
||||||
|
* @coversDefaultClass \CoreLibs\Check\Colors
|
||||||
|
* @testdox \CoreLibs\Check\Colors method tests
|
||||||
|
*/
|
||||||
|
final class CoreLibsCheckColorsTest extends TestCase
|
||||||
|
{
|
||||||
|
public function validateColorProvider(): array
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
0: input color string
|
||||||
|
1: flag (or flags to set)
|
||||||
|
2: expected result (bool)
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
// * hex
|
||||||
|
'valid hex rgb, flag ALL (default)' => [
|
||||||
|
'#ab12cd',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hex rgb, flag ALL' => [
|
||||||
|
'#ab12cd',
|
||||||
|
\CoreLibs\Check\Colors::ALL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hex rgb, flag HEX_RGB' => [
|
||||||
|
'#ab12cd',
|
||||||
|
\CoreLibs\Check\Colors::HEX_RGB,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hex rgb, wrong flag' => [
|
||||||
|
'#ab12cd',
|
||||||
|
\CoreLibs\Check\Colors::RGB,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// error
|
||||||
|
'invalid hex rgb A' => [
|
||||||
|
'#ab12zz',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'invalid hex rgb B' => [
|
||||||
|
'#ZyQfo',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// other valid hex checks
|
||||||
|
'valid hex rgb, alt A' => [
|
||||||
|
'#AB12cd',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// * hax alpha
|
||||||
|
'valid hex rgb alpha, flag ALL (default)' => [
|
||||||
|
'#ab12cd12',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hex rgb alpha, flag ALL' => [
|
||||||
|
'#ab12cd12',
|
||||||
|
\CoreLibs\Check\Colors::ALL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hex rgb alpha, flag HEX_RGBA' => [
|
||||||
|
'#ab12cd12',
|
||||||
|
\CoreLibs\Check\Colors::HEX_RGBA,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hex rgb alpha, wrong flag' => [
|
||||||
|
'#ab12cd12',
|
||||||
|
\CoreLibs\Check\Colors::RGB,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// error
|
||||||
|
'invalid hex rgb alpha A' => [
|
||||||
|
'#ab12dd1',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'invalid hex rgb alpha B' => [
|
||||||
|
'#ab12ddzz',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'valid hex rgb alpha, alt A' => [
|
||||||
|
'#ab12cdEE',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// * rgb
|
||||||
|
'valid rgb, flag ALL (default)' => [
|
||||||
|
'rgb(255, 10, 20)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid rgb, flag ALL' => [
|
||||||
|
'rgb(255, 10, 20)',
|
||||||
|
\CoreLibs\Check\Colors::ALL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid rgb, flag RGB' => [
|
||||||
|
'rgb(255, 10, 20)',
|
||||||
|
\CoreLibs\Check\Colors::RGB,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid rgb, wrong flag' => [
|
||||||
|
'rgb(255, 10, 20)',
|
||||||
|
\CoreLibs\Check\Colors::HEX_RGB,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// error
|
||||||
|
'invalid rgb A' => [
|
||||||
|
'rgb(356, 10, 20)',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// other valid rgb conbinations
|
||||||
|
'valid rgb, alt A (percent)' => [
|
||||||
|
'rgb(100%, 10%, 20%)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// TODO check all % and non percent combinations
|
||||||
|
'valid rgb, alt B (percent, mix)' => [
|
||||||
|
'rgb(100%, 10, 40)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// * rgb alpha
|
||||||
|
'valid rgba, flag ALL (default)' => [
|
||||||
|
'rgba(255, 10, 20, 0.5)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid rgba, flag ALL' => [
|
||||||
|
'rgba(255, 10, 20, 0.5)',
|
||||||
|
\CoreLibs\Check\Colors::ALL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid rgba, flag RGB' => [
|
||||||
|
'rgba(255, 10, 20, 0.5)',
|
||||||
|
\CoreLibs\Check\Colors::RGBA,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid rgba, wrong flag' => [
|
||||||
|
'rgba(255, 10, 20, 0.5)',
|
||||||
|
\CoreLibs\Check\Colors::HEX_RGB,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// error
|
||||||
|
'invalid rgba A' => [
|
||||||
|
'rgba(356, 10, 20, 0.5)',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
// other valid rgba combinations
|
||||||
|
'valid rgba, alt A (percent)' => [
|
||||||
|
'rgba(100%, 10%, 20%, 0.5)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// TODO check all % and non percent combinations
|
||||||
|
'valid rgba, alt B (percent, mix)' => [
|
||||||
|
'rgba(100%, 10, 40, 0.5)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// TODO check all % and non percent combinations with percent transparent
|
||||||
|
'valid rgba, alt C (percent transparent)' => [
|
||||||
|
'rgba(100%, 10%, 20%, 50%)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
/*
|
||||||
|
// hsl
|
||||||
|
'hsl(100, 50%, 60%)',
|
||||||
|
'hsl(100, 50.5%, 60.5%)',
|
||||||
|
'hsla(100, 50%, 60%)',
|
||||||
|
'hsla(100, 50.5%, 60.5%)',
|
||||||
|
'hsla(100, 50%, 60%, 0.5)',
|
||||||
|
'hsla(100, 50.5%, 60.5%, 0.5)',
|
||||||
|
'hsla(100, 50%, 60%, 50%)',
|
||||||
|
'hsla(100, 50.5%, 60.5%, 50%)',
|
||||||
|
*/
|
||||||
|
// * hsl
|
||||||
|
'valid hsl, flag ALL (default)' => [
|
||||||
|
'hsl(100, 50%, 60%)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsl, flag ALL' => [
|
||||||
|
'hsl(100, 50%, 60%)',
|
||||||
|
\CoreLibs\Check\Colors::ALL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsl, flag RGB' => [
|
||||||
|
'hsl(100, 50%, 60%)',
|
||||||
|
\CoreLibs\Check\Colors::HSL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsl, wrong flag' => [
|
||||||
|
'hsl(100, 50%, 60%)',
|
||||||
|
\CoreLibs\Check\Colors::HEX_RGB,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'invalid hsl A' => [
|
||||||
|
'hsl(500, 50%, 60%)',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'valid hsl, alt A' => [
|
||||||
|
'hsl(100, 50.5%, 60.5%)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// * hsl alpha
|
||||||
|
'valid hsla, flag ALL (default)' => [
|
||||||
|
'hsla(100, 50%, 60%, 0.5)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsla, flag ALL' => [
|
||||||
|
'hsla(100, 50%, 60%, 0.5)',
|
||||||
|
\CoreLibs\Check\Colors::ALL,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsla, flag RGB' => [
|
||||||
|
'hsla(100, 50%, 60%, 0.5)',
|
||||||
|
\CoreLibs\Check\Colors::HSLA,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsla, wrong flag' => [
|
||||||
|
'hsla(100, 50%, 60%, 0.5)',
|
||||||
|
\CoreLibs\Check\Colors::HEX_RGB,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'invalid hsla A' => [
|
||||||
|
'hsla(500, 50%, 60%, 0.5)',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'valid hsla, alt A (percent alpha' => [
|
||||||
|
'hsla(100, 50%, 60%, 50%)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'valid hsla, alt A (percent alpha' => [
|
||||||
|
'hsla(100, 50.5%, 60.5%, 50%)',
|
||||||
|
null,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// * combined flag checks
|
||||||
|
'valid rgb, flag RGB|RGBA' => [
|
||||||
|
'rgb(100%, 10%, 20%)',
|
||||||
|
\CoreLibs\Check\Colors::RGB | \CoreLibs\Check\Colors::RGBA,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
// TODO other combined flag checks all combinations
|
||||||
|
// * invalid string
|
||||||
|
'invalid string A' => [
|
||||||
|
'invalid string',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'invalid string B' => [
|
||||||
|
'(hsla(100, 100, 100))',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'invalid string C' => [
|
||||||
|
'hsla(100, 100, 100',
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Undocumented function
|
||||||
|
*
|
||||||
|
* @covers ::validateColor
|
||||||
|
* @dataProvider validateColorProvider
|
||||||
|
* @testdox validateColor $input with flags $flags be $expected [$_dataName]
|
||||||
|
*
|
||||||
|
* @param string $input
|
||||||
|
* @param int|null $flags
|
||||||
|
* @param bool $expected
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testValidateColor(string $input, ?int $flags, bool $expected)
|
||||||
|
{
|
||||||
|
if ($flags === null) {
|
||||||
|
$result = \CoreLibs\Check\Colors::validateColor($input);
|
||||||
|
} else {
|
||||||
|
$result = \CoreLibs\Check\Colors::validateColor($input, $flags);
|
||||||
|
}
|
||||||
|
$this->assertEquals(
|
||||||
|
$expected,
|
||||||
|
$result
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Undocumented function
|
||||||
|
*
|
||||||
|
* @covers ::validateColor
|
||||||
|
* @testWith [99]
|
||||||
|
* @testdox Check Exception throw for $flag
|
||||||
|
*
|
||||||
|
* @param int $flag
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testValidateColorException(int $flag): void
|
||||||
|
{
|
||||||
|
$this->expectException(\Exception::class);
|
||||||
|
\CoreLibs\Check\Colors::validateColor('#ffffff', $flag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// __END__
|
||||||
@@ -240,6 +240,41 @@ final class CoreLibsConvertByteTest extends TestCase
|
|||||||
\CoreLibs\Convert\Byte::stringByteFormat($input, \CoreLibs\Convert\Byte::BYTE_FORMAT_SI)
|
\CoreLibs\Convert\Byte::stringByteFormat($input, \CoreLibs\Convert\Byte::BYTE_FORMAT_SI)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exceptions tests
|
||||||
|
*
|
||||||
|
* @covers ::humanReadableByteFormat
|
||||||
|
* @testWith [99]
|
||||||
|
* @testdox Test exception for humanReadableByteFormat with flag $flag
|
||||||
|
*
|
||||||
|
* @param int $flag
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testHumanReadableByteFormatException(int $flag): void
|
||||||
|
{
|
||||||
|
$this->expectException(\Exception::class);
|
||||||
|
\CoreLibs\Convert\Byte::humanReadableByteFormat(12, $flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exceptions tests
|
||||||
|
* can only be 4, try 1,2 and over
|
||||||
|
*
|
||||||
|
* @covers ::stringByteFormat
|
||||||
|
* @testWith [1]
|
||||||
|
* [2]
|
||||||
|
* [99]
|
||||||
|
* @testdox Test exception for stringByteFormat with flag $flag
|
||||||
|
*
|
||||||
|
* @param int $flag
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testStringByteFormatException(int $flag): void
|
||||||
|
{
|
||||||
|
$this->expectException(\Exception::class);
|
||||||
|
\CoreLibs\Convert\Byte::stringByteFormat(12, $flag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -122,6 +122,8 @@ final class CoreLibsConvertColorsTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function rgb2hslAndhsbList(): array
|
public function rgb2hslAndhsbList(): array
|
||||||
{
|
{
|
||||||
|
// if hsb_from or hsl_from is set, this will be used in hsb/hsl convert
|
||||||
|
// hsb_rgb is used for adjusted rgb valus due to round error to in
|
||||||
return [
|
return [
|
||||||
'valid gray' => [
|
'valid gray' => [
|
||||||
'rgb' => [12, 12, 12],
|
'rgb' => [12, 12, 12],
|
||||||
@@ -137,6 +139,16 @@ final class CoreLibsConvertColorsTest extends TestCase
|
|||||||
'hsl' => [211.6, 90.5, 41.2],
|
'hsl' => [211.6, 90.5, 41.2],
|
||||||
'valid' => true,
|
'valid' => true,
|
||||||
],
|
],
|
||||||
|
// hsg/hsl with 360 which is seen as 0
|
||||||
|
'valid color hue 360' => [
|
||||||
|
'rgb' => [200, 10, 10],
|
||||||
|
'hsb' => [0, 95, 78.0],
|
||||||
|
'hsb_from' => [360, 95, 78.0],
|
||||||
|
'hsb_rgb' => [199, 10, 10], // should be rgb, but rounding error
|
||||||
|
'hsl' => [0.0, 90.5, 41.2],
|
||||||
|
'hsl_from' => [360.0, 90.5, 41.2],
|
||||||
|
'valid' => true,
|
||||||
|
],
|
||||||
// invalid values
|
// invalid values
|
||||||
'invalid color' => [
|
'invalid color' => [
|
||||||
'rgb' => [-12, 300, 12],
|
'rgb' => [-12, 300, 12],
|
||||||
@@ -176,9 +188,9 @@ final class CoreLibsConvertColorsTest extends TestCase
|
|||||||
$list = [];
|
$list = [];
|
||||||
foreach ($this->rgb2hslAndhsbList() as $name => $values) {
|
foreach ($this->rgb2hslAndhsbList() as $name => $values) {
|
||||||
$list[$name . ', hsb to rgb'] = [
|
$list[$name . ', hsb to rgb'] = [
|
||||||
0 => $values['hsb'][0],
|
0 => $values['hsb_from'][0] ?? $values['hsb'][0],
|
||||||
1 => $values['hsb'][1],
|
1 => $values['hsb_from'][1] ?? $values['hsb'][1],
|
||||||
2 => $values['hsb'][2],
|
2 => $values['hsb_from'][2] ?? $values['hsb'][2],
|
||||||
3 => $values['valid'] ? $values['hsb_rgb'] : false
|
3 => $values['valid'] ? $values['hsb_rgb'] : false
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -214,9 +226,9 @@ final class CoreLibsConvertColorsTest extends TestCase
|
|||||||
$list = [];
|
$list = [];
|
||||||
foreach ($this->rgb2hslAndhsbList() as $name => $values) {
|
foreach ($this->rgb2hslAndhsbList() as $name => $values) {
|
||||||
$list[$name . ', hsl to rgb'] = [
|
$list[$name . ', hsl to rgb'] = [
|
||||||
0 => $values['hsl'][0],
|
0 => $values['hsl_from'][0] ?? $values['hsl'][0],
|
||||||
1 => $values['hsl'][1],
|
1 => $values['hsl_from'][1] ?? $values['hsl'][1],
|
||||||
2 => $values['hsl'][2],
|
2 => $values['hsl_from'][2] ?? $values['hsl'][2],
|
||||||
3 => $values['valid'] ? $values['rgb'] : false
|
3 => $values['valid'] ? $values['rgb'] : false
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -382,6 +394,27 @@ final class CoreLibsConvertColorsTest extends TestCase
|
|||||||
\CoreLibs\Convert\Colors::hsl2rgb($input_h, $input_s, $input_l)
|
\CoreLibs\Convert\Colors::hsl2rgb($input_h, $input_s, $input_l)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* edge case check hsl/hsb and hue 360 (= 0)
|
||||||
|
*
|
||||||
|
* @covers ::hsl2rgb
|
||||||
|
* @covers ::hsb2rgb
|
||||||
|
* @testdox hsl2rgb/hsb2rgb hue 360 valid check
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testHslHsb360hue(): void
|
||||||
|
{
|
||||||
|
$this->assertNotFalse(
|
||||||
|
\CoreLibs\Convert\Colors::hsl2rgb(360.0, 90.5, 41.2),
|
||||||
|
'HSL to RGB with 360 hue'
|
||||||
|
);
|
||||||
|
$this->assertNotFalse(
|
||||||
|
\CoreLibs\Convert\Colors::hsb2rgb(360, 95, 78.0),
|
||||||
|
'HSB to RGB with 360 hue'
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
-- Fixes for column types
|
||||||
|
|
||||||
|
-- edit group
|
||||||
|
ALTER TABLE edit_group ALTER name TYPE VARCHAR;
|
||||||
|
-- edit language
|
||||||
|
ALTER TABLE edit_language ALTER short_name TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_language ALTER long_name TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_language ALTER iso_name TYPE VARCHAR;
|
||||||
|
-- edit menu group
|
||||||
|
ALTER TABLE edit_menu_group ALTER name TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_menu_group ALTER flag TYPE VARCHAR;
|
||||||
|
-- edit page
|
||||||
|
ALTER TABLE edit_page ALTER filename TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_page ALTER name TYPE VARCHAR;
|
||||||
|
-- edit query string
|
||||||
|
ALTER TABLE edit_query_string ALTER name TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_query_string ALTER value TYPE VARCHAR;
|
||||||
|
-- edit scheme
|
||||||
|
ALTER TABLE edit_scheme ALTER name TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_scheme ALTER header_color TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_scheme ALTER css_file TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_scheme ALTER template TYPE VARCHAR;
|
||||||
|
-- edit visible group
|
||||||
|
ALTER TABLE edit_visible_group ALTER name TYPE VARCHAR;
|
||||||
|
ALTER TABLE edit_visible_group ALTER flag TYPE VARCHAR;
|
||||||
123
www/admin/class_test.check.colors.php
Normal file
123
www/admin/class_test.check.colors.php
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
<?php // phpcs:ignore warning
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @phan-file-suppress PhanTypeSuspiciousStringExpression
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
$DEBUG_ALL_OVERRIDE = 0; // set to 1 to debug on live/remote server locations
|
||||||
|
$DEBUG_ALL = 1;
|
||||||
|
$PRINT_ALL = 1;
|
||||||
|
$DB_DEBUG = 1;
|
||||||
|
|
||||||
|
if ($DEBUG_ALL) {
|
||||||
|
error_reporting(E_ALL | E_STRICT | E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
|
||||||
|
// basic class test file
|
||||||
|
define('USE_DATABASE', false);
|
||||||
|
// sample config
|
||||||
|
require 'config.php';
|
||||||
|
// define log file id
|
||||||
|
$LOG_FILE_ID = 'classTest-check-colors';
|
||||||
|
ob_end_flush();
|
||||||
|
|
||||||
|
use CoreLibs\Check\Colors;
|
||||||
|
// use CoreLibs\Debug\Support as DgS;
|
||||||
|
|
||||||
|
$log = new CoreLibs\Debug\Logging([
|
||||||
|
'log_folder' => BASE . LOG,
|
||||||
|
'file_id' => $LOG_FILE_ID,
|
||||||
|
// add file date
|
||||||
|
'print_file_date' => true,
|
||||||
|
// set debug and print flags
|
||||||
|
'debug_all' => $DEBUG_ALL ?? false,
|
||||||
|
'echo_all' => $ECHO_ALL ?? false,
|
||||||
|
'print_all' => $PRINT_ALL ?? false,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$PAGE_NAME = 'TEST CLASS: CHECK COLORS';
|
||||||
|
print "<!DOCTYPE html>";
|
||||||
|
print "<html><head><title>" . $PAGE_NAME . "</title><head>";
|
||||||
|
print "<body>";
|
||||||
|
print '<div><a href="class_test.php">Class Test Master</a></div>';
|
||||||
|
print '<div><h1>' . $PAGE_NAME . '</h1></div>';
|
||||||
|
|
||||||
|
// list of colors to check
|
||||||
|
$css_colors = [
|
||||||
|
// base hex
|
||||||
|
'#ab12cd',
|
||||||
|
'#ab12cd12',
|
||||||
|
// rgb
|
||||||
|
'rgb(255, 10, 20)',
|
||||||
|
'rgb(100%, 10%, 20%)',
|
||||||
|
'rgba(255, 10, 20)',
|
||||||
|
'rgba(100%, 10%, 20%)',
|
||||||
|
'rgba(255, 10, 20, 0.5)',
|
||||||
|
'rgba(100%, 10%, 20%, 0.5)',
|
||||||
|
'rgba(255, 10, 20, 50%)',
|
||||||
|
'rgba(100%, 10%, 20%, 50%)',
|
||||||
|
// hsl
|
||||||
|
'hsl(100, 50%, 60%)',
|
||||||
|
'hsl(100, 50.5%, 60.5%)',
|
||||||
|
'hsla(100, 50%, 60%)',
|
||||||
|
'hsla(100, 50.5%, 60.5%)',
|
||||||
|
'hsla(100, 50%, 60%, 0.5)',
|
||||||
|
'hsla(100, 50.5%, 60.5%, 0.5)',
|
||||||
|
'hsla(100, 50%, 60%, 50%)',
|
||||||
|
'hsla(100, 50.5%, 60.5%, 50%)',
|
||||||
|
// invalid here
|
||||||
|
'invalid string',
|
||||||
|
'(hsla(100, 100, 100))',
|
||||||
|
'hsla(100, 100, 100',
|
||||||
|
// invalid numbers
|
||||||
|
'#zzab99',
|
||||||
|
'#abcdef0',
|
||||||
|
'rgb(255%, 100, 100)',
|
||||||
|
'rgb(255%, 100, -10)',
|
||||||
|
'rgb(100%, 100, -10)',
|
||||||
|
'hsl(370, 100, 10)',
|
||||||
|
'hsl(200, 100%, 160%)',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($css_colors as $color) {
|
||||||
|
$check = Colors::validateColor($color);
|
||||||
|
print "Color check: $color with (" . Colors::ALL . "): ";
|
||||||
|
if ($check) {
|
||||||
|
print '<span style="color: green;">OK</span>';
|
||||||
|
} else {
|
||||||
|
print '<span style="color: red;">ERROR</span>';
|
||||||
|
}
|
||||||
|
print "<br>";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<hr>";
|
||||||
|
|
||||||
|
// valid rgb/hsl checks
|
||||||
|
$color = 'hsla(360, 100%, 60%, 0.556)';
|
||||||
|
$check = Colors::validateColor($color);
|
||||||
|
print "Color check: $color with (" . Colors::ALL . "): ";
|
||||||
|
if ($check) {
|
||||||
|
print '<span style="color: green;">OK</span>';
|
||||||
|
} else {
|
||||||
|
print '<span style="color: red;">ERROR</span>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// invalid flag
|
||||||
|
echo "<hr>";
|
||||||
|
try {
|
||||||
|
$check = Colors::validateColor('#ab12cd', 99);
|
||||||
|
print "No Exception";
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
print "ERROR: " . $e->getCode() . ": " . $e->getMessage() . "<br>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// error message
|
||||||
|
print $log->printErrorMsg();
|
||||||
|
|
||||||
|
print "</body></html>";
|
||||||
|
|
||||||
|
// __END__
|
||||||
@@ -22,7 +22,7 @@ define('USE_DATABASE', false);
|
|||||||
// sample config
|
// sample config
|
||||||
require 'config.php';
|
require 'config.php';
|
||||||
// define log file id
|
// define log file id
|
||||||
$LOG_FILE_ID = 'classTest-colors';
|
$LOG_FILE_ID = 'classTest-convert-colors';
|
||||||
ob_end_flush();
|
ob_end_flush();
|
||||||
|
|
||||||
use CoreLibs\Convert\Colors;
|
use CoreLibs\Convert\Colors;
|
||||||
@@ -40,7 +40,7 @@ $log = new CoreLibs\Debug\Logging([
|
|||||||
]);
|
]);
|
||||||
$color_class = 'CoreLibs\Convert\Colors';
|
$color_class = 'CoreLibs\Convert\Colors';
|
||||||
|
|
||||||
$PAGE_NAME = 'TEST CLASS: COLORS';
|
$PAGE_NAME = 'TEST CLASS: CONVERT COLORS';
|
||||||
print "<!DOCTYPE html>";
|
print "<!DOCTYPE html>";
|
||||||
print "<html><head><title>" . $PAGE_NAME . "</title><head>";
|
print "<html><head><title>" . $PAGE_NAME . "</title><head>";
|
||||||
print "<body>";
|
print "<body>";
|
||||||
@@ -55,7 +55,8 @@ print "<body>";
|
|||||||
|
|
||||||
print '<div><a href="class_test.db.php">Class Test: DB</a></div>';
|
print '<div><a href="class_test.db.php">Class Test: DB</a></div>';
|
||||||
print '<div><a href="class_test.db.dbReturn.php">Class Test: DB dbReturn</a></div>';
|
print '<div><a href="class_test.db.dbReturn.php">Class Test: DB dbReturn</a></div>';
|
||||||
print '<div><a href="class_test.colors.php">Class Test: COLORS</a></div>';
|
print '<div><a href="class_test.convert.colors.php">Class Test: CONVERT COLORS</a></div>';
|
||||||
|
print '<div><a href="class_test.check.colors.php">Class Test: CHECK COLORS</a></div>';
|
||||||
print '<div><a href="class_test.mime.php">Class Test: MIME</a></div>';
|
print '<div><a href="class_test.mime.php">Class Test: MIME</a></div>';
|
||||||
print '<div><a href="class_test.json.php">Class Test: JSON</a></div>';
|
print '<div><a href="class_test.json.php">Class Test: JSON</a></div>';
|
||||||
print '<div><a href="class_test.token.php">Class Test: FORM TOKEN</a></div>';
|
print '<div><a href="class_test.token.php">Class Test: FORM TOKEN</a></div>';
|
||||||
|
|||||||
@@ -58,10 +58,6 @@ $l10n = new \CoreLibs\Language\L10n(
|
|||||||
// flush and start
|
// flush and start
|
||||||
ob_end_flush();
|
ob_end_flush();
|
||||||
|
|
||||||
// FIXME: only extract _POST data that is needed
|
|
||||||
// FIXME: update table_arrays reader to use other than $_GLOBALS
|
|
||||||
extract($_POST, EXTR_SKIP);
|
|
||||||
|
|
||||||
// init smarty and form class
|
// init smarty and form class
|
||||||
$edit_base = new CoreLibs\Admin\EditBase(DB_CONFIG, $log, $l10n, $locale);
|
$edit_base = new CoreLibs\Admin\EditBase(DB_CONFIG, $log, $l10n, $locale);
|
||||||
// creates edit pages and runs actions
|
// creates edit pages and runs actions
|
||||||
|
|||||||
@@ -5,35 +5,36 @@ declare(strict_types=1);
|
|||||||
$edit_access = [
|
$edit_access = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_access_id' => [
|
'edit_access_id' => [
|
||||||
'value' => $GLOBALS['edit_access_id'] ?? '',
|
'value' => $_POST['edit_access_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1
|
'pk' => 1
|
||||||
],
|
],
|
||||||
'name' => [
|
'name' => [
|
||||||
'value' => $GLOBALS['name'] ?? '',
|
'value' => $_POST['name'] ?? '',
|
||||||
'output_name' => 'Access Group Name',
|
'output_name' => 'Access Group Name',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'error_check' => 'alphanumericspace|unique'
|
'error_check' => 'alphanumericspace|unique'
|
||||||
],
|
],
|
||||||
'description' => [
|
'description' => [
|
||||||
'value' => $GLOBALS['description'] ?? '',
|
'value' => $_POST['description'] ?? '',
|
||||||
'output_name' => 'Description',
|
'output_name' => 'Description',
|
||||||
'type' => 'textarea'
|
'type' => 'textarea'
|
||||||
],
|
],
|
||||||
'color' => [
|
'color' => [
|
||||||
'value' => $GLOBALS['color'] ?? '',
|
'value' => $_POST['color'] ?? '',
|
||||||
'output_name' => 'Color',
|
'output_name' => 'Color',
|
||||||
'mandatory' => 0,
|
'mandatory' => 0,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'size' => 6,
|
'size' => 10,
|
||||||
'length' => 6,
|
'length' => 9,
|
||||||
'error_check' => 'custom',
|
'error_check' => 'custom',
|
||||||
'error_regex' => "/[\dA-Fa-f]{6}/",
|
// FIXME: update regex check for hex/rgb/hsl with color check class
|
||||||
'error_example' => 'F6A544'
|
'error_regex' => '/^#([\dA-Fa-f]{6}|[\dA-Fa-f]{8})$/',
|
||||||
|
'error_example' => '#F6A544'
|
||||||
],
|
],
|
||||||
'enabled' => [
|
'enabled' => [
|
||||||
'value' => $GLOBALS['enabled'] ?? 0,
|
'value' => $_POST['enabled'] ?? 0,
|
||||||
'output_name' => 'Enabled',
|
'output_name' => 'Enabled',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1, // OR 'bool' => 1
|
'int' => 1, // OR 'bool' => 1
|
||||||
@@ -43,7 +44,7 @@ $edit_access = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'protected' => [
|
'protected' => [
|
||||||
'value' => $GLOBALS['protected'] ?? 0,
|
'value' => $_POST['protected'] ?? 0,
|
||||||
'output_name' => 'Protected',
|
'output_name' => 'Protected',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -53,7 +54,7 @@ $edit_access = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'additional_acl' => [
|
'additional_acl' => [
|
||||||
'value' => $GLOBALS['additional_acl'] ?? '',
|
'value' => $_POST['additional_acl'] ?? '',
|
||||||
'output_name' => 'Additional ACL (as JSON)',
|
'output_name' => 'Additional ACL (as JSON)',
|
||||||
'type' => 'textarea',
|
'type' => 'textarea',
|
||||||
'error_check' => 'json',
|
'error_check' => 'json',
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ declare(strict_types=1);
|
|||||||
$edit_groups = [
|
$edit_groups = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_group_id' => [
|
'edit_group_id' => [
|
||||||
'value' => $GLOBALS['edit_group_id'] ?? '',
|
'value' => $_POST['edit_group_id'] ?? '',
|
||||||
'pk' => 1,
|
'pk' => 1,
|
||||||
'type' => 'hidden'
|
'type' => 'hidden'
|
||||||
],
|
],
|
||||||
'enabled' => [
|
'enabled' => [
|
||||||
'value' => $GLOBALS['enabled'] ?? '',
|
'value' => $_POST['enabled'] ?? '',
|
||||||
'output_name' => 'Enabled',
|
'output_name' => 'Enabled',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
@@ -20,13 +20,13 @@ $edit_groups = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'name' => [
|
'name' => [
|
||||||
'value' => $GLOBALS['name'] ?? '',
|
'value' => $_POST['name'] ?? '',
|
||||||
'output_name' => 'Group Name',
|
'output_name' => 'Group Name',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'mandatory' => 1
|
'mandatory' => 1
|
||||||
],
|
],
|
||||||
'edit_access_right_id' => [
|
'edit_access_right_id' => [
|
||||||
'value' => $GLOBALS['edit_access_right_id'] ?? '',
|
'value' => $_POST['edit_access_right_id'] ?? '',
|
||||||
'output_name' => 'Group Level',
|
'output_name' => 'Group Level',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -34,14 +34,14 @@ $edit_groups = [
|
|||||||
'query' => "SELECT edit_access_right_id, name FROM edit_access_right ORDER BY level"
|
'query' => "SELECT edit_access_right_id, name FROM edit_access_right ORDER BY level"
|
||||||
],
|
],
|
||||||
'edit_scheme_id' => [
|
'edit_scheme_id' => [
|
||||||
'value' => $GLOBALS['edit_scheme_id'] ?? '',
|
'value' => $_POST['edit_scheme_id'] ?? '',
|
||||||
'output_name' => 'Group Scheme',
|
'output_name' => 'Group Scheme',
|
||||||
'int_null' => 1,
|
'int_null' => 1,
|
||||||
'type' => 'drop_down_db',
|
'type' => 'drop_down_db',
|
||||||
'query' => "SELECT edit_scheme_id, name FROM edit_scheme WHERE enabled = 1 ORDER BY name"
|
'query' => "SELECT edit_scheme_id, name FROM edit_scheme WHERE enabled = 1 ORDER BY name"
|
||||||
],
|
],
|
||||||
'additional_acl' => [
|
'additional_acl' => [
|
||||||
'value' => $GLOBALS['additional_acl'] ?? '',
|
'value' => $_POST['additional_acl'] ?? '',
|
||||||
'output_name' => 'Additional ACL (as JSON)',
|
'output_name' => 'Additional ACL (as JSON)',
|
||||||
'type' => 'textarea',
|
'type' => 'textarea',
|
||||||
'error_check' => 'json',
|
'error_check' => 'json',
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ declare(strict_types=1);
|
|||||||
$edit_languages = [
|
$edit_languages = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_language_id' => [
|
'edit_language_id' => [
|
||||||
'value' => $GLOBALS['edit_language_id'] ?? '',
|
'value' => $_POST['edit_language_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1
|
'pk' => 1
|
||||||
],
|
],
|
||||||
'short_name' => [
|
'short_name' => [
|
||||||
'value' => $GLOBALS['short_name'] ?? '',
|
'value' => $_POST['short_name'] ?? '',
|
||||||
'output_name' => 'Language (short)',
|
'output_name' => 'Language (short)',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
@@ -18,25 +18,25 @@ $edit_languages = [
|
|||||||
'length' => 2
|
'length' => 2
|
||||||
],
|
],
|
||||||
'long_name' => [
|
'long_name' => [
|
||||||
'value' => $GLOBALS['long_name'] ?? '',
|
'value' => $_POST['long_name'] ?? '',
|
||||||
'output_name' => 'Language (long)',
|
'output_name' => 'Language (long)',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'size' => 40
|
'size' => 40
|
||||||
],
|
],
|
||||||
'iso_name' => [
|
'iso_name' => [
|
||||||
'value' => $GLOBALS['iso_name'] ?? '',
|
'value' => $_POST['iso_name'] ?? '',
|
||||||
'output_name' => 'ISO Code',
|
'output_name' => 'ISO Code',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'order_number' => [
|
'order_number' => [
|
||||||
'value' => $GLOBALS['order_number'] ?? '',
|
'value' => $_POST['order_number'] ?? '',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'order' => 1
|
'order' => 1
|
||||||
],
|
],
|
||||||
'enabled' => [
|
'enabled' => [
|
||||||
'value' => $GLOBALS['enabled'] ?? '',
|
'value' => $_POST['enabled'] ?? '',
|
||||||
'output_name' => 'Enabled',
|
'output_name' => 'Enabled',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
@@ -46,7 +46,7 @@ $edit_languages = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'lang_default' => [
|
'lang_default' => [
|
||||||
'value' => $GLOBALS['lang_default'] ?? '',
|
'value' => $_POST['lang_default'] ?? '',
|
||||||
'output_name' => 'Default Language',
|
'output_name' => 'Default Language',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
|
|||||||
@@ -5,25 +5,25 @@ declare(strict_types=1);
|
|||||||
$edit_menu_group = [
|
$edit_menu_group = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_menu_group_id' => [
|
'edit_menu_group_id' => [
|
||||||
'value' => $GLOBALS['edit_menu_group_id'] ?? '',
|
'value' => $_POST['edit_menu_group_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1
|
'pk' => 1
|
||||||
],
|
],
|
||||||
'name' => [
|
'name' => [
|
||||||
'value' => $GLOBALS['name'] ?? '',
|
'value' => $_POST['name'] ?? '',
|
||||||
'output_name' => 'Group name',
|
'output_name' => 'Group name',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'flag' => [
|
'flag' => [
|
||||||
'value' => $GLOBALS['flag'] ?? '',
|
'value' => $_POST['flag'] ?? '',
|
||||||
'output_name' => 'Flag',
|
'output_name' => 'Flag',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'error_check' => 'alphanumeric|unique'
|
'error_check' => 'alphanumeric|unique'
|
||||||
],
|
],
|
||||||
'order_number' => [
|
'order_number' => [
|
||||||
'value' => $GLOBALS['order_number'] ?? '',
|
'value' => $_POST['order_number'] ?? '',
|
||||||
'output_name' => 'Group order',
|
'output_name' => 'Group order',
|
||||||
'type' => 'order',
|
'type' => 'order',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
|
|||||||
@@ -5,40 +5,41 @@ declare(strict_types=1);
|
|||||||
$edit_pages = [
|
$edit_pages = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_page_id' => [
|
'edit_page_id' => [
|
||||||
'value' => $GLOBALS['edit_page_id'] ?? '',
|
'value' => $_POST['edit_page_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1
|
'pk' => 1
|
||||||
],
|
],
|
||||||
'filename' => [
|
'filename' => [
|
||||||
'value' => $GLOBALS['filename'] ?? '',
|
'value' => $_POST['filename'] ?? '',
|
||||||
'output_name' => 'Add File ...',
|
'output_name' => 'Add File ...',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'drop_down_db',
|
'type' => 'drop_down_db',
|
||||||
'query' => "SELECT DISTINCT temp_files.filename AS id, temp_files.folder || temp_files.filename AS name "
|
'query' => "SELECT DISTINCT temp_files.filename AS id, "
|
||||||
|
. "temp_files.folder || temp_files.filename AS name "
|
||||||
. "FROM temp_files "
|
. "FROM temp_files "
|
||||||
. "LEFT JOIN edit_page ep ON temp_files.filename = ep.filename "
|
. "LEFT JOIN edit_page ep ON temp_files.filename = ep.filename "
|
||||||
. "WHERE ep.filename IS NULL"
|
. "WHERE ep.filename IS NULL"
|
||||||
],
|
],
|
||||||
'hostname' => [
|
'hostname' => [
|
||||||
'value' => $GLOBALS['hostname'] ?? '',
|
'value' => $_POST['hostname'] ?? '',
|
||||||
'output_name' => 'Hostname or folder',
|
'output_name' => 'Hostname or folder',
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'name' => [
|
'name' => [
|
||||||
'value' => $GLOBALS['name'] ?? '',
|
'value' => $_POST['name'] ?? '',
|
||||||
'output_name' => 'Page name',
|
'output_name' => 'Page name',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'order_number' => [
|
'order_number' => [
|
||||||
'value' => $GLOBALS['order_number'] ?? '',
|
'value' => $_POST['order_number'] ?? '',
|
||||||
'output_name' => 'Page order',
|
'output_name' => 'Page order',
|
||||||
'type' => 'order',
|
'type' => 'order',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'order' => 1
|
'order' => 1
|
||||||
],
|
],
|
||||||
/* 'flag' => [
|
/* 'flag' => [
|
||||||
'value' => isset($GLOBALS['flag']) ? $GLOBALS['flag'] : '',
|
'value' => $_POST['flag']) ?? '',
|
||||||
'output_name' => 'Page Flag',
|
'output_name' => 'Page Flag',
|
||||||
'type' => 'drop_down_array',
|
'type' => 'drop_down_array',
|
||||||
'query' => [
|
'query' => [
|
||||||
@@ -51,7 +52,7 @@ $edit_pages = [
|
|||||||
],
|
],
|
||||||
],*/
|
],*/
|
||||||
'online' => [
|
'online' => [
|
||||||
'value' => $GLOBALS['online'] ?? '',
|
'value' => $_POST['online'] ?? '',
|
||||||
'output_name' => 'Online',
|
'output_name' => 'Online',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
@@ -61,7 +62,7 @@ $edit_pages = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'menu' => [
|
'menu' => [
|
||||||
'value' => $GLOBALS['menu'] ?? '',
|
'value' => $_POST['menu'] ?? '',
|
||||||
'output_name' => 'Menu',
|
'output_name' => 'Menu',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
@@ -71,7 +72,7 @@ $edit_pages = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'popup' => [
|
'popup' => [
|
||||||
'value' => $GLOBALS['popup'] ?? '',
|
'value' => $_POST['popup'] ?? '',
|
||||||
'output_name' => 'Popup',
|
'output_name' => 'Popup',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
@@ -81,7 +82,7 @@ $edit_pages = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'popup_x' => [
|
'popup_x' => [
|
||||||
'value' => $GLOBALS['popup_x'] ?? '',
|
'value' => $_POST['popup_x'] ?? '',
|
||||||
'output_name' => 'Popup Width',
|
'output_name' => 'Popup Width',
|
||||||
'int_null' => 1,
|
'int_null' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
@@ -89,7 +90,7 @@ $edit_pages = [
|
|||||||
'length' => 4
|
'length' => 4
|
||||||
],
|
],
|
||||||
'popup_y' => [
|
'popup_y' => [
|
||||||
'value' => $GLOBALS['popup_y'] ?? '',
|
'value' => $_POST['popup_y'] ?? '',
|
||||||
'output_name' => 'Popup Height',
|
'output_name' => 'Popup Height',
|
||||||
'int_null' => 1,
|
'int_null' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
@@ -97,7 +98,7 @@ $edit_pages = [
|
|||||||
'length' => 4
|
'length' => 4
|
||||||
],
|
],
|
||||||
'content_alias_edit_page_id' => [
|
'content_alias_edit_page_id' => [
|
||||||
'value' => $GLOBALS['content_alias_edit_page_id'] ?? '',
|
'value' => $_POST['content_alias_edit_page_id'] ?? '',
|
||||||
'output_name' => 'Content Alias Source',
|
'output_name' => 'Content Alias Source',
|
||||||
'int_null' => 1,
|
'int_null' => 1,
|
||||||
'type' => 'drop_down_db',
|
'type' => 'drop_down_db',
|
||||||
@@ -110,7 +111,7 @@ $edit_pages = [
|
|||||||
'order_by' => 'order_number'
|
'order_by' => 'order_number'
|
||||||
// 'query' => "SELECT edit_page_id AS content_alias_edit_page_id, name ".
|
// 'query' => "SELECT edit_page_id AS content_alias_edit_page_id, name ".
|
||||||
// "FROM edit_page ".
|
// "FROM edit_page ".
|
||||||
// (isset($GLOBALS['edit_page_id']) ? " WHERE edit_page_id <> ".$GLOBALS['edit_page_id'] : "")." ".
|
// (!empty($_POST['edit_page_id']) ? " WHERE edit_page_id <> ".$_POST['edit_page_id'] : "")." ".
|
||||||
// "ORDER BY order_number"
|
// "ORDER BY order_number"
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
@@ -151,7 +152,7 @@ $edit_pages = [
|
|||||||
'output_name' => 'Visible Groups (access)',
|
'output_name' => 'Visible Groups (access)',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'select_size' => 10,
|
'select_size' => 10,
|
||||||
'selected' => $GLOBALS['edit_visible_group_id'] ?? '',
|
'selected' => $_POST['edit_visible_group_id'] ?? '',
|
||||||
'query' => "SELECT edit_visible_group_id, 'Name: ' || name || ', ' || 'Flag: ' || flag "
|
'query' => "SELECT edit_visible_group_id, 'Name: ' || name || ', ' || 'Flag: ' || flag "
|
||||||
. "FROM edit_visible_group ORDER BY name"
|
. "FROM edit_visible_group ORDER BY name"
|
||||||
],
|
],
|
||||||
@@ -161,7 +162,7 @@ $edit_pages = [
|
|||||||
'output_name' => 'Menu Groups (grouping)',
|
'output_name' => 'Menu Groups (grouping)',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'select_size' => 10,
|
'select_size' => 10,
|
||||||
'selected' => $GLOBALS['edit_menu_group_id'] ?? '',
|
'selected' => $_POST['edit_menu_group_id'] ?? '',
|
||||||
'query' => "SELECT edit_menu_group_id, 'Name: ' || name || ', ' || 'Flag: ' || flag "
|
'query' => "SELECT edit_menu_group_id, 'Name: ' || name || ', ' || 'Flag: ' || flag "
|
||||||
. "FROM edit_menu_group ORDER BY order_number"
|
. "FROM edit_menu_group ORDER BY order_number"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,29 +5,30 @@ declare(strict_types=1);
|
|||||||
$edit_schemes = [
|
$edit_schemes = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_scheme_id' => [
|
'edit_scheme_id' => [
|
||||||
'value' => $GLOBALS['edit_scheme_id'] ?? '',
|
'value' => $_POST['edit_scheme_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1
|
'pk' => 1
|
||||||
],
|
],
|
||||||
'name' => [
|
'name' => [
|
||||||
'value' => $GLOBALS['name'] ?? '',
|
'value' => $_POST['name'] ?? '',
|
||||||
'output_name' => 'Scheme Name',
|
'output_name' => 'Scheme Name',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'header_color' => [
|
'header_color' => [
|
||||||
'value' => $GLOBALS['header_color'] ?? '',
|
'value' => $_POST['header_color'] ?? '',
|
||||||
'output_name' => 'Header Color',
|
'output_name' => 'Header Color',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'size' => 6,
|
'size' => 10,
|
||||||
'length' => 6,
|
'length' => 9,
|
||||||
'error_check' => 'custom',
|
'error_check' => 'custom',
|
||||||
'error_regex' => '/[\dA-Fa-f]{6}/',
|
// FIXME: update regex check for hex/rgb/hsl with color check class
|
||||||
'error_example' => 'F6A544'
|
'error_regex' => '/^#([\dA-Fa-f]{6}|[\dA-Fa-f]{8})$/',
|
||||||
|
'error_example' => '#F6A544'
|
||||||
],
|
],
|
||||||
'enabled' => [
|
'enabled' => [
|
||||||
'value' => $GLOBALS['enabled'] ?? '',
|
'value' => $_POST['enabled'] ?? '',
|
||||||
'output_name' => 'Enabled',
|
'output_name' => 'Enabled',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
@@ -37,7 +38,7 @@ $edit_schemes = [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'template' => [
|
'template' => [
|
||||||
'value' => $GLOBALS['template'] ?? '',
|
'value' => $_POST['template'] ?? '',
|
||||||
'output_name' => 'Template',
|
'output_name' => 'Template',
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/** @var \CoreLibs\Output\Form\Generate $this */
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
$edit_users = [
|
$edit_users = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_user_id' => [
|
'edit_user_id' => [
|
||||||
'value' => $GLOBALS['edit_user_id'] ?? '',
|
'value' => $_POST['edit_user_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1,
|
'pk' => 1,
|
||||||
'int' => 1
|
'int' => 1
|
||||||
],
|
],
|
||||||
'username' => [
|
'username' => [
|
||||||
'value' => $GLOBALS['username'] ?? '',
|
'value' => $_POST['username'] ?? '',
|
||||||
'output_name' => 'Username',
|
'output_name' => 'Username',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'error_check' => 'unique|alphanumericextended',
|
'error_check' => 'unique|alphanumericextended',
|
||||||
@@ -22,9 +24,9 @@ $edit_users = [
|
|||||||
'min_show_acl' => '-1',
|
'min_show_acl' => '-1',
|
||||||
],
|
],
|
||||||
'password' => [
|
'password' => [
|
||||||
'value' => $GLOBALS['password'] ?? '',
|
'value' => $_POST['password'] ?? '',
|
||||||
'HIDDEN_value' => $GLOBALS['HIDDEN_password'] ?? '',
|
'HIDDEN_value' => $_POST['HIDDEN_password'] ?? '',
|
||||||
'CONFIRM_value' => $GLOBALS['CONFIRM_password'] ?? '',
|
'CONFIRM_value' => $_POST['CONFIRM_password'] ?? '',
|
||||||
'output_name' => 'Password',
|
'output_name' => 'Password',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'password', // later has to be password for encryption in database
|
'type' => 'password', // later has to be password for encryption in database
|
||||||
@@ -40,7 +42,7 @@ $edit_users = [
|
|||||||
// password date when first insert and password is set, needs special field with connection to password
|
// password date when first insert and password is set, needs special field with connection to password
|
||||||
// password reset force interval, if set, user needs to reset password after X time period
|
// password reset force interval, if set, user needs to reset password after X time period
|
||||||
'password_change_interval' => [
|
'password_change_interval' => [
|
||||||
'value' => $GLOBALS['password_change_interval'] ?? '',
|
'value' => $_POST['password_change_interval'] ?? '',
|
||||||
'output_name' => 'Password change interval',
|
'output_name' => 'Password change interval',
|
||||||
// can be any date length format. n Y/M/D [not H/M/S], only one set, no combination
|
// can be any date length format. n Y/M/D [not H/M/S], only one set, no combination
|
||||||
'error_check' => 'intervalshort',
|
'error_check' => 'intervalshort',
|
||||||
@@ -52,7 +54,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'enabled' => [
|
'enabled' => [
|
||||||
'value' => $GLOBALS['enabled'] ?? '',
|
'value' => $_POST['enabled'] ?? '',
|
||||||
'output_name' => 'Enabled',
|
'output_name' => 'Enabled',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -64,7 +66,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '-1',
|
'min_show_acl' => '-1',
|
||||||
],
|
],
|
||||||
'deleted' => [
|
'deleted' => [
|
||||||
'value' => $GLOBALS['deleted'] ?? '',
|
'value' => $_POST['deleted'] ?? '',
|
||||||
'output_name' => 'Deleted',
|
'output_name' => 'Deleted',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -76,7 +78,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'strict' => [
|
'strict' => [
|
||||||
'value' => $GLOBALS['strict'] ?? '',
|
'value' => $_POST['strict'] ?? '',
|
||||||
'output_name' => 'Strict (Lock after errors)',
|
'output_name' => 'Strict (Lock after errors)',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -88,7 +90,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'locked' => [
|
'locked' => [
|
||||||
'value' => $GLOBALS['locked'] ?? '',
|
'value' => $_POST['locked'] ?? '',
|
||||||
'output_name' => 'Locked (auto set if strict with errors)',
|
'output_name' => 'Locked (auto set if strict with errors)',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -100,7 +102,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'admin' => [
|
'admin' => [
|
||||||
'value' => $GLOBALS['admin'] ?? '',
|
'value' => $_POST['admin'] ?? '',
|
||||||
'output_name' => 'Admin',
|
'output_name' => 'Admin',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -112,7 +114,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'debug' => [
|
'debug' => [
|
||||||
'value' => $GLOBALS['debug'] ?? '',
|
'value' => $_POST['debug'] ?? '',
|
||||||
'output_name' => 'Debug',
|
'output_name' => 'Debug',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -124,7 +126,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'db_debug' => [
|
'db_debug' => [
|
||||||
'value' => $GLOBALS['db_debug'] ?? '',
|
'value' => $_POST['db_debug'] ?? '',
|
||||||
'output_name' => 'DB Debug',
|
'output_name' => 'DB Debug',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -136,7 +138,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'email' => [
|
'email' => [
|
||||||
'value' => $GLOBALS['email'] ?? '',
|
'value' => $_POST['email'] ?? '',
|
||||||
'output_name' => 'E-Mail',
|
'output_name' => 'E-Mail',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'error_check' => 'email',
|
'error_check' => 'email',
|
||||||
@@ -144,21 +146,21 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'last_name' => [
|
'last_name' => [
|
||||||
'value' => $GLOBALS['last_name'] ?? '',
|
'value' => $_POST['last_name'] ?? '',
|
||||||
'output_name' => 'Last Name',
|
'output_name' => 'Last Name',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'min_edit_acl' => '100',
|
'min_edit_acl' => '100',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'first_name' => [
|
'first_name' => [
|
||||||
'value' => $GLOBALS['first_name'] ?? '',
|
'value' => $_POST['first_name'] ?? '',
|
||||||
'output_name' => 'First Name',
|
'output_name' => 'First Name',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'min_edit_acl' => '100',
|
'min_edit_acl' => '100',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'lock_until' => [
|
'lock_until' => [
|
||||||
'value' => $GLOBALS['lock_until'] ?? '',
|
'value' => $_POST['lock_until'] ?? '',
|
||||||
'output_name' => 'Lock account until',
|
'output_name' => 'Lock account until',
|
||||||
'type' => 'datetime',
|
'type' => 'datetime',
|
||||||
'error_check' => 'datetime',
|
'error_check' => 'datetime',
|
||||||
@@ -168,7 +170,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'lock_after' => [
|
'lock_after' => [
|
||||||
'value' => $GLOBALS['lock_after'] ?? '',
|
'value' => $_POST['lock_after'] ?? '',
|
||||||
'output_name' => 'Lock account after',
|
'output_name' => 'Lock account after',
|
||||||
'type' => 'datetime',
|
'type' => 'datetime',
|
||||||
'error_check' => 'datetime',
|
'error_check' => 'datetime',
|
||||||
@@ -177,7 +179,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_user_id' => [
|
'login_user_id' => [
|
||||||
'value' => $GLOBALS['login_user_id'] ?? '',
|
'value' => $_POST['login_user_id'] ?? '',
|
||||||
'output_name' => '_GET/_POST loginUserId direct login ID',
|
'output_name' => '_GET/_POST loginUserId direct login ID',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'error_check' => 'unique|custom',
|
'error_check' => 'unique|custom',
|
||||||
@@ -187,20 +189,20 @@ $edit_users = [
|
|||||||
],
|
],
|
||||||
'login_user_id_set_date' => [
|
'login_user_id_set_date' => [
|
||||||
'output_name' => 'loginUserId set date',
|
'output_name' => 'loginUserId set date',
|
||||||
'value' => $GLOBALS['login_user_id_set_date'] ?? '',
|
'value' => $_POST['login_user_id_set_date'] ?? '',
|
||||||
'type' => 'view',
|
'type' => 'view',
|
||||||
'empty' => '-',
|
'empty' => '-',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_user_id_last_revalidate' => [
|
'login_user_id_last_revalidate' => [
|
||||||
'output_name' => 'loginUserId last revalidate date',
|
'output_name' => 'loginUserId last revalidate date',
|
||||||
'value' => $GLOBALS['login_user_id_last_revalidate'] ?? '',
|
'value' => $_POST['login_user_id_last_revalidate'] ?? '',
|
||||||
'type' => 'view',
|
'type' => 'view',
|
||||||
'empty' => '-',
|
'empty' => '-',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_user_id_locked' => [
|
'login_user_id_locked' => [
|
||||||
'value' => $GLOBALS['login_user_id_locked'] ?? '',
|
'value' => $_POST['login_user_id_locked'] ?? '',
|
||||||
'output_name' => 'loginUserId usage locked',
|
'output_name' => 'loginUserId usage locked',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -212,7 +214,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_user_id_revalidate_after' => [
|
'login_user_id_revalidate_after' => [
|
||||||
'value' => $GLOBALS['login_user_id_revalidate_after'] ?? '',
|
'value' => $_POST['login_user_id_revalidate_after'] ?? '',
|
||||||
'output_name' => 'loginUserId, User must login after n days',
|
'output_name' => 'loginUserId, User must login after n days',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'error_check' => 'intervalshort',
|
'error_check' => 'intervalshort',
|
||||||
@@ -223,7 +225,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_user_id_valid_from' => [
|
'login_user_id_valid_from' => [
|
||||||
'value' => $GLOBALS['login_user_id_valid_from'] ?? '',
|
'value' => $_POST['login_user_id_valid_from'] ?? '',
|
||||||
'output_name' => 'loginUserId valid from',
|
'output_name' => 'loginUserId valid from',
|
||||||
'type' => 'datetime',
|
'type' => 'datetime',
|
||||||
'error_check' => 'datetime',
|
'error_check' => 'datetime',
|
||||||
@@ -233,7 +235,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_user_id_valid_until' => [
|
'login_user_id_valid_until' => [
|
||||||
'value' => $GLOBALS['login_user_id_valid_until'] ?? '',
|
'value' => $_POST['login_user_id_valid_until'] ?? '',
|
||||||
'output_name' => 'loginUserId valid until',
|
'output_name' => 'loginUserId valid until',
|
||||||
'type' => 'datetime',
|
'type' => 'datetime',
|
||||||
'error_check' => 'datetime',
|
'error_check' => 'datetime',
|
||||||
@@ -243,7 +245,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'edit_language_id' => [
|
'edit_language_id' => [
|
||||||
'value' => $GLOBALS['edit_language_id'] ?? '',
|
'value' => $_POST['edit_language_id'] ?? '',
|
||||||
'output_name' => 'Language',
|
'output_name' => 'Language',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -253,7 +255,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'edit_scheme_id' => [
|
'edit_scheme_id' => [
|
||||||
'value' => $GLOBALS['edit_scheme_id'] ?? '',
|
'value' => $_POST['edit_scheme_id'] ?? '',
|
||||||
'output_name' => 'Scheme',
|
'output_name' => 'Scheme',
|
||||||
'int_null' => 1,
|
'int_null' => 1,
|
||||||
'type' => 'drop_down_db',
|
'type' => 'drop_down_db',
|
||||||
@@ -262,7 +264,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'edit_group_id' => [
|
'edit_group_id' => [
|
||||||
'value' => $GLOBALS['edit_group_id'] ?? '',
|
'value' => $_POST['edit_group_id'] ?? '',
|
||||||
'output_name' => 'Group',
|
'output_name' => 'Group',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
'type' => 'drop_down_db',
|
'type' => 'drop_down_db',
|
||||||
@@ -272,7 +274,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'edit_access_right_id' => [
|
'edit_access_right_id' => [
|
||||||
'value' => $GLOBALS['edit_access_right_id'] ?? '',
|
'value' => $_POST['edit_access_right_id'] ?? '',
|
||||||
'output_name' => 'User Level',
|
'output_name' => 'User Level',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -283,27 +285,27 @@ $edit_users = [
|
|||||||
],
|
],
|
||||||
'login_error_count' => [
|
'login_error_count' => [
|
||||||
'output_name' => 'Login error count',
|
'output_name' => 'Login error count',
|
||||||
'value' => $GLOBALS['login_error_count'] ?? '',
|
'value' => $_POST['login_error_count'] ?? '',
|
||||||
'type' => 'view',
|
'type' => 'view',
|
||||||
'empty' => '0',
|
'empty' => '0',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_error_date_last' => [
|
'login_error_date_last' => [
|
||||||
'output_name' => 'Last login error',
|
'output_name' => 'Last login error',
|
||||||
'value' => $GLOBALS['login_error_date_liast'] ?? '',
|
'value' => $_POST['login_error_date_liast'] ?? '',
|
||||||
'type' => 'view',
|
'type' => 'view',
|
||||||
'empty' => '-',
|
'empty' => '-',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'login_error_date_first' => [
|
'login_error_date_first' => [
|
||||||
'output_name' => 'First login error',
|
'output_name' => 'First login error',
|
||||||
'value' => $GLOBALS['login_error_date_first'] ?? '',
|
'value' => $_POST['login_error_date_first'] ?? '',
|
||||||
'type' => 'view',
|
'type' => 'view',
|
||||||
'empty' => '-',
|
'empty' => '-',
|
||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'protected' => [
|
'protected' => [
|
||||||
'value' => $GLOBALS['protected'] ?? '',
|
'value' => $_POST['protected'] ?? '',
|
||||||
'output_name' => 'Protected',
|
'output_name' => 'Protected',
|
||||||
'type' => 'binary',
|
'type' => 'binary',
|
||||||
'int' => 1,
|
'int' => 1,
|
||||||
@@ -315,7 +317,7 @@ $edit_users = [
|
|||||||
'min_show_acl' => '100',
|
'min_show_acl' => '100',
|
||||||
],
|
],
|
||||||
'additional_acl' => [
|
'additional_acl' => [
|
||||||
'value' => $GLOBALS['additional_acl'] ?? '',
|
'value' => $_POST['additional_acl'] ?? '',
|
||||||
'output_name' => 'Additional ACL (as JSON)',
|
'output_name' => 'Additional ACL (as JSON)',
|
||||||
'type' => 'textarea',
|
'type' => 'textarea',
|
||||||
'error_check' => 'json',
|
'error_check' => 'json',
|
||||||
@@ -331,10 +333,11 @@ $edit_users = [
|
|||||||
// if base acl is not 90 only list enabled
|
// if base acl is not 90 only list enabled
|
||||||
// if not admin flag, do not list admin flagged
|
// if not admin flag, do not list admin flagged
|
||||||
. (
|
. (
|
||||||
!$GLOBALS['acl_admin'] ?
|
!$this->getAclAdmin() ?
|
||||||
"WHERE admin = 0 "
|
"WHERE admin = 0 "
|
||||||
. (
|
. (
|
||||||
$GLOBALS['base_acl_level'] < 90 ?
|
!$this->checkBaseACL(90) ?
|
||||||
|
// $_POST['base_acl_level'] < 90 ?
|
||||||
"AND enabled = 1 " :
|
"AND enabled = 1 " :
|
||||||
""
|
""
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,18 +5,18 @@ declare(strict_types=1);
|
|||||||
$edit_visible_group = [
|
$edit_visible_group = [
|
||||||
'table_array' => [
|
'table_array' => [
|
||||||
'edit_visible_group_id' => [
|
'edit_visible_group_id' => [
|
||||||
'value' => $GLOBALS['edit_visible_group_id'] ?? '',
|
'value' => $_POST['edit_visible_group_id'] ?? '',
|
||||||
'type' => 'hidden',
|
'type' => 'hidden',
|
||||||
'pk' => 1
|
'pk' => 1
|
||||||
],
|
],
|
||||||
'name' => [
|
'name' => [
|
||||||
'value' => $GLOBALS['name'] ?? '',
|
'value' => $_POST['name'] ?? '',
|
||||||
'output_name' => 'Group name',
|
'output_name' => 'Group name',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'flag' => [
|
'flag' => [
|
||||||
'value' => $GLOBALS['flag'] ?? '',
|
'value' => $_POST['flag'] ?? '',
|
||||||
'output_name' => 'Flag',
|
'output_name' => 'Flag',
|
||||||
'mandatory' => 1,
|
'mandatory' => 1,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
|
|||||||
@@ -677,9 +677,20 @@ class Login
|
|||||||
$_SESSION['GROUP_ACL_TYPE'] = $res['group_type'];
|
$_SESSION['GROUP_ACL_TYPE'] = $res['group_type'];
|
||||||
// deprecated TEMPLATE setting
|
// deprecated TEMPLATE setting
|
||||||
$_SESSION['TEMPLATE'] = $res['template'] ? $res['template'] : '';
|
$_SESSION['TEMPLATE'] = $res['template'] ? $res['template'] : '';
|
||||||
$_SESSION['HEADER_COLOR'] = $res['second_header_color'] ?
|
$_SESSION['HEADER_COLOR'] = !empty($res['second_header_color']) ?
|
||||||
$res['second_header_color'] :
|
$res['second_header_color'] :
|
||||||
$res['first_header_color'];
|
$res['first_header_color'];
|
||||||
|
// missing # before, this is for legacy data, will be deprecated
|
||||||
|
if (preg_match("/^[\dA-Fa-f]{6,8}$/", $_SESSION['HEADER_COLOR'])) {
|
||||||
|
$_SESSION['HEADER_COLOR'] = '#' . $_SESSION['HEADER_COLOR'];
|
||||||
|
}
|
||||||
|
// TODO: make sure that header color is valid:
|
||||||
|
// # + 6 hex
|
||||||
|
// # + 8 hex (alpha)
|
||||||
|
// rgb(), rgba(), hsl(), hsla()
|
||||||
|
// rgb: nnn.n for each
|
||||||
|
// hsl: nnn.n for first, nnn.n% for 2nd, 3rd
|
||||||
|
// Check\Colors::validateColor()
|
||||||
$_SESSION['LANG'] = $res['locale'] ?? 'en';
|
$_SESSION['LANG'] = $res['locale'] ?? 'en';
|
||||||
$_SESSION['DEFAULT_CHARSET'] = $res['encoding'] ?? 'UTF-8';
|
$_SESSION['DEFAULT_CHARSET'] = $res['encoding'] ?? 'UTF-8';
|
||||||
$_SESSION['DEFAULT_LOCALE'] = $_SESSION['LANG']
|
$_SESSION['DEFAULT_LOCALE'] = $_SESSION['LANG']
|
||||||
|
|||||||
@@ -242,7 +242,11 @@ class EditBase
|
|||||||
$this->form->formProcedureSave();
|
$this->form->formProcedureSave();
|
||||||
$this->form->formProcedureDelete();
|
$this->form->formProcedureDelete();
|
||||||
// delete call only if those two are set
|
// delete call only if those two are set
|
||||||
|
// and we are not in new/save/master delete
|
||||||
if (
|
if (
|
||||||
|
!$this->form->new &&
|
||||||
|
!$this->form->save &&
|
||||||
|
!$this->form->delete &&
|
||||||
!empty($_POST['element_list']) &&
|
!empty($_POST['element_list']) &&
|
||||||
!empty($_POST['remove_name'])
|
!empty($_POST['remove_name'])
|
||||||
) {
|
) {
|
||||||
|
|||||||
187
www/lib/CoreLibs/Check/Colors.php
Normal file
187
www/lib/CoreLibs/Check/Colors.php
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* valid checks for css/html based colors
|
||||||
|
* # hex
|
||||||
|
* # hex + alpha
|
||||||
|
* rgb
|
||||||
|
* rgba
|
||||||
|
* hsl
|
||||||
|
* hsla
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace CoreLibs\Check;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
|
||||||
|
class Colors
|
||||||
|
{
|
||||||
|
/** @var int 1 for HEX rgb */
|
||||||
|
public const HEX_RGB = 1;
|
||||||
|
/** @var int 2 for HEX rgb with alpha */
|
||||||
|
public const HEX_RGBA = 2;
|
||||||
|
/** @var int 4 for rgb() */
|
||||||
|
public const RGB = 4;
|
||||||
|
/** @var int 8 for rgba() */
|
||||||
|
public const RGBA = 8;
|
||||||
|
/** @var int 16 for hsl() */
|
||||||
|
public const HSL = 16;
|
||||||
|
/** @var int 32 for hsla() */
|
||||||
|
public const HSLA = 32;
|
||||||
|
/** @var int 63 for all bits set (sum of above) */
|
||||||
|
public const ALL = 63;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check rgb/hsl content values in detail
|
||||||
|
* will abort and return false on first error found
|
||||||
|
*
|
||||||
|
* @param string $color html/css tring to check
|
||||||
|
* @param int|false $rgb_flag flag to check for rgb
|
||||||
|
* @param int|false $hsl_flag flag to check for hsl type
|
||||||
|
* @return bool True if no error, False if error
|
||||||
|
*/
|
||||||
|
private static function rgbHslContentCheck(string $color, $rgb_flag, $hsl_flag): bool
|
||||||
|
{
|
||||||
|
// extract string between () and split into elements
|
||||||
|
preg_match("/\((.*)\)/", $color, $matches);
|
||||||
|
if (
|
||||||
|
!is_array($color_list = preg_split("/,\s*/", $matches[1] ?? ''))
|
||||||
|
) {
|
||||||
|
throw new \Exception("Could not extract color list from rgg/hsl", 3);
|
||||||
|
}
|
||||||
|
// based on rgb/hsl settings check that entries are valid
|
||||||
|
// rgb: either 0-255 OR 0-100%
|
||||||
|
// hsl: first: 0-360
|
||||||
|
foreach ($color_list as $pos => $color_check) {
|
||||||
|
if (empty($color_check)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$percent_check = false;
|
||||||
|
if (strrpos($color_check, '%', -1) !== false) {
|
||||||
|
$percent_check = true;
|
||||||
|
$color_check = str_replace('%', '', $color_check);
|
||||||
|
}
|
||||||
|
// first three normal percent or valid number
|
||||||
|
if ($rgb_flag !== false) {
|
||||||
|
if ($percent_check === true) {
|
||||||
|
// for ALL pos
|
||||||
|
if ($color_check < 0 || $color_check > 100) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} elseif (
|
||||||
|
$pos < 3 &&
|
||||||
|
($color_check < 0 || $color_check > 255)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
} elseif (
|
||||||
|
// RGBA set pos 3 if not percent
|
||||||
|
$pos == 3 &&
|
||||||
|
($color_check < 0 || $color_check > 1)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} elseif ($hsl_flag !== false) {
|
||||||
|
// pos 0: 0-360
|
||||||
|
// pos 1,2: %
|
||||||
|
// pos 3: % or 0-1 (float)
|
||||||
|
if (
|
||||||
|
$pos == 0 &&
|
||||||
|
($color_check < 0 || $color_check > 360)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
} elseif (
|
||||||
|
// if pos 1/2 are not percent
|
||||||
|
($pos == 1 || $pos == 2) &&
|
||||||
|
($percent_check != true ||
|
||||||
|
($color_check < 0 || $color_check > 100))
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
} elseif (
|
||||||
|
// 3 is either percent or 0~1
|
||||||
|
$pos == 3 &&
|
||||||
|
(
|
||||||
|
($percent_check == false &&
|
||||||
|
($color_check < 0 || $color_check > 1)) ||
|
||||||
|
($percent_check === true &&
|
||||||
|
($color_check < 0 || $color_check > 100))
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if html/css color string is valid
|
||||||
|
* @param string $color A color string of any format
|
||||||
|
* @param int $flags defaults to ALL, else use | to combined from
|
||||||
|
* HEX_RGB, HEX_RGBA, RGB, RGBA, HSL, HSLA
|
||||||
|
* @return bool True if valid, False if not
|
||||||
|
* @throws Exception 1: no valid flag set
|
||||||
|
*/
|
||||||
|
public static function validateColor(string $color, int $flags = self::ALL): bool
|
||||||
|
{
|
||||||
|
// blocks for each check
|
||||||
|
$regex_blocks = [];
|
||||||
|
// set what to check
|
||||||
|
if ($flags & self::HEX_RGB) {
|
||||||
|
$regex_blocks[] = '#[\dA-Fa-f]{6}';
|
||||||
|
}
|
||||||
|
if ($flags & self::HEX_RGBA) {
|
||||||
|
$regex_blocks[] = '#[\dA-Fa-f]{8}';
|
||||||
|
}
|
||||||
|
if ($flags & self::RGB) {
|
||||||
|
$regex_blocks[] = 'rgb\(\d{1,3}%?,\s*\d{1,3}%?,\s*\d{1,3}%?\)';
|
||||||
|
}
|
||||||
|
if ($flags & self::RGBA) {
|
||||||
|
$regex_blocks[] = 'rgba\(\d{1,3}%?,\s*\d{1,3}%?,\s*\d{1,3}%?(,\s*(0\.\d{1,2}|1(\.0)?|\d{1,3}%))?\)';
|
||||||
|
}
|
||||||
|
if ($flags & self::HSL) {
|
||||||
|
$regex_blocks[] = 'hsl\(\d{1,3},\s*\d{1,3}(\.\d{1})?%,\s*\d{1,3}(\.\d{1})?%\)';
|
||||||
|
}
|
||||||
|
if ($flags & self::HSLA) {
|
||||||
|
$regex_blocks[] = 'hsla\(\d{1,3},\s*\d{1,3}(\.\d{1})?%,\s*\d{1,3}'
|
||||||
|
. '(\.\d{1})?%(,\s*(0\.\d{1,2}|1(\.0)?|\d{1,3}%))?\)';
|
||||||
|
}
|
||||||
|
// wrong flag set
|
||||||
|
if ($flags > self::ALL) {
|
||||||
|
throw new \Exception("Invalid flags parameter: $flags", 1);
|
||||||
|
}
|
||||||
|
if (!count($regex_blocks)) {
|
||||||
|
throw new \Exception("No regex blocks set: $flags", 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// build regex
|
||||||
|
$regex = '^('
|
||||||
|
. join('|', $regex_blocks)
|
||||||
|
// close regex
|
||||||
|
. ')$';
|
||||||
|
// print "C: $color, F: $flags, R: $regex\n";
|
||||||
|
|
||||||
|
if (preg_match("/$regex/", $color)) {
|
||||||
|
// if valid regex, we now need to check if the content is actually valid
|
||||||
|
// only for rgb/hsl type
|
||||||
|
/** @var int|false */
|
||||||
|
$rgb_flag = strpos($color, 'rgb');
|
||||||
|
/** @var int|false */
|
||||||
|
$hsl_flag = strpos($color, 'hsl');
|
||||||
|
// if both not match, return true
|
||||||
|
if (
|
||||||
|
$rgb_flag === false &&
|
||||||
|
$hsl_flag === false
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// run detaul rgb/hsl content check
|
||||||
|
return self::rgbHslContentCheck($color, $rgb_flag, $hsl_flag);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// __END__
|
||||||
@@ -28,7 +28,7 @@ class Byte
|
|||||||
* The class itself hast the following defined
|
* The class itself hast the following defined
|
||||||
* BYTE_FORMAT_NOSPACE [1] turn off spaces between number and suffix
|
* BYTE_FORMAT_NOSPACE [1] turn off spaces between number and suffix
|
||||||
* BYTE_FORMAT_ADJUST [2] use sprintf to always print two decimals
|
* BYTE_FORMAT_ADJUST [2] use sprintf to always print two decimals
|
||||||
* BYTE_FORMAT_SI [3] use si standard 1000 instead of bytes 1024
|
* BYTE_FORMAT_SI [4] use si standard 1000 instead of bytes 1024
|
||||||
* To use the constant from outside use class::CONSTANT
|
* To use the constant from outside use class::CONSTANT
|
||||||
*
|
*
|
||||||
* @param string|int|float $bytes bytes as string int or pure int
|
* @param string|int|float $bytes bytes as string int or pure int
|
||||||
@@ -37,6 +37,7 @@ class Byte
|
|||||||
* BYTE_FORMAT_ADJUST: sprintf adjusted two 2 decimals
|
* BYTE_FORMAT_ADJUST: sprintf adjusted two 2 decimals
|
||||||
* BYTE_FORMAT_SI: use 1000 instead of 1024
|
* BYTE_FORMAT_SI: use 1000 instead of 1024
|
||||||
* @return string converted byte number (float) with suffix
|
* @return string converted byte number (float) with suffix
|
||||||
|
* @throws \Exception 1: no valid flag set
|
||||||
*/
|
*/
|
||||||
public static function humanReadableByteFormat($bytes, int $flags = 0): string
|
public static function humanReadableByteFormat($bytes, int $flags = 0): string
|
||||||
{
|
{
|
||||||
@@ -61,6 +62,9 @@ class Byte
|
|||||||
} else {
|
} else {
|
||||||
$si = false;
|
$si = false;
|
||||||
}
|
}
|
||||||
|
if ($flags > 7) {
|
||||||
|
throw new \Exception("Invalid flags parameter: $flags", 1);
|
||||||
|
}
|
||||||
|
|
||||||
// si or normal
|
// si or normal
|
||||||
$unit = $si ? 1000 : 1024;
|
$unit = $si ? 1000 : 1024;
|
||||||
@@ -109,12 +113,13 @@ class Byte
|
|||||||
* calculates the bytes based on a string with nnG, nnGB, nnM, etc
|
* calculates the bytes based on a string with nnG, nnGB, nnM, etc
|
||||||
* NOTE: large exabyte numbers will overflow
|
* NOTE: large exabyte numbers will overflow
|
||||||
* flag allowed:
|
* flag allowed:
|
||||||
* BYTE_FORMAT_SI [3] use si standard 1000 instead of bytes 1024
|
* BYTE_FORMAT_SI [4] use si standard 1000 instead of bytes 1024
|
||||||
*
|
*
|
||||||
* @param string|int|float $number any string or number to convert
|
* @param string|int|float $number any string or number to convert
|
||||||
* @param int $flags bitwise flag with use space turned on
|
* @param int $flags bitwise flag with use space turned on
|
||||||
* BYTE_FORMAT_SI: use 1000 instead of 1024
|
* BYTE_FORMAT_SI: use 1000 instead of 1024
|
||||||
* @return string|int|float converted value or original value
|
* @return string|int|float converted value or original value
|
||||||
|
* @throws \Exception 1: no valid flag set
|
||||||
*/
|
*/
|
||||||
public static function stringByteFormat($number, int $flags = 0)
|
public static function stringByteFormat($number, int $flags = 0)
|
||||||
{
|
{
|
||||||
@@ -124,6 +129,9 @@ class Byte
|
|||||||
} else {
|
} else {
|
||||||
$si = false;
|
$si = false;
|
||||||
}
|
}
|
||||||
|
if ($flags != 0 && $flags != 4) {
|
||||||
|
throw new \Exception("Invalid flags parameter: $flags", 1);
|
||||||
|
}
|
||||||
// matches in regex
|
// matches in regex
|
||||||
$matches = [];
|
$matches = [];
|
||||||
// all valid units
|
// all valid units
|
||||||
|
|||||||
@@ -150,6 +150,9 @@ class Colors
|
|||||||
{
|
{
|
||||||
// check that H is 0 to 359, 360 = 0
|
// check that H is 0 to 359, 360 = 0
|
||||||
// and S and V are 0 to 1
|
// and S and V are 0 to 1
|
||||||
|
if ($H == 360) {
|
||||||
|
$H = 0;
|
||||||
|
}
|
||||||
if ($H < 0 || $H > 359) {
|
if ($H < 0 || $H > 359) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -287,6 +290,9 @@ class Colors
|
|||||||
if (!is_numeric($hue)) {
|
if (!is_numeric($hue)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if ($hue == 360) {
|
||||||
|
$hue = 0;
|
||||||
|
}
|
||||||
if ($hue < 0 || $hue > 359) {
|
if ($hue < 0 || $hue > 359) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
* you don't have to write any SQL queries, worry over update/insert
|
* you don't have to write any SQL queries, worry over update/insert
|
||||||
*
|
*
|
||||||
* HISTORY:
|
* HISTORY:
|
||||||
* 2019/9/11 (cs) error string 21->91, 22->92 for not overlapping with IO
|
* 2019/9/11 (cs) error string 21->1021, 22->1022 for not overlapping with IO
|
||||||
* 2005/07/07 (cs) updated array class for postgres: set 0 & NULL if int field given, insert uses () values () syntax
|
* 2005/07/07 (cs) updated array class for postgres: set 0 & NULL if int field given, insert uses () values () syntax
|
||||||
* 2005/03/31 (cs) fixed the class call with all debug vars
|
* 2005/03/31 (cs) fixed the class call with all debug vars
|
||||||
* 2003-03-10: error_ids where still wrong chagned 11->21 and 12->22
|
* 2003-03-10: error_ids where still wrong chagned 11->21 and 12->22
|
||||||
@@ -72,20 +72,24 @@ class ArrayIO extends \CoreLibs\DB\IO
|
|||||||
// instance db_io class
|
// instance db_io class
|
||||||
parent::__construct($db_config, $log ?? new \CoreLibs\Debug\Logging());
|
parent::__construct($db_config, $log ?? new \CoreLibs\Debug\Logging());
|
||||||
// more error vars for this class
|
// more error vars for this class
|
||||||
$this->error_string['91'] = 'No Primary Key given';
|
$this->error_string['1999'] = 'No table array or table name set';
|
||||||
$this->error_string['92'] = 'Could not run Array Query';
|
$this->error_string['1021'] = 'No Primary Key given';
|
||||||
|
$this->error_string['1022'] = 'Could not run Array Query';
|
||||||
|
|
||||||
$this->table_array = $table_array;
|
$this->table_array = $table_array;
|
||||||
$this->table_name = $table_name;
|
$this->table_name = $table_name;
|
||||||
|
|
||||||
|
// error abort if no table array or no table name
|
||||||
|
if (empty($table_array) || empty($table_name)) {
|
||||||
|
$this->__dbError(1999, false, 'MAJOR ERROR: Core settings missing');
|
||||||
|
}
|
||||||
|
|
||||||
// set primary key for given table_array
|
// set primary key for given table_array
|
||||||
if (is_array($this->table_array)) {
|
foreach ($this->table_array as $key => $value) {
|
||||||
foreach ($this->table_array as $key => $value) {
|
if (!empty($value['pk'])) {
|
||||||
if (isset($value['pk'])) {
|
$this->pk_name = $key;
|
||||||
$this->pk_name = $key;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} // set pk_name IF table_array was given
|
}
|
||||||
$this->dbArrayIOSetAcl($base_acl_level, $acl_admin);
|
$this->dbArrayIOSetAcl($base_acl_level, $acl_admin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,7 +201,7 @@ class ArrayIO extends \CoreLibs\DB\IO
|
|||||||
// if not set ... produce error
|
// if not set ... produce error
|
||||||
if (!$this->table_array[$this->pk_name]['value']) {
|
if (!$this->table_array[$this->pk_name]['value']) {
|
||||||
// if no PK found, error ...
|
// if no PK found, error ...
|
||||||
$this->__dbError(91);
|
$this->__dbError(1021);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
@@ -282,7 +286,7 @@ class ArrayIO extends \CoreLibs\DB\IO
|
|||||||
// if 0, error
|
// if 0, error
|
||||||
$this->pk_id = null;
|
$this->pk_id = null;
|
||||||
if (!$this->dbExec($q)) {
|
if (!$this->dbExec($q)) {
|
||||||
$this->__dbError(92);
|
$this->__dbError(1022);
|
||||||
}
|
}
|
||||||
return $this->table_array;
|
return $this->table_array;
|
||||||
}
|
}
|
||||||
@@ -369,7 +373,7 @@ class ArrayIO extends \CoreLibs\DB\IO
|
|||||||
// possible dbFetchArray errors ...
|
// possible dbFetchArray errors ...
|
||||||
$this->pk_id = $this->table_array[$this->pk_name]['value'];
|
$this->pk_id = $this->table_array[$this->pk_name]['value'];
|
||||||
} else {
|
} else {
|
||||||
$this->__dbError(92);
|
$this->__dbError(1022);
|
||||||
}
|
}
|
||||||
return $this->table_array;
|
return $this->table_array;
|
||||||
}
|
}
|
||||||
@@ -631,7 +635,7 @@ class ArrayIO extends \CoreLibs\DB\IO
|
|||||||
}
|
}
|
||||||
// return success or not
|
// return success or not
|
||||||
if (!$this->dbExec($q)) {
|
if (!$this->dbExec($q)) {
|
||||||
$this->__dbError(92);
|
$this->__dbError(1022);
|
||||||
}
|
}
|
||||||
// set primary key
|
// set primary key
|
||||||
if ($insert) {
|
if ($insert) {
|
||||||
|
|||||||
@@ -307,19 +307,21 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
* @param \CoreLibs\Language\L10n|null $l10n l10n language class, null auto set
|
* @param \CoreLibs\Language\L10n|null $l10n l10n language class, null auto set
|
||||||
* @param array<string,string>|null $locale locale array from ::setLocale,
|
* @param array<string,string>|null $locale locale array from ::setLocale,
|
||||||
* null auto set
|
* null auto set
|
||||||
|
* @param array<mixed>|null $table_arrays Override table array data
|
||||||
|
* instead of try to load from
|
||||||
|
* include file
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
array $db_config,
|
array $db_config,
|
||||||
?\CoreLibs\Debug\Logging $log = null,
|
?\CoreLibs\Debug\Logging $log = null,
|
||||||
?\CoreLibs\Language\L10n $l10n = null,
|
?\CoreLibs\Language\L10n $l10n = null,
|
||||||
?array $locale = null
|
?array $locale = null,
|
||||||
|
?array $table_arrays = null,
|
||||||
) {
|
) {
|
||||||
// don't log per class
|
// don't log per class
|
||||||
if ($log !== null) {
|
if ($log !== null) {
|
||||||
$log->setLogPer('class', false);
|
$log->setLogPer('class', false);
|
||||||
}
|
}
|
||||||
// if set global table array variable
|
|
||||||
global $table_arrays;
|
|
||||||
// replace any non valid variable names
|
// replace any non valid variable names
|
||||||
// TODO extract only alphanumeric and _ after . to _ replacement
|
// TODO extract only alphanumeric and _ after . to _ replacement
|
||||||
$this->my_page_name = str_replace(['.'], '_', System::getPageName(System::NO_EXTENSION));
|
$this->my_page_name = str_replace(['.'], '_', System::getPageName(System::NO_EXTENSION));
|
||||||
@@ -346,15 +348,9 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// security settings
|
// security settings
|
||||||
$this->base_acl_level = (int)$_SESSION['BASE_ACL_LEVEL'];
|
$this->base_acl_level = (int)$_SESSION['BASE_ACL_LEVEL'];
|
||||||
$this->acl_admin = (int)$_SESSION['ADMIN'];
|
$this->acl_admin = (int)$_SESSION['ADMIN'];
|
||||||
$GLOBALS['base_acl_level'] = $this->base_acl_level;
|
|
||||||
$GLOBALS['acl_admin'] = $this->acl_admin;
|
|
||||||
|
|
||||||
// first check if we have a in page override as $table_arrays[page name]
|
// first check if we have a in page override as $table_arrays[page name]
|
||||||
if (
|
if (
|
||||||
/* isset($GLOBALS['table_arrays']) &&
|
|
||||||
is_array($GLOBALS['table_arrays']) &&
|
|
||||||
isset($GLOBALS['table_arrays'][System::getPageName(System::NO_EXTENSION)]) &&
|
|
||||||
is_array($GLOBALS['table_arrays'][System::getPageName(System::NO_EXTENSION)]) */
|
|
||||||
isset($table_arrays[System::getPageName(System::NO_EXTENSION)]) &&
|
isset($table_arrays[System::getPageName(System::NO_EXTENSION)]) &&
|
||||||
is_array($table_arrays[System::getPageName(System::NO_EXTENSION)])
|
is_array($table_arrays[System::getPageName(System::NO_EXTENSION)])
|
||||||
) {
|
) {
|
||||||
@@ -478,6 +474,27 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
|
|
||||||
// PUBLIC METHODS |=================================================>
|
// PUBLIC METHODS |=================================================>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return current acl admin flag (1/0)
|
||||||
|
*
|
||||||
|
* @return int Admin flag 1 for on or 0 for off
|
||||||
|
*/
|
||||||
|
public function getAclAdmin(): int
|
||||||
|
{
|
||||||
|
return $this->acl_admin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if current acl level is match to requested on
|
||||||
|
*
|
||||||
|
* @param int $level Requested ACL level
|
||||||
|
* @return bool if current level equal or larger return tru, else false
|
||||||
|
*/
|
||||||
|
public function checkBaseACL(int $level): bool
|
||||||
|
{
|
||||||
|
return $this->base_acl_level >= $level ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dumps all values into output (for error msg)
|
* dumps all values into output (for error msg)
|
||||||
*
|
*
|
||||||
@@ -1480,7 +1497,8 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// $this->log->debug('edit_error', 'QS: <pre>' . print_r($_POST, true) . '</pre>');
|
// $this->log->debug('edit_error', 'QS: <pre>' . print_r($_POST, true) . '</pre>');
|
||||||
if (is_array($this->element_list)) {
|
if (is_array($this->element_list)) {
|
||||||
// check the mandatory stuff
|
// check the mandatory stuff
|
||||||
// if mandatory, check that at least on pk exists or if at least the mandatory field is filled
|
// if mandatory, check that at least on pk exists or
|
||||||
|
// if at least the mandatory field is filled
|
||||||
foreach ($this->element_list as $table_name => $reference_array) {
|
foreach ($this->element_list as $table_name => $reference_array) {
|
||||||
if (!is_array($reference_array)) {
|
if (!is_array($reference_array)) {
|
||||||
$reference_array = [];
|
$reference_array = [];
|
||||||
@@ -1520,7 +1538,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// . count($_POST[$prfx.$key]) . ' | M: $max');
|
// . count($_POST[$prfx.$key]) . ' | M: $max');
|
||||||
// $this->log->debug('edit_error_chk', 'K: ' . $_POST[$prfx.$key] . ' | ' . $_POST[$prfx.$key][0]);
|
// $this->log->debug('edit_error_chk', 'K: ' . $_POST[$prfx.$key] . ' | ' . $_POST[$prfx.$key][0]);
|
||||||
}
|
}
|
||||||
$this->log->debug('POST ARRAY', $this->log->prAr($_POST));
|
// $this->log->debug('POST ARRAY', $this->log->prAr($_POST));
|
||||||
// init variables before inner loop run
|
// init variables before inner loop run
|
||||||
$mand_okay = 0;
|
$mand_okay = 0;
|
||||||
$mand_name = '';
|
$mand_name = '';
|
||||||
@@ -1532,15 +1550,17 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
for ($i = 0; $i < $max; $i++) {
|
for ($i = 0; $i < $max; $i++) {
|
||||||
// either one of the post pks is set, or the mandatory
|
// either one of the post pks is set, or the mandatory
|
||||||
foreach ($reference_array['elements'] as $el_name => $data_array) {
|
foreach ($reference_array['elements'] as $el_name => $data_array) {
|
||||||
if (isset($data_array['mandatory']) && $data_array['mandatory']) {
|
if (
|
||||||
|
isset($data_array['mandatory']) &&
|
||||||
|
$data_array['mandatory']
|
||||||
|
) {
|
||||||
$mand_name = $data_array['output_name'];
|
$mand_name = $data_array['output_name'];
|
||||||
}
|
}
|
||||||
// check if there is a primary ket inside, so it is okay
|
// check if there is a primary ket inside, so it is okay
|
||||||
if (
|
if (
|
||||||
isset($data_array['pk_id']) &&
|
isset($data_array['pk_id']) &&
|
||||||
count($_POST[$prfx . $el_name]) &&
|
count($_POST[$prfx . $el_name]) &&
|
||||||
isset($reference_array['mandatory']) &&
|
!empty($reference_array['mandatory'])
|
||||||
$reference_array['mandatory']
|
|
||||||
) {
|
) {
|
||||||
$mand_okay = 1;
|
$mand_okay = 1;
|
||||||
}
|
}
|
||||||
@@ -1551,15 +1571,14 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// . $_POST[$prfx . $el_name] . ' - ' . $reference_array['enable_name'] . ' - '
|
// . $_POST[$prfx . $el_name] . ' - ' . $reference_array['enable_name'] . ' - '
|
||||||
// . $_POST[$reference_array['enable_name']][$_POST[$prfx . $el_name][$i]]);
|
// . $_POST[$reference_array['enable_name']][$_POST[$prfx . $el_name][$i]]);
|
||||||
if (
|
if (
|
||||||
isset($data_array['mandatory']) &&
|
!empty($data_array['mandatory']) &&
|
||||||
$data_array['mandatory'] &&
|
!empty($_POST[$prfx . $el_name][$i])
|
||||||
isset($_POST[$prfx . $el_name][$i]) &&
|
|
||||||
$_POST[$prfx . $el_name][$i]
|
|
||||||
) {
|
) {
|
||||||
$mand_okay = 1;
|
$mand_okay = 1;
|
||||||
$row_okay[$i] = 1;
|
$row_okay[$i] = 1;
|
||||||
} elseif (
|
} elseif (
|
||||||
!empty($data_array['type']) && $data_array['type'] == 'radio_group' &&
|
!empty($data_array['type']) &&
|
||||||
|
$data_array['type'] == 'radio_group' &&
|
||||||
!isset($_POST[$prfx . $el_name])
|
!isset($_POST[$prfx . $el_name])
|
||||||
) {
|
) {
|
||||||
// radio group and set where one not active
|
// radio group and set where one not active
|
||||||
@@ -1567,20 +1586,22 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
$row_okay[$_POST[$prfx . $el_name][$i] ?? 0] = 0;
|
$row_okay[$_POST[$prfx . $el_name][$i] ?? 0] = 0;
|
||||||
$default_wrong[$_POST[$prfx . $el_name][$i] ?? 0] = 1;
|
$default_wrong[$_POST[$prfx . $el_name][$i] ?? 0] = 1;
|
||||||
$error[$_POST[$prfx . $el_name][$i] ?? 0] = 1;
|
$error[$_POST[$prfx . $el_name][$i] ?? 0] = 1;
|
||||||
} elseif (isset($_POST[$prfx . $el_name][$i]) && !isset($error[$i])) {
|
} elseif (
|
||||||
|
isset($_POST[$prfx . $el_name][$i]) &&
|
||||||
|
!isset($error[$i])
|
||||||
|
) {
|
||||||
// $this->log->debug('edit_error_chk', '[$i]');
|
// $this->log->debug('edit_error_chk', '[$i]');
|
||||||
$element_set[$i] = 1;
|
$element_set[$i] = 1;
|
||||||
$row_okay[$i] = 1;
|
$row_okay[$i] = 1;
|
||||||
} elseif (
|
} elseif (
|
||||||
isset($data_array['mandatory']) &&
|
!empty($data_array['mandatory']) &&
|
||||||
$data_array['mandatory'] &&
|
|
||||||
!$_POST[$prfx . $el_name][$i]
|
!$_POST[$prfx . $el_name][$i]
|
||||||
) {
|
) {
|
||||||
$row_okay[$i] = 0;
|
$row_okay[$i] = 0;
|
||||||
}
|
}
|
||||||
// do optional error checks like for normal fields
|
// do optional error checks like for normal fields
|
||||||
// currently active: unique/alphanumeric
|
// currently active: unique/alphanumeric
|
||||||
if (isset($data_array['error_check'])) {
|
if (!empty($data_array['error_check'])) {
|
||||||
foreach (explode('|', $data_array['error_check']) as $error_check) {
|
foreach (explode('|', $data_array['error_check']) as $error_check) {
|
||||||
switch ($error_check) {
|
switch ($error_check) {
|
||||||
// check unique, check if field is filled and not same in _POST set
|
// check unique, check if field is filled and not same in _POST set
|
||||||
@@ -1599,6 +1620,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
$reference_array['output_name'],
|
$reference_array['output_name'],
|
||||||
$i
|
$i
|
||||||
);
|
);
|
||||||
|
$_POST['ERROR'][$prfx][$i] = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'alphanumericspace':
|
case 'alphanumericspace':
|
||||||
@@ -1614,6 +1636,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
$reference_array['output_name'],
|
$reference_array['output_name'],
|
||||||
$i
|
$i
|
||||||
);
|
);
|
||||||
|
$_POST['ERROR'][$prfx][$i] = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1625,8 +1648,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// main mandatory is met -> error msg
|
// main mandatory is met -> error msg
|
||||||
if (
|
if (
|
||||||
!$mand_okay &&
|
!$mand_okay &&
|
||||||
isset($reference_array['mandatory']) &&
|
!empty($reference_array['mandatory'])
|
||||||
$reference_array['mandatory']
|
|
||||||
) {
|
) {
|
||||||
$this->msg .= sprintf(
|
$this->msg .= sprintf(
|
||||||
$this->l->__('You need to enter at least one data set for field <b>%s</b>!<br>'),
|
$this->l->__('You need to enter at least one data set for field <b>%s</b>!<br>'),
|
||||||
@@ -2535,12 +2557,13 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
}
|
}
|
||||||
// $this->log->debug('CFG QUERY', 'Q: ' . $q);
|
// $this->log->debug('CFG QUERY', 'Q: ' . $q);
|
||||||
// only run if we have query strnig
|
// only run if we have query strnig
|
||||||
|
$written_pos = [];
|
||||||
if (isset($q)) {
|
if (isset($q)) {
|
||||||
|
$prfx = $data['prefix']; // short
|
||||||
$pos = 0; // position in while for overwrite if needed
|
$pos = 0; // position in while for overwrite if needed
|
||||||
// read out the list and add the selected data if needed
|
// read out the list and add the selected data if needed
|
||||||
while (is_array($res = $this->dbReturn($q))) {
|
while (is_array($res = $this->dbReturn($q))) {
|
||||||
$_data = [];
|
$_data = [];
|
||||||
$prfx = $data['prefix']; // short
|
|
||||||
// go through each res
|
// go through each res
|
||||||
for ($i = 0, $i_max = count($q_select); $i < $i_max; $i++) {
|
for ($i = 0, $i_max = count($q_select); $i < $i_max; $i++) {
|
||||||
// query select part, set to the element name
|
// query select part, set to the element name
|
||||||
@@ -2570,13 +2593,48 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
}
|
}
|
||||||
$data['content'][] = $_data;
|
$data['content'][] = $_data;
|
||||||
$data['pos'][] = [0 => $pos]; // this is for the checkboxes
|
$data['pos'][] = [0 => $pos]; // this is for the checkboxes
|
||||||
|
$written_pos[] = $pos;
|
||||||
$pos++; // move up one
|
$pos++; // move up one
|
||||||
// reset and unset before next run
|
// reset and unset before next run
|
||||||
unset($_data);
|
unset($_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// add lost error ones
|
||||||
|
$this->log->debug('ERROR', 'P: ' . $data['prefix'] . ', '
|
||||||
|
. $this->log->prAr($_POST['ERROR'][$data['prefix']] ?? []));
|
||||||
|
if ($this->error && !empty($_POST['ERROR'][$data['prefix']])) {
|
||||||
|
$prfx = $data['prefix']; // short
|
||||||
|
$_post_data = [];
|
||||||
|
// MAX entries defined via $data['pk_name'] entry (must exist)
|
||||||
|
$_max_pos = count($_POST[$data['pk_name']] ?? []);
|
||||||
|
// write all excte previous loaded @ $pos
|
||||||
|
foreach ($q_select as $_el_name) {
|
||||||
|
for ($_pos = 0; $_pos <= $_max_pos; $_pos++) {
|
||||||
|
// if not in data pos
|
||||||
|
if (!in_array($_pos, $written_pos)) {
|
||||||
|
$_post_data[$_pos][$prfx . $_el_name] =
|
||||||
|
$_POST[$prfx . $_el_name][$_pos] ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// only add if all fields in data are filled, else skip
|
||||||
|
// pk_name field is excluded of check
|
||||||
|
foreach ($_post_data as $_pos => $_data) {
|
||||||
|
$filled = false;
|
||||||
|
foreach ($_data as $_name => $_value) {
|
||||||
|
if ($_name != $data['pk_name'] && !empty($_value)) {
|
||||||
|
$filled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($filled == true) {
|
||||||
|
$data['content'][] = $_data;
|
||||||
|
$data['pos'][] = [0 => $_pos];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// if this is normal single reference data check the content on the element count
|
// if this is normal single reference data check the content on the element count
|
||||||
// if there is a max_empty is set, then fill up new elements (unfilled) until we reach max empty
|
// if there is a max_empty is set, then fill up new elements (unfilled)
|
||||||
|
// until we reach max empty
|
||||||
if (
|
if (
|
||||||
/*isset($this->element_list[$table_name]['type']) &&
|
/*isset($this->element_list[$table_name]['type']) &&
|
||||||
$this->element_list[$table_name]['type'] == 'reference_data' &&*/
|
$this->element_list[$table_name]['type'] == 'reference_data' &&*/
|
||||||
|
|||||||
1
www/vendor/composer/autoload_classmap.php
vendored
1
www/vendor/composer/autoload_classmap.php
vendored
@@ -12,6 +12,7 @@ return array(
|
|||||||
'CoreLibs\\Admin\\Backend' => $baseDir . '/lib/CoreLibs/Admin/Backend.php',
|
'CoreLibs\\Admin\\Backend' => $baseDir . '/lib/CoreLibs/Admin/Backend.php',
|
||||||
'CoreLibs\\Admin\\EditBase' => $baseDir . '/lib/CoreLibs/Admin/EditBase.php',
|
'CoreLibs\\Admin\\EditBase' => $baseDir . '/lib/CoreLibs/Admin/EditBase.php',
|
||||||
'CoreLibs\\Basic' => $baseDir . '/lib/CoreLibs/Basic.php',
|
'CoreLibs\\Basic' => $baseDir . '/lib/CoreLibs/Basic.php',
|
||||||
|
'CoreLibs\\Check\\Colors' => $baseDir . '/lib/CoreLibs/Check/Colors.php',
|
||||||
'CoreLibs\\Check\\Email' => $baseDir . '/lib/CoreLibs/Check/Email.php',
|
'CoreLibs\\Check\\Email' => $baseDir . '/lib/CoreLibs/Check/Email.php',
|
||||||
'CoreLibs\\Check\\Encoding' => $baseDir . '/lib/CoreLibs/Check/Encoding.php',
|
'CoreLibs\\Check\\Encoding' => $baseDir . '/lib/CoreLibs/Check/Encoding.php',
|
||||||
'CoreLibs\\Check\\File' => $baseDir . '/lib/CoreLibs/Check/File.php',
|
'CoreLibs\\Check\\File' => $baseDir . '/lib/CoreLibs/Check/File.php',
|
||||||
|
|||||||
1
www/vendor/composer/autoload_static.php
vendored
1
www/vendor/composer/autoload_static.php
vendored
@@ -45,6 +45,7 @@ class ComposerStaticInit10fe8fe2ec4017b8644d2b64bcf398b9
|
|||||||
'CoreLibs\\Admin\\Backend' => __DIR__ . '/../..' . '/lib/CoreLibs/Admin/Backend.php',
|
'CoreLibs\\Admin\\Backend' => __DIR__ . '/../..' . '/lib/CoreLibs/Admin/Backend.php',
|
||||||
'CoreLibs\\Admin\\EditBase' => __DIR__ . '/../..' . '/lib/CoreLibs/Admin/EditBase.php',
|
'CoreLibs\\Admin\\EditBase' => __DIR__ . '/../..' . '/lib/CoreLibs/Admin/EditBase.php',
|
||||||
'CoreLibs\\Basic' => __DIR__ . '/../..' . '/lib/CoreLibs/Basic.php',
|
'CoreLibs\\Basic' => __DIR__ . '/../..' . '/lib/CoreLibs/Basic.php',
|
||||||
|
'CoreLibs\\Check\\Colors' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/Colors.php',
|
||||||
'CoreLibs\\Check\\Email' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/Email.php',
|
'CoreLibs\\Check\\Email' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/Email.php',
|
||||||
'CoreLibs\\Check\\Encoding' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/Encoding.php',
|
'CoreLibs\\Check\\Encoding' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/Encoding.php',
|
||||||
'CoreLibs\\Check\\File' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/File.php',
|
'CoreLibs\\Check\\File' => __DIR__ . '/../..' . '/lib/CoreLibs/Check/File.php',
|
||||||
|
|||||||
Reference in New Issue
Block a user