Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be03bc96cb | ||
|
|
4f73a88a8b | ||
|
|
b2019226da | ||
|
|
754c2edbd2 | ||
|
|
98e16e6143 | ||
|
|
005584e2ed | ||
|
|
7e34c5321d | ||
|
|
9d918f3b43 | ||
|
|
433b21ab6f | ||
|
|
826b5fdfd6 | ||
|
|
a923f07fc7 |
21
4dev/composer/install.txt
Normal file
21
4dev/composer/install.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
Install composer:
|
||||
curl -sS https://getcomposer.org/installer | /usr/local/php-7.2-httpd-2.4/bin/php
|
||||
|
||||
Update composer phar file
|
||||
/usr/local/php-7.2-httpd-2.4/bin/php composer.phar selfupdate
|
||||
|
||||
Install something:
|
||||
/usr/local/php-7.2-httpd-2.4/bin/php composer.phar require something/something
|
||||
|
||||
Update all installed:
|
||||
/usr/local/php-7.2-httpd-2.4/bin/php composer.phar update
|
||||
|
||||
Or update only one package:
|
||||
/usr/local/php-7.2-httpd-2.4/bin/php composer.phar something/something
|
||||
|
||||
Install AWS SDK:
|
||||
/usr/local/php-7.2-httpd-2.4/bin/php -d memory_limit=-1 composer.phar require aws/aws-sdk-php
|
||||
|
||||
Install zipStream:
|
||||
/usr/local/php-7.2-httpd-2.4/bin/php composer.phar require maennchen/zipstream-php
|
||||
|
||||
@@ -136,7 +136,7 @@ INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, prot
|
||||
|
||||
-- edit access
|
||||
DELETE FROM edit_access;
|
||||
INSERT INTO edit_access (name, enabled, protected) VALUES ('Admin Access', 't', 1);
|
||||
INSERT INTO edit_access (name, enabled, protected) VALUES ('Admin Access', 1, 1);
|
||||
|
||||
-- edit access user
|
||||
DELETE FROM edit_access_user;
|
||||
|
||||
@@ -12,6 +12,7 @@ CREATE TABLE edit_access (
|
||||
description VARCHAR,
|
||||
color VARCHAR,
|
||||
uid VARCHAR,
|
||||
enabled BOOLEAN DEFAULT 'true',
|
||||
protected INT
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
protected INT,
|
||||
deleted SMALLINT DEFAULT 0
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
@@ -12,5 +12,5 @@ CREATE TABLE edit_scheme (
|
||||
name VARCHAR,
|
||||
header_color VARCHAR,
|
||||
css_file VARCHAR,
|
||||
template VARCHARs
|
||||
template VARCHAR
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
@@ -26,8 +26,8 @@ CREATE TABLE edit_user (
|
||||
edit_scheme_id INT,
|
||||
edit_access_right_id INT NOT NULL,
|
||||
login_error_count INT,
|
||||
login_error_date_last TIMESTAMP WTIHOUT TIME ZONE,
|
||||
login_error_date_first TIMESTAMP WTIHOUT TIME ZONE,
|
||||
login_error_date_last TIMESTAMP WITHOUT TIME ZONE,
|
||||
login_error_date_first TIMESTAMP WITHOUT TIME ZONE,
|
||||
strict SMALLINT DEFAULT 0,
|
||||
locked SMALLINT DEFAULT 0,
|
||||
password_change_date TIMESTAMP WITHOUT TIME ZONE, -- only when password is first set or changed
|
||||
|
||||
@@ -2,3 +2,8 @@ DROP TRIGGER trg_edit_access ON edit_access;
|
||||
CREATE TRIGGER trg_edit_access
|
||||
BEFORE INSERT OR UPDATE ON edit_access
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
DROP TRIGGER trg_set_edit_access_uid ON edit_access;
|
||||
CREATE TRIGGER trg_set_edit_access_uid
|
||||
BEFORE INSERT OR UPDATE ON edit_access
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_access_uid();
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
-- DROP TRIGGER trg_set_edit_access_uid ON edit_access;
|
||||
CREATE TRIGGER trg_set_edit_access_uid
|
||||
BEFORE INSERT OR UPDATE ON edit_access
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_access_uid();
|
||||
@@ -1,6 +1,3 @@
|
||||
# php_value xdebug.profiler_output_dir /home/developer/xdebug/
|
||||
# php_value xdebug.profiler_output_name timestamp
|
||||
# php_value xdebug.profiler_enable 0
|
||||
# all .inc files are denied access from outside
|
||||
<Files "*.inc">
|
||||
Require all denied
|
||||
|
||||
@@ -32,7 +32,7 @@ ob_end_flush();
|
||||
|
||||
// set + check edit access id
|
||||
$edit_access_id = 3;
|
||||
if (array_key_exists('unit', $login->acl)) {
|
||||
if (isset($login) && is_object($login) && isset($login->acl['unit'])) {
|
||||
print "ACL UNIT: ".print_r(array_keys($login->acl['unit']), 1)."<br>";
|
||||
print "ACCESS CHECK: ".$login->loginCheckEditAccess($edit_access_id)."<br>";
|
||||
if ($login->loginCheckEditAccess($edit_access_id)) {
|
||||
@@ -68,14 +68,16 @@ print "CALLER BACKTRACE: ".$basic->getCallerMethod()."<br>";
|
||||
$basic->debug('SOME MARK', 'Some error output');
|
||||
|
||||
print "EDIT ACCESS ID: ".$basic->edit_access_id."<br>";
|
||||
// print "ACL: <br>".$basic->print_ar($login->acl)."<br>";
|
||||
$basic->debug('ACL', "ACL: ".$basic->printAr($login->acl));
|
||||
// print "DEFAULT ACL: <br>".$basic->print_ar($login->default_acl_list)."<br>";
|
||||
// print "DEFAULT ACL: <br>".$basic->print_ar($login->default_acl_list)."<br>";
|
||||
// $result = array_flip(array_filter(array_flip($login->default_acl_list), function ($key) { if (is_numeric($key)) return $key; }));
|
||||
// print "DEFAULT ACL: <br>".$basic->print_ar($result)."<br>";
|
||||
// DEPRICATED CALL
|
||||
// $basic->adbSetACL($login->acl);
|
||||
if (isset($login)) {
|
||||
// print "ACL: <br>".$basic->print_ar($login->acl)."<br>";
|
||||
$basic->debug('ACL', "ACL: ".$basic->printAr($login->acl));
|
||||
// print "DEFAULT ACL: <br>".$basic->print_ar($login->default_acl_list)."<br>";
|
||||
// print "DEFAULT ACL: <br>".$basic->print_ar($login->default_acl_list)."<br>";
|
||||
// $result = array_flip(array_filter(array_flip($login->default_acl_list), function ($key) { if (is_numeric($key)) return $key; }));
|
||||
// print "DEFAULT ACL: <br>".$basic->print_ar($result)."<br>";
|
||||
// DEPRICATED CALL
|
||||
// $basic->adbSetACL($login->acl);
|
||||
}
|
||||
|
||||
// DB client encoding
|
||||
print "DB Client encoding: ".$basic->dbGetEncoding()."<br>";
|
||||
@@ -165,14 +167,14 @@ print "DB Version bigger than $to_db_version: ".$basic->dbCompareVersion('>='.$t
|
||||
print "DB Version bigger $to_db_version: ".$basic->dbCompareVersion('>'.$to_db_version)."<br>";
|
||||
|
||||
/* $q = "SELECT FOO FRO BAR";
|
||||
// $q = "Select * from foo";
|
||||
// $q = "Select * from foo";
|
||||
$foo = $basic->dbExecAsync($q);
|
||||
print "[ERR] Query: ".$q."<br>";
|
||||
print "[ERR] RESOURCE: $foo<br>";
|
||||
while (($ret = $basic->dbCheckAsync()) === true)
|
||||
{
|
||||
print "[ERR]: $ret<br>";
|
||||
// sleep(5);
|
||||
sleep(5);
|
||||
} */
|
||||
|
||||
// search path check
|
||||
@@ -210,7 +212,7 @@ print "COMPARE DATE: ".$basic->compareDate($date_1, $date_2)."<br>";
|
||||
// array re
|
||||
|
||||
// print error messages
|
||||
print $login->printErrorMsg();
|
||||
// print $login->printErrorMsg();
|
||||
print $basic->printErrorMsg();
|
||||
|
||||
print "</body></html>";
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2018/10/11
|
||||
* SHORT DESCRIPTION:
|
||||
* pre config included -> includes master config
|
||||
* HISTORY:
|
||||
*********************************************************************/
|
||||
|
||||
define('CONFIG_PATH', 'configs'.DIRECTORY_SEPARATOR);
|
||||
// config path prefix search, start with 0, got down each level __DIR__ has, if nothing found -> bail
|
||||
$CONFIG_PATH_PREFIX = '';
|
||||
for ($dir_pos = 0, $dir_max = count(explode('/', __DIR__)); $dir_pos <= $dir_max; $dir_pos ++) {
|
||||
$CONFIG_PATH_PREFIX .= '..'.DIRECTORY_SEPARATOR;
|
||||
if (file_exists($CONFIG_PATH_PREFIX.CONFIG_PATH.'config.inc')) {
|
||||
require $CONFIG_PATH_PREFIX.CONFIG_PATH.'config.inc';
|
||||
break;
|
||||
}
|
||||
}
|
||||
// fail if no base DS is not set
|
||||
if (!defined('DS')) {
|
||||
exit('Base config unloadable');
|
||||
}
|
||||
|
||||
// __END__
|
||||
1
www/admin/config.php
Symbolic link
1
www/admin/config.php
Symbolic link
@@ -0,0 +1 @@
|
||||
../configs/config.php
|
||||
@@ -71,6 +71,9 @@ if (defined('LAYOUT')) {
|
||||
// there are the POSITION stored, that should CHANGE there order (up/down)
|
||||
// $row_data_id ... has ALL ids from the sorting part
|
||||
// $row_data_order ... has ALL order positions from the soirting part
|
||||
if (!is_array($position)) {
|
||||
$position = array ();
|
||||
}
|
||||
if (count($position)) {
|
||||
$original_id = $row_data_id;
|
||||
|
||||
@@ -146,9 +149,12 @@ if ($error) {
|
||||
$DATA['form_error_msg'] = $messages;
|
||||
|
||||
// all the row data
|
||||
$options_id = array();
|
||||
$options_name = array();
|
||||
$options_selected = array();
|
||||
$options_id = array ();
|
||||
$options_name = array ();
|
||||
$options_selected = array ();
|
||||
if (!is_array($row_data)) {
|
||||
$row_data = array ();
|
||||
}
|
||||
for ($i = 0; $i < count($row_data); $i ++) {
|
||||
$options_id[] = $i;
|
||||
$options_name[] = $row_data[$i]["name"];
|
||||
@@ -165,8 +171,8 @@ $DATA['options_name'] = $options_name;
|
||||
$DATA['options_selected'] = $options_selected;
|
||||
|
||||
// hidden list for the data (id, order number)
|
||||
$row_data_id = array();
|
||||
$row_data_order = array();
|
||||
$row_data_id = array ();
|
||||
$row_data_order = array ();
|
||||
for ($i = 0; $i < count($row_data); $i++) {
|
||||
$row_data_id[] = $row_data[$i]["id"];
|
||||
$row_data_order[] = $row_data[$i]["order"];
|
||||
@@ -184,7 +190,7 @@ $DEBUG_DATA['DEBUG'] = $DEBUG_TMPL;
|
||||
// create main data array
|
||||
$CONTENT_DATA = array_merge($HEADER, $DATA, $DEBUG_DATA);
|
||||
// data is 1:1 mapping (all vars, values, etc)
|
||||
while (list($key, $value) = each($CONTENT_DATA)) {
|
||||
foreach ($CONTENT_DATA as $key => $value) {
|
||||
$smarty->assign($key, $value);
|
||||
}
|
||||
$smarty->display('edit_order.tpl');
|
||||
@@ -192,5 +198,4 @@ $smarty->display('edit_order.tpl');
|
||||
echo $login->printErrorMsg();
|
||||
echo $db->printErrorMsg();
|
||||
|
||||
# __END__
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -10,7 +10,7 @@ if ($DEBUG_ALL) {
|
||||
}
|
||||
|
||||
// sample config
|
||||
require("config.inc");
|
||||
require 'config.php';
|
||||
echo "FILE: ".BASE.LIB."Error.Handling.inc<br>";
|
||||
require(BASE.LIB."Error.Handling.inc");
|
||||
|
||||
|
||||
17
www/admin/l10n_test.php
Executable file
17
www/admin/l10n_test.php
Executable file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
// debug for L10n issues in php 7.3
|
||||
|
||||
// namespace test
|
||||
ob_start();
|
||||
|
||||
$lang = 'en_utf8';
|
||||
|
||||
// admin class tests
|
||||
require 'config.php';
|
||||
$l = new CoreLibs\Language\L10n($lang);
|
||||
|
||||
echo "OK<br>";
|
||||
|
||||
ob_end_flush();
|
||||
// __END__
|
||||
@@ -18,5 +18,24 @@ require BASE.INCLUDES.'admin_set_paths.inc';
|
||||
// smarty test
|
||||
$cms->DATA['SMARTY_TEST'] = 'Test Data';
|
||||
|
||||
// drop down test with optgroups
|
||||
$options = array (
|
||||
'' => '選択してください',
|
||||
'4/25(木)' => array (
|
||||
'4/25(木) 11:00-11:50' => '4/25(木) 11:00-11:50',
|
||||
'4/25(木) 12:20-13:00' => '4/25(木) 12:20-13:00'
|
||||
),
|
||||
'4/26(金)' => array (
|
||||
'4/26(金) 11:00-11:50' => '4/26(金) 11:00-11:50',
|
||||
'4/26(金) 12:20-13:00' => '4/26(金) 12:20-13:00'
|
||||
),
|
||||
'4/27(土)' => array (
|
||||
'4/27(土) 11:00-11:50' => '4/27(土) 11:00-11:50',
|
||||
'4/27(土) 12:20-13:00' => '4/27(土) 12:20-13:00'
|
||||
)
|
||||
);
|
||||
|
||||
$cms->DATA['drop_down_test'] = $options;
|
||||
|
||||
require BASE.INCLUDES.'admin_smarty.inc';
|
||||
require BASE.INCLUDES.'admin_footer.inc';
|
||||
|
||||
@@ -17,6 +17,15 @@ print "BASE: ".BASE."<br>";
|
||||
print "ROOT: ".ROOT."<br>";
|
||||
print "HOST: ".$HOST_NAME." => DB HOST: ".$DB_HOST[$HOST_NAME]." => ".MAIN_DB."<br>";
|
||||
|
||||
$text = 'I am some text
|
||||
with some
|
||||
line breaks
|
||||
in there. Theis
|
||||
is sucky';
|
||||
|
||||
print "LB remove: ".$base->removeLB($text)."<br>";
|
||||
print "LB remove: ".$base->removeLB($text, '##BR##')."<br>";
|
||||
|
||||
// $test = array (
|
||||
// 'A' => array (
|
||||
// 'B' => array (),
|
||||
|
||||
BIN
www/composer.phar
Executable file
BIN
www/composer.phar
Executable file
Binary file not shown.
25
www/configs/config.php
Executable file
25
www/configs/config.php
Executable file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2018/10/11
|
||||
* SHORT DESCRIPTION:
|
||||
* pre config included -> includes master config
|
||||
* HISTORY:
|
||||
*********************************************************************/
|
||||
|
||||
define('CONFIG_PATH', 'configs'.DIRECTORY_SEPARATOR);
|
||||
// config path prefix search, start with 0, got down each level __DIR__ has, if nothing found -> bail
|
||||
$CONFIG_PATH_PREFIX = '';
|
||||
for ($dir_pos = 0, $dir_max = count(explode('/', __DIR__)); $dir_pos <= $dir_max; $dir_pos ++) {
|
||||
$CONFIG_PATH_PREFIX .= '..'.DIRECTORY_SEPARATOR;
|
||||
if (file_exists($CONFIG_PATH_PREFIX.CONFIG_PATH.'config.inc')) {
|
||||
require $CONFIG_PATH_PREFIX.CONFIG_PATH.'config.inc';
|
||||
break;
|
||||
}
|
||||
}
|
||||
// fail if no base DS is not set
|
||||
if (!defined('DS')) {
|
||||
exit('Base config unloadable');
|
||||
}
|
||||
|
||||
// __END__
|
||||
@@ -1,293 +0,0 @@
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2003/06/10
|
||||
* SHORT DESCRIPTION:
|
||||
* configuration file
|
||||
* HISTORY:
|
||||
*********************************************************************/
|
||||
|
||||
/************* SESSION NAMES *************/
|
||||
// server name HASH
|
||||
DEFINE('SERVER_NAME_HASH', hash('crc32b', $_SERVER['HTTP_HOST']));
|
||||
// backend
|
||||
DEFINE('EDIT_SESSION_NAME', '<ADMIN SESSION NAME>'.SERVER_NAME_HASH);
|
||||
// frontend
|
||||
DEFINE('SESSION_NAME', '<SESSION NAME>'.SERVER_NAME_HASH);
|
||||
// SET_SESSION_NAME should be set in the header if a special session name is needed
|
||||
// DEFINE('SET_SESSION_NAME', SESSION_NAME);
|
||||
|
||||
/************* LANGUAGE / ENCODING *******/
|
||||
DEFINE('DEFAULT_LANG', 'en_utf8');
|
||||
// default web page encoding setting
|
||||
DEFINE('DEFAULT_ENCODING', 'UTF-8');
|
||||
|
||||
/************* PATHS *********************/
|
||||
// directory seperator
|
||||
DEFINE('DS', DIRECTORY_SEPARATOR);
|
||||
// ** NEW/BETTER DIR DECLARATIONS **
|
||||
// path to original file (if symlink)
|
||||
DEFINE('DIR', __DIR__.DS);
|
||||
// base dir root folder level
|
||||
DEFINE('BASE', str_replace('configs', '', __DIR__));
|
||||
|
||||
// ** OLD DIR DECLARATIONS **
|
||||
// path to document root of file called
|
||||
DEFINE('ROOT', getcwd().DS);
|
||||
// libs path
|
||||
DEFINE('LIB', 'lib'.DS);
|
||||
DEFINE('LIBS', 'lib'.DS);
|
||||
// configs folder
|
||||
DEFINE('CONFIGS', 'configs'.DS);
|
||||
// includes (strings, arrays for static, etc)
|
||||
DEFINE('INCLUDES', 'includes'.DS);
|
||||
// layout base path
|
||||
DEFINE('LAYOUT', 'layout'.DS);
|
||||
// pic-root (compatible to CMS)
|
||||
DEFINE('PICTURES', 'images'.DS);
|
||||
// images
|
||||
DEFINE('IMAGES', 'images'.DS);
|
||||
// icons (below the images/ folder)
|
||||
DEFINE('ICONS', 'icons'.DS);
|
||||
// media
|
||||
DEFINE('MEDIA', 'media'.DS);
|
||||
// flash-root (below media)
|
||||
DEFINE('FLASH', 'flash'.DS);
|
||||
// uploads (anything to keep)
|
||||
DEFINE('UPLOADS', 'uploads'.DS);
|
||||
// files (binaries) (below media)
|
||||
DEFINE('BINARIES', 'binaries'.DS);
|
||||
// files (videos) (below media)
|
||||
DEFINE('VIDEOS', 'videos'.DS);
|
||||
// files (documents) (below media)
|
||||
DEFINE('DOCUMENTS', 'documents'.DS);
|
||||
// files (pdfs) (below media)
|
||||
DEFINE('PDFS', 'documents'.DS);
|
||||
// CSV
|
||||
DEFINE('CSV', 'csv'.DS);
|
||||
// css
|
||||
DEFINE('CSS', 'css'.DS);
|
||||
// js
|
||||
DEFINE('JS', 'javascript'.DS);
|
||||
// table arrays
|
||||
DEFINE('TABLE_ARRAYS', 'table_arrays'.DS);
|
||||
// smarty libs path
|
||||
DEFINE('SMARTY', 'Smarty'.DS);
|
||||
// po langs
|
||||
DEFINE('LANG', 'lang'.DS);
|
||||
// cache path
|
||||
DEFINE('CACHE', 'cache'.DS);
|
||||
// temp path
|
||||
DEFINE('TMP', 'tmp'.DS);
|
||||
// log files
|
||||
DEFINE('LOG', 'log'.DS);
|
||||
// compiled template folder
|
||||
DEFINE('TEMPLATES_C', 'templates_c'.DS);
|
||||
// template base
|
||||
DEFINE('TEMPLATES', 'templates'.DS);
|
||||
// frontend template dir', only for admin
|
||||
DEFINE('TEMPLATES_FRONTEND', 'templates_frontend'.DS);
|
||||
// default template
|
||||
DEFINE('DEFAULT_TEMPLATE', 'default'.DS);
|
||||
// default template file
|
||||
DEFINE('DEFAULT_TEMPLATE_FILE', 'default.tpl');
|
||||
|
||||
/************* HASH / ACL DEFAULT / ERROR SETTINGS / SMARTY *************/
|
||||
// default hash type
|
||||
DEFINE('DEFAULT_HASH', 'sha256');
|
||||
// default acl level
|
||||
DEFINE('DEFAULT_ACL_LEVEL', 80);
|
||||
// default levels for certain actions
|
||||
/* DEFINE('DEFAULT_ACL_READ', 20);
|
||||
DEFINE('DEFAULT_ACL_CONFIRM', 35);
|
||||
DEFINE('DEFAULT_ACL_MOD', 40);
|
||||
DEFINE('DEFAULT_ACL_WRITE', 60);
|
||||
DEFINE('DEFAULT_ACL_SEND', 70);
|
||||
DEFINE('DEFAULT_ACL_DEL', 80);
|
||||
DEFINE('DEFAULT_ACL_ADMIN', 100); */
|
||||
// SSL host name
|
||||
// DEFINE('SSL_HOST', 'ssl.host.name');
|
||||
// error page strictness, Default is 3
|
||||
// 1: only show error page as the last mesure if really no mid & aid can be loaded and found at all
|
||||
// 2: if template not found, do not search, show error template
|
||||
// 3: if default template is not found, show error template, do not fall back to default tree
|
||||
// 4: very strict, even on normal fixable errors through error
|
||||
// DEFINE('ERROR_STRICT', 3);
|
||||
// allow page caching in general, set to 'FALSE' if you do debugging or development!
|
||||
// DEFINE('ALLOW_SMARTY_CACHE', FALSE);
|
||||
// cache life time, in seconds, default here is 2 days (172800s)
|
||||
// -1 is never expire cache
|
||||
// DEFINE('SMARTY_CACHE_LIFETIME', -1);
|
||||
|
||||
/************* LOGOUT ********************/
|
||||
// logout target
|
||||
DEFINE('LOGOUT_TARGET', '');
|
||||
// password change allowed
|
||||
DEFINE('PASSWORD_CHANGE', false);
|
||||
// min/max password length
|
||||
DEFINE('PASSWORD_MIN_LENGTH', 8);
|
||||
DEFINE('PASSWORD_MAX_LENGTH', 255);
|
||||
|
||||
/************* AJAX / ACCESS *************/
|
||||
// ajax request type
|
||||
DEFINE('AJAX_REQUEST_TYPE', 'POST');
|
||||
// what AJAX type to use
|
||||
DEFINE('USE_PROTOTYPE', true);
|
||||
DEFINE('USE_SCRIPTACULOUS', false);
|
||||
DEFINE('USE_JQUERY', false);
|
||||
|
||||
/************* LAYOUT WIDTHS *************/
|
||||
DEFINE('PAGE_WIDTH', 800);
|
||||
// the default template name
|
||||
DEFINE('MASTER_TEMPLATE_NAME', 'main_body.tpl');
|
||||
|
||||
// below two can be defined here, but they should be
|
||||
// defined in either the header file or the file itself
|
||||
/************* LOGGING *******************/
|
||||
// DEFINE('LOG_FILE_ID', '');
|
||||
|
||||
/************* QUEUE TABLE *************/
|
||||
// if we have a dev/live system
|
||||
// set_live is a per page/per item
|
||||
// live_queue is a global queue system
|
||||
// DEFINE('QUEUE', 'live_queue');
|
||||
|
||||
/************* DB PATHS (PostgreSQL) *****************/
|
||||
// schema names, can also be defined per <DB INFO>
|
||||
DEFINE('PUBLIC_SCHEMA', 'public');
|
||||
DEFINE('DEV_SCHEMA', 'public');
|
||||
DEFINE('TEST_SCHEMA', 'public');
|
||||
DEFINE('LIVE_SCHEMA', 'public');
|
||||
|
||||
/************* OTHER PATHS *****************/
|
||||
// File and Folder paths
|
||||
// ID is TARGET (first array element)
|
||||
// $PATHS['test']['csv_path'] = '';
|
||||
// $PATHS['test']['perl_bin'] = '';
|
||||
// $PATHS['test']['redirect_url'] = '';
|
||||
|
||||
// non constant part
|
||||
/************* DB ACCESS *****************/
|
||||
if (file_exists(BASE.CONFIGS.'config.db.inc')) {
|
||||
require BASE.CONFIGS.'config.db.inc';
|
||||
}
|
||||
// -> below in config.db.inc
|
||||
// *** START ***
|
||||
// // please be VERY carefull only to change the right side
|
||||
// $DB_CONFIG = array (
|
||||
// '<DB ID>' => array (
|
||||
// 'db_name' => '<DB NAME>',
|
||||
// 'db_user' => '<DB USER>',
|
||||
// 'db_pass' => '<DB PASSWORD>',
|
||||
// 'db_host' => '<DB HOST>',
|
||||
// 'db_port' => '5432',
|
||||
// 'db_schema' => '<DB SCHEMA>', // if not set, uses public
|
||||
// 'db_type' => 'pgsql',
|
||||
// 'db_encoding' => '',
|
||||
// 'db_ssl' => 'disable' // allow, disable, require, prefer
|
||||
// )
|
||||
// );
|
||||
// *** END ***
|
||||
if (file_exists(BASE.CONFIGS.'config.host.inc')) {
|
||||
require BASE.CONFIGS.'config.host.inc';
|
||||
}
|
||||
// // -> below in config.host.inc
|
||||
// *** START ***
|
||||
// // each host has a different db_host
|
||||
// // development host
|
||||
// $DB_HOST['<HOST NAME>'] = '<DB ID>';
|
||||
// // target host (live)
|
||||
// // $DB_TARGET_HOST['<HOST NAME>'] = '<DB ID>';
|
||||
// // url redirect database
|
||||
// // $DB_URL_REDIRECT_HOST['<HOST NAME>'] = '<DB ID>';
|
||||
// // location flagging
|
||||
// // test/dev/live
|
||||
// $LOCATION['<HOST NAME>'] = '<test|live|remote|etc>';
|
||||
// // show DEBUG override
|
||||
// // true/false
|
||||
// $DEBUG_FLAG['<HOST NAME>'] = true;
|
||||
// // set postgresql paths (schemas)
|
||||
// $DB_PATH['<HOST NAME>'] = PUBLIC_SCHEMA;
|
||||
// *** END ***
|
||||
|
||||
// set the USE_DATABASE var, if there is nothing set, we assume TRUE
|
||||
$USE_DATABASE = defined('USE_DATABASE') ? USE_DATABASE : true;
|
||||
|
||||
// live frontend pages
|
||||
// ** missing live domains **
|
||||
// get the name without the port
|
||||
list($HOST_NAME, $PORT) = array_pad(explode(':', $_SERVER['HTTP_HOST'], 2), 2, null);
|
||||
if (!$DB_HOST[$HOST_NAME] && $USE_DATABASE) {
|
||||
echo 'No matching DB config found. Contact Admin<br>';
|
||||
exit -1;
|
||||
}
|
||||
// set HOST name
|
||||
DEFINE('HOST_NAME', $HOST_NAME);
|
||||
// set SSL on
|
||||
if ((array_key_exists('HTTPS', $_SERVER) && !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ||
|
||||
$_SERVER['SERVER_PORT'] == 443) {
|
||||
DEFINE('HOST_SSL', true);
|
||||
DEFINE('HOST_PROTOCOL', 'https://');
|
||||
} else {
|
||||
DEFINE('HOST_SSL', false);
|
||||
DEFINE('HOST_PROTOCOL', 'http://');
|
||||
}
|
||||
// define the static names
|
||||
DEFINE('LOGIN_DB', $DB_HOST[$HOST_NAME]);
|
||||
DEFINE('MAIN_DB', $DB_HOST[$HOST_NAME]);
|
||||
DEFINE('DB_SCHEMA', $DB_PATH[$HOST_NAME]);
|
||||
// DEFINE('TARGET_DB', $DB_TARGET_HOST[$HOST_NAME]);
|
||||
// DEFINE('URL_REDIRECT_DB', $DB_URL_REDIRECT_HOST[$HOST_NAME]);
|
||||
// next three if top is not set
|
||||
// DEFINE('DEV_SCHEMA', $DB_CONFIG[MAIN_DB]['db_schema']);
|
||||
// DEFINE('TEST_SCHEMA', $DB_CONFIG[MAIN_DB]['db_schema']);
|
||||
// DEFINE('PUBLIC_SCHEMA', $DB_CONFIG[TARGET_DB]['db_schema']);
|
||||
DEFINE('LOGIN_DB_SCHEMA', 'public'); // where the edit* tables are
|
||||
DEFINE('GLOBAL_DB_SCHEMA', 'public'); // where global tables are that are used by all schemas (eg queue tables for online, etc)
|
||||
DEFINE('TARGET', $LOCATION[$HOST_NAME]);
|
||||
// DEFINE('CSV_PATH', $PATHS[TARGET]['csv_path']);
|
||||
// DEFINE('EXPORT_SCRIPT', $PATHS[TARGET]['perl_bin']);
|
||||
// DEFINE('REDIRECT_URL', $PATHS[TARGET]['redirect_url']);
|
||||
DEFINE('DEBUG', $DEBUG_FLAG[$HOST_NAME]);
|
||||
DEFINE('SHOW_ALL_ERRORS', false); // show all errors if debug_all & show_error_handling are enabled
|
||||
|
||||
/************* GENERAL PAGE TITLE ********/
|
||||
$G_TITLE = '<OVERALL PAGE TITLE>';
|
||||
|
||||
/************ STYLE SHEETS / JS **********/
|
||||
$EDIT_STYLESHEET = 'edit.css';
|
||||
$EDIT_JAVASCRIPT = 'edit.js';
|
||||
|
||||
$STYLESHEET = 'frontend.css';
|
||||
$JAVASCRIPT = 'frontend.js';
|
||||
|
||||
/************* CONVERT *******************/
|
||||
$paths = array (
|
||||
'/bin',
|
||||
'/usr/bin',
|
||||
'/usr/local/bin'
|
||||
);
|
||||
// find convert
|
||||
foreach ($paths as $path) {
|
||||
if (file_exists($path.'/convert') && is_file($path.'/convert')) {
|
||||
// image magick convert location
|
||||
DEFINE('CONVERT', $path.'/convert');
|
||||
}
|
||||
}
|
||||
|
||||
// turn off debug if debug flag is OFF
|
||||
if (DEBUG == false) {
|
||||
$ECHO_ALL = 0;
|
||||
$DEBUG_ALL = 0;
|
||||
$PRINT_ALL = 0;
|
||||
$DB_DEBUG = 0;
|
||||
$ENABLE_ERROR_HANDLING = 0;
|
||||
}
|
||||
|
||||
// any other global definitons here
|
||||
// DEFINE('SOME_ID', <SOME VALUE>);
|
||||
|
||||
// read auto loader
|
||||
require BASE.LIB.'autoloader.php';
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2005/07/19
|
||||
@@ -7,45 +7,55 @@
|
||||
* HISTORY:
|
||||
*********************************************************************/
|
||||
|
||||
$day_short[1] = "Mon";
|
||||
$day_short[2] = "Tue";
|
||||
$day_short[3] = "Wed";
|
||||
$day_short[4] = "Thu";
|
||||
$day_short[5] = "Fri";
|
||||
$day_short[6] = "Sat";
|
||||
$day_short[7] = "Sun";
|
||||
$day_short = array (
|
||||
1 => 'Mon',
|
||||
2 => 'Tue',
|
||||
3 => 'Wed',
|
||||
4 => 'Thu',
|
||||
5 => 'Fri',
|
||||
6 => 'Sat',
|
||||
7 => 'Sun'
|
||||
);
|
||||
|
||||
$day_long[1] = "Monday";
|
||||
$day_long[2] = "Tuesday";
|
||||
$day_long[3] = "Wednesday";
|
||||
$day_long[4] = "Thursday";
|
||||
$day_long[5] = "Friday";
|
||||
$day_long[6] = "Saturday";
|
||||
$day_long[7] = "Sunday";
|
||||
$day_long = array (
|
||||
1 => 'Monday',
|
||||
2 => 'Tuesday',
|
||||
3 => 'Wednesday',
|
||||
4 => 'Thursday',
|
||||
5 => 'Friday',
|
||||
6 => 'Saturday',
|
||||
7 => 'Sunday'
|
||||
);
|
||||
|
||||
// monate
|
||||
$month_long[1] = "January";
|
||||
$month_long[2] = "February";
|
||||
$month_long[3] = "March";
|
||||
$month_long[4] = "April";
|
||||
$month_long[5] = "May";
|
||||
$month_long[6] = "June";
|
||||
$month_long[7] = "July";
|
||||
$month_long[8] = "August";
|
||||
$month_long[9] = "September";
|
||||
$month_long[10] = "October";
|
||||
$month_long[11] = "November";
|
||||
$month_long[12] = "December";
|
||||
// months
|
||||
$month_long = array (
|
||||
1 => 'January',
|
||||
2 => 'February',
|
||||
3 => 'March',
|
||||
4 => 'April',
|
||||
5 => 'May',
|
||||
6 => 'June',
|
||||
7 => 'July',
|
||||
8 => 'August',
|
||||
9 => 'September',
|
||||
10 => 'October',
|
||||
11 => 'November',
|
||||
12 => 'December'
|
||||
);
|
||||
|
||||
$month_short[1] = "Jan";
|
||||
$month_short[2] = "Feb";
|
||||
$month_short[3] = "Mar";
|
||||
$month_short[4] = "Apr";
|
||||
$month_short[5] = "May";
|
||||
$month_short[6] = "Jun";
|
||||
$month_short[7] = "Jul";
|
||||
$month_short[8] = "Aug";
|
||||
$month_short[9] = "Sep";
|
||||
$month_short[10] = "Oct";
|
||||
$month_short[11] = "Nov";
|
||||
$month_short[12] = "Dec";
|
||||
$month_short = array (
|
||||
1 => 'Jan',
|
||||
2 => 'Feb',
|
||||
3 => 'Mar',
|
||||
4 => 'Apr',
|
||||
5 => 'May',
|
||||
6 => 'Jun',
|
||||
7 => 'Jul',
|
||||
8 => 'Aug',
|
||||
9 => 'Sep',
|
||||
10 => 'Oct',
|
||||
11 => 'Nov',
|
||||
12 => 'Dec'
|
||||
);
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -10,3 +10,5 @@
|
||||
// print debug messages
|
||||
echo $login->printErrorMsg();
|
||||
echo $cms->printErrorMsg();
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
//------------------------------ variable init start
|
||||
// for dev test we set full error reporting; writes everything, except E_ERROR into logs/php_error-<day>.log
|
||||
if ($DEBUG_ALL && $ENABLE_ERROR_HANDLING) {
|
||||
include("../lib/Error.Handling.inc");
|
||||
include(BASE.LIBS."Error.Handling.inc");
|
||||
}
|
||||
// predefine vars
|
||||
$lang = '';
|
||||
@@ -94,3 +94,5 @@ if ((TARGET == 'live' || TARGET == 'remote') && !$DEBUG_ALL_OVERRIDE) {
|
||||
$cms->print_output_all = 0;
|
||||
}
|
||||
$cms->DATA['JS_DEBUG'] = DEBUG;
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -55,7 +55,10 @@ $cms->CSS_SPECIAL_TEMPLATE_NAME = @$CSS_NAME;
|
||||
$cms->JS_SPECIAL_TEMPLATE_NAME = @$JS_NAME;
|
||||
|
||||
// set basic template path (tmp)
|
||||
$smarty->setTemplateDir(LAYOUT.$TEMPLATE_DIR.TEMPLATES); // no outside
|
||||
$cms->template_path = LAYOUT.$TEMPLATE_DIR.TEMPLATES;
|
||||
if ($smarty) {
|
||||
$smarty->setTemplateDir($cms->template_path);
|
||||
}
|
||||
$cms->lang_dir = LAYOUT.$TEMPLATE_DIR.LANG; // no outside
|
||||
$cms->includes = BASE.INCLUDES; // no longer in templates, only global
|
||||
$cms->javascript = LAYOUT.$TEMPLATE_DIR.JS;
|
||||
@@ -141,4 +144,4 @@ if (!file_exists($smarty->getTemplateDir()[0].DS.$TEMPLATE_TRANSLATE)) {
|
||||
$cms->debug("LANGUAGE", "SL: ".$_SESSION['DEFAULT_CHARSET']." | ".$_SESSION['LANG']." | ".$_SESSION['DEFAULT_LANG']);
|
||||
$cms->debug("TEMPLATE", "P: ".$smarty->getTemplateDir()[0]);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -101,4 +101,4 @@ if (is_dir(BASE.CACHE)) {
|
||||
}
|
||||
$smarty->display($MASTER_TEMPLATE_NAME, $TEMPLATE.$lang, $TEMPLATE.$lang);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -22,7 +22,7 @@ $DB_DEBUG = 1;
|
||||
|
||||
extract($_POST, EXTR_SKIP);
|
||||
|
||||
$table_width = 750;
|
||||
$table_width = '100%';
|
||||
// this is for certain CMS modules that set a relative path
|
||||
define('REL_PATH', '');
|
||||
|
||||
@@ -325,4 +325,4 @@ $smarty->display('edit_body.tpl');
|
||||
echo $login->printErrorMsg();
|
||||
echo $form->printErrorMsg();
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_access = array (
|
||||
"table_array" => array (
|
||||
"edit_access_id" => array (
|
||||
@@ -33,7 +34,7 @@ $edit_access = array (
|
||||
"value" => $GLOBALS["enabled"],
|
||||
"output_name" => "Enabled",
|
||||
"type" => "binary",
|
||||
"int" => 1,
|
||||
"int" => 1, // OR "bool" => 1
|
||||
"element_list" => array (
|
||||
"1" => "Yes",
|
||||
"0" => "No"
|
||||
@@ -95,4 +96,4 @@ $edit_access = array (
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_groups = array (
|
||||
"table_array" => array (
|
||||
"edit_group_id" => array (
|
||||
@@ -98,4 +99,4 @@ $edit_groups = array (
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_languages=array (
|
||||
"table_array" => array (
|
||||
"edit_language_id" => array (
|
||||
@@ -71,4 +72,4 @@ $edit_languages=array (
|
||||
"table_name" => "edit_language"
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_menu_group = array (
|
||||
"table_array" => array (
|
||||
"edit_menu_group_id" => array (
|
||||
@@ -36,4 +37,4 @@ $edit_menu_group = array (
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_pages = array (
|
||||
"table_array" => array (
|
||||
"edit_page_id" => array (
|
||||
@@ -176,4 +177,4 @@ $edit_pages = array (
|
||||
) // element list
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_schemes = array (
|
||||
"table_array" => array (
|
||||
"edit_scheme_id" => array (
|
||||
@@ -53,4 +54,4 @@ $edit_schemes = array (
|
||||
)
|
||||
); // main array
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_users = array (
|
||||
"table_array" => array (
|
||||
"edit_user_id" => array (
|
||||
@@ -257,4 +258,4 @@ $edit_users = array (
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$edit_visible_group = array (
|
||||
"table_array" => array (
|
||||
"edit_visible_group_id" => array (
|
||||
@@ -29,4 +30,4 @@ $edit_visible_group = array (
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -17,20 +17,28 @@ if (clientPC.indexOf('opera') != -1) {
|
||||
var is_opera_preseven = (window.opera && !document.childNodes);
|
||||
var is_opera_seven = (window.opera && document.childNodes);
|
||||
}
|
||||
// debug set
|
||||
var FRONTEND_DEBUG = false;
|
||||
var DEBUG = true;
|
||||
if (!DEBUG) {
|
||||
$($H(window.console)).each(function(w) {
|
||||
window.console[w.key] = function() {};
|
||||
});
|
||||
}
|
||||
|
||||
// METHOD: pop
|
||||
// PARAMS: url, window name, features
|
||||
// RETURN: none
|
||||
// DESC : opens a popup window with winNAme and given features (string)
|
||||
function pop(theURL, winName, features) {
|
||||
winName = window.open(theURL, winName, features);
|
||||
winName.focus();
|
||||
}
|
||||
|
||||
function emd_check_checkbox() {
|
||||
for (i = 0; i < document.manage_emails.length; i ++) {
|
||||
if (document.manage_emails.elements[i].checked == false && document.manage_emails.elements[i].type == 'checkbox') {
|
||||
document.manage_emails.elements[i].checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: expandTA
|
||||
// PARAMS: id
|
||||
// RETURN: none
|
||||
// DESC : automatically resize a text area based on the amount of lines in it
|
||||
function expandTA(ta_id) {
|
||||
var ta;
|
||||
// if a string comes, its a get by id, else use it as an element pass on
|
||||
@@ -50,11 +58,13 @@ function expandTA(ta_id) {
|
||||
}
|
||||
ta.rows = numNewRows + theRows.length;
|
||||
}
|
||||
|
||||
// METHOD: ShowHideMenu
|
||||
// PARAMS: status -> show or hide
|
||||
// id -> id to work on
|
||||
// RETURN: none
|
||||
// DESC: shows or hides the menu
|
||||
// this is used in some old menu templates
|
||||
function ShowHideMenu(status, id)
|
||||
{
|
||||
if (status == 'show') {
|
||||
@@ -70,18 +80,7 @@ function ShowHideMenu(status, id)
|
||||
}
|
||||
}
|
||||
|
||||
function ShowHideDiv(id)
|
||||
{
|
||||
element = document.getElementById(id);
|
||||
if (element.className == 'visible' || !element.className) {
|
||||
element.className = 'hidden';
|
||||
} else {
|
||||
element.className = 'visible';
|
||||
}
|
||||
|
||||
// alert('E: ' + element.className + ' -- ' + element.style.visibility);
|
||||
}
|
||||
|
||||
// used in old templates
|
||||
// move element action
|
||||
function mv(id, direction)
|
||||
{
|
||||
@@ -107,10 +106,39 @@ function le(id)
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: sh
|
||||
// PARAMS: id -> element to hide
|
||||
// showText -> text for the element if shown
|
||||
// hideText -> text for the element if hidden
|
||||
// RETURN: returns true if hidden, or false if not
|
||||
// DESC : hides an element, additional writes 1 (show) or 0 (hide) into <id>Flag field
|
||||
// this needs scriptacolous installed for BlindUp/BlindDown
|
||||
function sh(id, showText, hideText)
|
||||
{
|
||||
flag = id + 'Flag';
|
||||
btn = id + 'Btn';
|
||||
// get status from element (hidden or visible)
|
||||
divStatus = $(id).visible();
|
||||
//console.log('Set flag %s for element %s', divStatus, id);
|
||||
if (divStatus) {
|
||||
// hide the element
|
||||
Effect.BlindUp(id, {duration:0.3});
|
||||
$(flag).value = 0;
|
||||
$(btn).innerHTML = showText;
|
||||
} else if (!divStatus) {
|
||||
// show the element
|
||||
Effect.BlindDown(id, {duration:0.3});
|
||||
$(flag).value = 1;
|
||||
$(btn).innerHTML = hideText;
|
||||
}
|
||||
// return current button status
|
||||
return divStatus;
|
||||
}
|
||||
|
||||
// METHOD: getWindowSize
|
||||
// PARAMS: none
|
||||
// RETURN: array with width/height
|
||||
// DESC: wrapper to get the real window size for the current browser window
|
||||
// DESC : wrapper to get the real window size for the current browser window
|
||||
function getWindowSize()
|
||||
{
|
||||
var width, height;
|
||||
@@ -125,7 +153,7 @@ function getWindowSize()
|
||||
// METHOD: getScrollOffset
|
||||
// PARAMS: none
|
||||
// RETURN: array with x/y px
|
||||
// DESC: wrapper to get the correct scroll offset
|
||||
// DESC : wrapper to get the correct scroll offset
|
||||
function getScrollOffset()
|
||||
{
|
||||
var left, top;
|
||||
@@ -140,7 +168,7 @@ function getScrollOffset()
|
||||
// METHOD: setCenter
|
||||
// PARAMS: id to set center
|
||||
// RETURN: none
|
||||
// DESC: centers div to current window size middle
|
||||
// DESC : centers div to current window size middle
|
||||
function setCenter(id, left, top)
|
||||
{
|
||||
// get size of id
|
||||
@@ -166,38 +194,146 @@ function setCenter(id, left, top)
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD sh
|
||||
// PARAMS: id -> element to hide
|
||||
// showText -> text for the element if shown
|
||||
// hideText -> text for the element if hidden
|
||||
// RETURN: returns true if hidden, or false if not
|
||||
// DESC: hides an element, additional writes 1 (show) or 0 (hide) into <id>Flag field
|
||||
function sh(id, showText, hideText)
|
||||
// METHOD: goToPos()
|
||||
// PARAMS: element, offset (default 0)
|
||||
// RETURN: none
|
||||
// DESC: goes to an element id position
|
||||
function goToPos(element, offset = 0)
|
||||
{
|
||||
flag = id + 'Flag';
|
||||
btn = id + 'Btn';
|
||||
// get status from element (hidden or visible)
|
||||
divStatus = $(id).visible();
|
||||
//console.log('Set flag %s for element %s', divStatus, id);
|
||||
if (divStatus) {
|
||||
// hide the element
|
||||
Effect.BlindUp(id, {duration:0.3});
|
||||
$(flag).value = 0;
|
||||
$(btn).innerHTML = showText;
|
||||
} else if (!divStatus) {
|
||||
// show the element
|
||||
Effect.BlindDown(id, {duration:0.3});
|
||||
$(flag).value = 1;
|
||||
$(btn).innerHTML = hideText;
|
||||
try {
|
||||
if ($(element))
|
||||
{
|
||||
// get the element pos
|
||||
var pos = $(element).cumulativeOffset();
|
||||
// if not top element and no offset given, set auto offset for top element
|
||||
// also compensate by -40 for some offset calc issue and not have it too much to the header
|
||||
if (pos.top != 0 && offset == 0) {
|
||||
offset = ($(GL_main_content_div).style.paddingTop.replace('px', '') * -1) - 40;
|
||||
}
|
||||
//console.log('Scroll to: %s, Offset: %s [%s], PT: %s', element, offset, $('pbsMainContent').style.paddingTop.replace('px', ''), pos.top);
|
||||
window.scrollTo(pos.left, pos.top + offset);
|
||||
}
|
||||
} catch (err) {
|
||||
errorCatch(err);
|
||||
}
|
||||
// return current button status
|
||||
return divStatus;
|
||||
}
|
||||
|
||||
// METHOD: __
|
||||
// PARAMS: text
|
||||
// RETURN: translated text (based on PHP selected language)
|
||||
// DESC : uses the i18n array created in the translation template, that is filled from gettext in PHP (Smarty)
|
||||
function __(string)
|
||||
{
|
||||
if (typeof i18n !== 'undefined' && isObject(i18n) && i18n[string]) {
|
||||
return i18n[string];
|
||||
} else {
|
||||
return string;
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: string.format
|
||||
// PARAMS: any, for string format
|
||||
// RETURN: formatted string
|
||||
// DESC : simple sprintf formater for replace
|
||||
// "{0} is cool, {1} is not".format("Alpha", "Beta");
|
||||
// First, checks if it isn't implemented yet.
|
||||
if (!String.prototype.format) {
|
||||
String.prototype.format = function()
|
||||
{
|
||||
var args = arguments;
|
||||
return this.replace(/{(\d+)}/g, function(match, number)
|
||||
{
|
||||
return typeof args[number] != 'undefined' ?
|
||||
args[number] :
|
||||
match
|
||||
;
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
// METHOD: numberWithCommas
|
||||
// PARAMS: number
|
||||
// RETURN: formatted with , in thousands
|
||||
// DESC : formats flat number 123456 to 123,456
|
||||
const numberWithCommas = (x) => {
|
||||
var parts = x.toString().split(".");
|
||||
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||
return parts.join(".");
|
||||
};
|
||||
|
||||
// METHOD:
|
||||
// PARAMS: string
|
||||
// RETURN: string with <br>
|
||||
// DESC : converts line breaks to br
|
||||
function convertLBtoBR(string)
|
||||
{
|
||||
return string.replace(/(?:\r\n|\r|\n)/g, '<br>');
|
||||
}
|
||||
|
||||
if (!String.prototype.escapeHTML) {
|
||||
String.prototype.escapeHTML = function() {
|
||||
return this.replace(/[&<>"'\/]/g, function (s) {
|
||||
var entityMap = {
|
||||
"&": "&",
|
||||
"<": "<",
|
||||
">": ">",
|
||||
'"': '"',
|
||||
"'": ''',
|
||||
"/": '/'
|
||||
};
|
||||
|
||||
return entityMap[s];
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
if (!String.prototype.unescapeHTML) {
|
||||
String.prototype.unescapeHTML = function() {
|
||||
return this.replace(/&[#\w]+;/g, function (s) {
|
||||
var entityMap = {
|
||||
"&": "&",
|
||||
"<": "<",
|
||||
">": ">",
|
||||
'"': '"',
|
||||
''': "'",
|
||||
'/': "/"
|
||||
};
|
||||
|
||||
return entityMap[s];
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
// METHOD: getTimestamp
|
||||
// PARAMS: none
|
||||
// RETURN: timestamp (in milliseconds)
|
||||
// DESC : returns current timestamp (unix timestamp)
|
||||
function getTimestamp()
|
||||
{
|
||||
let date = new Date();
|
||||
return date.getTime();
|
||||
}
|
||||
|
||||
// METHOD: isObject
|
||||
// PARAMS: possible object
|
||||
// RETURN: true/false if it is an object or not
|
||||
function isObject(val) {
|
||||
if (val === null) {
|
||||
return false;
|
||||
}
|
||||
return ((typeof val === 'function') || (typeof val === 'object'));
|
||||
}
|
||||
|
||||
// METHOD: exists
|
||||
// PARAMS: uid
|
||||
// RETURN: true/false
|
||||
// DESC : checks if a DOM element actually exists
|
||||
const exists = (id) => $(id) ? true : false;
|
||||
|
||||
// METHOD: formatBytes
|
||||
// PARAMS: bytes in int
|
||||
// RETURN: string in GB/MB/KB
|
||||
// DESC: converts a int number into bytes with prefix in two decimals precision
|
||||
// DESC : converts a int number into bytes with prefix in two decimals precision
|
||||
// currently precision is fixed, if dynamic needs check for max/min precision
|
||||
function formatBytes(bytes)
|
||||
{
|
||||
@@ -210,6 +346,142 @@ function formatBytes(bytes)
|
||||
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
||||
}
|
||||
|
||||
// METHOD: goToPos()
|
||||
// PARAMS: element, offset (default 0)
|
||||
// RETURN: none
|
||||
// DESC : goes to an element id position
|
||||
function goToPos(element, offset = 0)
|
||||
{
|
||||
try {
|
||||
if ($(element))
|
||||
{
|
||||
// get the element pos
|
||||
var pos = $(element).cumulativeOffset();
|
||||
// if not top element and no offset given, set auto offset for top element
|
||||
// also compensate by -40 for some offset calc issue and not have it too much to the header
|
||||
if (pos.top != 0 && offset == 0) {
|
||||
offset = ($(GL_main_content_div).style.paddingTop.replace('px', '') * -1) - 40;
|
||||
}
|
||||
//console.log('Scroll to: %s, Offset: %s [%s], PT: %s', element, offset, $('pbsMainContent').style.paddingTop.replace('px', ''), pos.top);
|
||||
window.scrollTo(pos.left, pos.top + offset);
|
||||
}
|
||||
} catch (err) {
|
||||
errorCatch(err);
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: errorCatch
|
||||
// PARAMS: err (error from try/catch
|
||||
// RETURN: none
|
||||
// DESC : prints out error messages based on data available from the browser
|
||||
function errorCatch(err)
|
||||
{
|
||||
// for FF & Chrome
|
||||
if (err.stack) {
|
||||
// only FF
|
||||
if (err.lineNumber) {
|
||||
console.log('ERROR[%s:%s] %s', err.name, err.lineNumber, err.message);
|
||||
} else if (err.line) {
|
||||
// only Safari
|
||||
console.log('ERROR[%s:%s] %s', err.name, err.line, err.message);
|
||||
} else {
|
||||
console.log('ERROR[%s] %s', err.name, err.message);
|
||||
}
|
||||
// stack trace
|
||||
console.log('ERROR[stack] %s', err.stack);
|
||||
} else if (err.number) {
|
||||
// IE
|
||||
console.log('ERROR[%s:%s] %s', err.name, err.number, err.message);
|
||||
console.log('ERROR[description] %s', err.description);
|
||||
} else {
|
||||
// the rest
|
||||
console.log('ERROR[%s] %s', err.name, err.message);
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: actionIndicator
|
||||
// PARAMS: none
|
||||
// RETURN: none
|
||||
// DESC : show or hide the "do" overlay
|
||||
function actionIndicator(loc = '')
|
||||
{
|
||||
if ($('overlayBox').visible()) {
|
||||
actionIndicatorHide(loc);
|
||||
} else {
|
||||
actionIndicatorShow(loc);
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: actionIndicatorShow/actionIndicatorHide
|
||||
// PARAMS: loc for console log info
|
||||
// RETURN: none
|
||||
// DESC : explicit show/hide for action Indicator
|
||||
// instead of automatically show or hide, do
|
||||
// on command
|
||||
function actionIndicatorShow(loc = '')
|
||||
{
|
||||
console.log('Indicator: SHOW [%s]', loc);
|
||||
$('indicator').addClassName('progress');
|
||||
setCenter('indicator', true, true);
|
||||
$('indicator').show();
|
||||
overlayBoxShow();
|
||||
}
|
||||
function actionIndicatorHide(loc = '')
|
||||
{
|
||||
console.log('Indicator: HIDE [%s]', loc);
|
||||
$('indicator').hide();
|
||||
$('indicator').removeClassName('progress');
|
||||
overlayBoxHide();
|
||||
}
|
||||
|
||||
// METHOD: overlayBoxView
|
||||
// PARAMS: none
|
||||
// RETURN: none
|
||||
// DESC : shows or hides the overlay box
|
||||
function overlayBoxShow()
|
||||
{
|
||||
// check if overlay box exists and if yes set the z-index to 100
|
||||
if ($('overlayBox').visible()) {
|
||||
$('overlayBox').style.zIndex = "100";
|
||||
} else {
|
||||
$('overlayBox').show();
|
||||
}
|
||||
}
|
||||
function overlayBoxHide()
|
||||
{
|
||||
// if the overlay box z-index is 100, do no hide, but set to 98
|
||||
if ($('overlayBox').style.zIndex == 100) {
|
||||
$('overlayBox').style.zIndex = "98";
|
||||
} else {
|
||||
$('overlayBox').hide();
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: setOverlayBox
|
||||
// PARAMS: none
|
||||
// RETURN: none
|
||||
// DESC : position the overlay block box and shows it
|
||||
function setOverlayBox()
|
||||
{
|
||||
var viewport = document.viewport.getDimensions();
|
||||
$('overlayBox').setStyle ({
|
||||
width: '100%',
|
||||
height: '100%'
|
||||
});
|
||||
$('overlayBox').show();
|
||||
}
|
||||
|
||||
// METHOD: ClearCall
|
||||
// PARAMS: none
|
||||
// RETURN: none
|
||||
// DESC : the abort call, clears the action box and hides it and the overlay box
|
||||
function ClearCall()
|
||||
{
|
||||
$('actionBox').innerHTML = '';
|
||||
$('actionBox').hide();
|
||||
$('overlayBox').hide();
|
||||
}
|
||||
|
||||
// *** DOM MANAGEMENT FUNCTIONS
|
||||
// METHOD: cel [create element]
|
||||
// PARAMS: tag: must set tag (div, span, etc)
|
||||
@@ -220,7 +492,7 @@ function formatBytes(bytes)
|
||||
// RETURN: object
|
||||
// DESC : creates object for DOM element creation flow
|
||||
const cel = (tag, id = '', content = '', css = [], options = {}) =>
|
||||
element = {
|
||||
_element = {
|
||||
tag: tag,
|
||||
id: id,
|
||||
name: options.name, // override name if set [name gets ignored in tree build anyway]
|
||||
@@ -241,7 +513,7 @@ function ael(base, attach, id = '')
|
||||
if (id) {
|
||||
// base id match already
|
||||
if (base.id == id) {
|
||||
base.sub.push(attach);
|
||||
base.sub.push(Object.assign({}, attach));
|
||||
} else {
|
||||
// sub check
|
||||
if (base.sub.length > 0) {
|
||||
@@ -252,7 +524,7 @@ function ael(base, attach, id = '')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
base.sub.push(attach);
|
||||
base.sub.push(Object.assign({}, attach));
|
||||
}
|
||||
return base;
|
||||
}
|
||||
@@ -271,7 +543,7 @@ function aelx(base, ...attach)
|
||||
return base;
|
||||
}
|
||||
|
||||
// METHOD: rel [rese element]
|
||||
// METHOD: rel [reset element]
|
||||
// PARAMS: cel created element
|
||||
// RETURN: "none", is self change, but returns base.sub
|
||||
// DESC : resets the sub elements of the base element given
|
||||
@@ -281,23 +553,23 @@ const rel = (base) => base.sub = [];
|
||||
// PARAMS: element, style sheet to remove
|
||||
// RETURN: "none", in place because of reference
|
||||
// DESC : searches and removes style from css array
|
||||
function rcssel(element, css)
|
||||
function rcssel(_element, css)
|
||||
{
|
||||
let css_index = element.css.indexOf(css);
|
||||
let css_index = _element.css.indexOf(css);
|
||||
if (css_index > -1) {
|
||||
element.css.splice(css_index, 1);
|
||||
_element.css.splice(css_index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD acssel [add css element]
|
||||
// METHOD: acssel [add css element]
|
||||
// PARAMS: element, style sheet to add
|
||||
// RETURN: "none", in place add because of reference
|
||||
// DESC : adds a new style sheet to the element given
|
||||
function acssel(element, css)
|
||||
function acssel(_element, css)
|
||||
{
|
||||
let css_index = element.css.indexOf(css);
|
||||
let css_index = _element.css.indexOf(css);
|
||||
if (css_index == -1) {
|
||||
element.css.push(css);
|
||||
_element.css.push(css);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -306,10 +578,10 @@ function acssel(element, css)
|
||||
// RETURN: "none", in place add because of reference
|
||||
// DESC : removes one css and adds another
|
||||
// is a wrapper around rcssel/acssel
|
||||
function scssel(element, rcss, acss)
|
||||
function scssel(_element, rcss, acss)
|
||||
{
|
||||
rcssel(element, rcss);
|
||||
acssel(element, acss);
|
||||
rcssel(_element, rcss);
|
||||
acssel(_element, acss);
|
||||
}
|
||||
|
||||
// METHOD: phfo [produce html from object]
|
||||
@@ -375,6 +647,7 @@ function phfo(tree)
|
||||
// combine to string
|
||||
return content.join('');
|
||||
}
|
||||
// *** DOM MANAGEMENT FUNCTIONS
|
||||
|
||||
// BLOCK: html wrappers for quickly creating html data blocks
|
||||
// METHOD: html_options
|
||||
@@ -393,36 +666,33 @@ function html_options(name, data, selected = '', options_only = false, return_st
|
||||
let data_list = []; // for sorted output
|
||||
// set outside select, gets stripped on return if options only is true
|
||||
element_select = cel('select', name);
|
||||
if (isObject(data)) {
|
||||
// console.log('Call for %s, options: %s', name, options_only);
|
||||
// console.log('Call for %s, options: %s', name, options_only);
|
||||
if (sort == 'keys') {
|
||||
data_list = Object.keys(data).sort();
|
||||
} else if (sort == 'values') {
|
||||
data_list = Object.keys(data).sort((a, b) => ('' + data[a]).localeCompare(data[b]));
|
||||
} else {
|
||||
data_list = Object.keys(data);
|
||||
}
|
||||
// console.log('ORDER: %s', data_list);
|
||||
// use the previously sorted list
|
||||
// for (const [key, value] of Object.entries(data)) {
|
||||
for (const key of data_list) {
|
||||
let value = data[key];
|
||||
console.log('options: key: %s, value: %s', key, value);
|
||||
// basic options init
|
||||
let options = {
|
||||
'label': value,
|
||||
'value': key
|
||||
};
|
||||
// add selected if matching
|
||||
if (selected == key) {
|
||||
options.selected = '';
|
||||
}
|
||||
// create the element option
|
||||
element_option = cel('option', '', value, '', options);
|
||||
// attach it to the select element
|
||||
ael(element_select, element_option);
|
||||
// console.log('Call for %s, options: %s', name, options_only);
|
||||
if (sort == 'keys') {
|
||||
data_list = Object.keys(data).sort();
|
||||
} else if (sort == 'values') {
|
||||
data_list = Object.keys(data).sort((a, b) => ('' + data[a]).localeCompare(data[b]));
|
||||
} else {
|
||||
data_list = Object.keys(data);
|
||||
}
|
||||
// console.log('ORDER: %s', data_list);
|
||||
// use the previously sorted list
|
||||
// for (const [key, value] of Object.entries(data)) {
|
||||
for (const key of data_list) {
|
||||
let value = data[key];
|
||||
console.log('create [%s] options: key: %s, value: %s', name, key, value);
|
||||
// basic options init
|
||||
let options = {
|
||||
'label': value,
|
||||
'value': key
|
||||
};
|
||||
// add selected if matching
|
||||
if (selected == key) {
|
||||
options.selected = '';
|
||||
}
|
||||
// create the element option
|
||||
element_option = cel('option', '', value, '', options);
|
||||
// attach it to the select element
|
||||
ael(element_select, element_option);
|
||||
}
|
||||
// if with select part, convert to text
|
||||
if (!options_only) {
|
||||
@@ -445,4 +715,71 @@ function html_options(name, data, selected = '', options_only = false, return_st
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: html_options_refill
|
||||
// PARAMS: name/id, array of options, sort = ''
|
||||
// sort [def '']: if empty as is, else allowed 'keys', 'values' all others are ignored
|
||||
// RETURN: none
|
||||
// DESC : refills a select box with options and keeps the selected
|
||||
function html_options_refill(name, data, sort = '')
|
||||
{
|
||||
let element_option;
|
||||
let option_selected;
|
||||
let data_list = []; // for sorted output
|
||||
// skip if not exists
|
||||
if ($(name)) {
|
||||
// console.log('Call for %s, options: %s', name, options_only);
|
||||
if (sort == 'keys') {
|
||||
data_list = Object.keys(data).sort();
|
||||
} else if (sort == 'values') {
|
||||
data_list = Object.keys(data).sort((a, b) => ('' + data[a]).localeCompare(data[b]));
|
||||
} else {
|
||||
data_list = Object.keys(data);
|
||||
}
|
||||
// first read in existing ones from the options and get the selected one
|
||||
[].forEach.call(document.querySelectorAll('#' + name + ' :checked'), function(elm) {
|
||||
option_selected = elm.value;
|
||||
});
|
||||
$(name).innerHTML = '';
|
||||
for (const key of data_list) {
|
||||
let value = data[key];
|
||||
// console.log('add [%s] options: key: %s, value: %s', name, key, value);
|
||||
element_option = document.createElement('option');
|
||||
element_option.label = value;
|
||||
element_option.value = key;
|
||||
element_option.innerHTML = value;
|
||||
$(name).appendChild(element_option);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: initDatepickr
|
||||
// PARAMS: initial date ID (#)
|
||||
// RETURN: true on ok, false on failure
|
||||
// DESC : inits date pickr which translations for dates (week/month)
|
||||
function initDatepickr(init_date)
|
||||
{
|
||||
if ($(init_date)) {
|
||||
datepickr('#' + init_date); // we need to add this so we have it initialized before we can actually change the definitions
|
||||
// dates in japanese
|
||||
datepickr.prototype.l10n.months.shorthand = [__('Jan'), __('Feb'), __('Mar'), __('Apr'), __('May'), __('Jun'), __('Jul'), __('Aug'), __('Sep'), __('Oct'), __('Nov'), __('Dec')];
|
||||
datepickr.prototype.l10n.months.longhand = [__('January'), __('February'), __('March'), __('April'), __('May'), __('June'), __('July'), __('August'), __('September'), __('October'), __('November'), __('December')];
|
||||
datepickr.prototype.l10n.weekdays.shorthand = [__('Mon'), __('Tue'), __('Wed'), __('Thu'), __('Fri'), __('Sat'), __('Sun')];
|
||||
datepickr.prototype.l10n.weekdays.longhand = [__('Monday'), __('Tuesday'), __('Wednesday'), __('Thursday'), __('Friday'), __('Saturday'), __('Sunday')];
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// *** MASTER logout call
|
||||
// METHOD: loginLogout
|
||||
// PARAMS: none
|
||||
// RETURN: none
|
||||
// DESC : submits basic data for form logout
|
||||
function loginLogout()
|
||||
{
|
||||
$('login_logout').value = 'Logout';
|
||||
$(form_name).submit();
|
||||
}
|
||||
|
||||
/* END */
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<!-- TOP MENU END //-->
|
||||
<tr>
|
||||
<td width="{$table_width}" class="edit_bgcolor">
|
||||
<form method="post" name="edit_form">
|
||||
<form method="post" name="edit_form" style="margin-block-end: 0em;">
|
||||
<table width="100%" border="0" cellpadding="2" cellspacing="1">
|
||||
<!-- LOAD START //-->
|
||||
{include file="edit_load.tpl"}
|
||||
|
||||
5
www/layout/admin/default/templates/smarty_test.tpl
Normal file → Executable file
5
www/layout/admin/default/templates/smarty_test.tpl
Normal file → Executable file
@@ -1,3 +1,8 @@
|
||||
<div>
|
||||
{$SMARTY_TEST}
|
||||
</div>
|
||||
<div>
|
||||
<select id="drop_down_test" name="drop_down_test">
|
||||
{html_options options=$drop_down_test selected=$drop_down_test_selected}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -72,6 +72,11 @@ class Login extends \CoreLibs\DB\IO
|
||||
private $password_change_ok = false; // password change was successful
|
||||
private $password_forgot = false; // can we reset password and mail to user with new password set screen
|
||||
private $password_forgot_ok = false; // password forgot mail send ok
|
||||
private $change_password;
|
||||
private $pw_username;
|
||||
private $pw_old_password;
|
||||
private $pw_new_password;
|
||||
private $pw_new_password_confirm;
|
||||
private $pw_change_deny_users = array (); // array of users for which the password change is forbidden
|
||||
|
||||
// if we have password change we need to define some rules
|
||||
@@ -179,12 +184,12 @@ class Login extends \CoreLibs\DB\IO
|
||||
$_POST['pw_new_password_confirm'] = '';
|
||||
}
|
||||
// pass on vars to Object vars
|
||||
$this->login = $_POST["login_login"];
|
||||
$this->username = $_POST["login_username"];
|
||||
$this->password = $_POST["login_password"];
|
||||
$this->logout = $_POST["login_logout"];
|
||||
$this->login = $_POST['login_login'];
|
||||
$this->username = $_POST['login_username'];
|
||||
$this->password = $_POST['login_password'];
|
||||
$this->logout = $_POST['login_logout'];
|
||||
// password change vars
|
||||
$this->change_password = $_POST["change_password"];
|
||||
$this->change_password = $_POST['change_password'];
|
||||
$this->pw_username = $_POST['pw_username'];
|
||||
$this->pw_old_password = $_POST['pw_old_password'];
|
||||
$this->pw_new_password = $_POST['pw_new_password'];
|
||||
@@ -845,63 +850,77 @@ class Login extends \CoreLibs\DB\IO
|
||||
private function loginPrintLogin()
|
||||
{
|
||||
if (!$this->permission_okay) {
|
||||
// set the templates now
|
||||
$this->loginSetTemplates();
|
||||
// if there is a global logout target ...
|
||||
if (file_exists($this->logout_target) && $this->logout_target) {
|
||||
$LOGOUT_TARGET = $this->logout_target;
|
||||
// get global AJAX page trigger
|
||||
// if true, return error ajax
|
||||
global $AJAX_PAGE;
|
||||
if ($AJAX_PAGE === true) {
|
||||
$data = array (
|
||||
'status' => 'error',
|
||||
'error_code' => $this->loging_error,
|
||||
'msg' => array (
|
||||
'level' => 'error',
|
||||
'str' => $this->l->__('Login necessary')
|
||||
)
|
||||
);
|
||||
$html_string = json_encode($data);
|
||||
} else {
|
||||
$LOGOUT_TARGET = "";
|
||||
}
|
||||
|
||||
$html_string = $this->login_template['template'];
|
||||
|
||||
// if password change is okay
|
||||
if ($this->password_change) {
|
||||
$html_string_password_change = $this->login_template['password_change'];
|
||||
|
||||
// pre change the data in the PASSWORD_CHANGE_DIV first
|
||||
foreach ($this->login_template['strings'] as $string => $data) {
|
||||
if ($data) {
|
||||
$html_string_password_change = str_replace('{'.$string.'}', $data, $html_string_password_change);
|
||||
}
|
||||
// set the templates now
|
||||
$this->loginSetTemplates();
|
||||
// if there is a global logout target ...
|
||||
if (file_exists($this->logout_target) && $this->logout_target) {
|
||||
$LOGOUT_TARGET = $this->logout_target;
|
||||
} else {
|
||||
$LOGOUT_TARGET = "";
|
||||
}
|
||||
|
||||
$html_string = $this->login_template['template'];
|
||||
|
||||
// if password change is okay
|
||||
if ($this->password_change) {
|
||||
$html_string_password_change = $this->login_template['password_change'];
|
||||
|
||||
// pre change the data in the PASSWORD_CHANGE_DIV first
|
||||
foreach ($this->login_template['strings'] as $string => $data) {
|
||||
if ($data) {
|
||||
$html_string_password_change = str_replace('{'.$string.'}', $data, $html_string_password_change);
|
||||
}
|
||||
}
|
||||
// print error messagae
|
||||
if ($this->login_error) {
|
||||
$html_string_password_change = str_replace('{ERROR_MSG}', $this->login_error_msg[$this->login_error].'<br>', $html_string_password_change);
|
||||
} else {
|
||||
$html_string_password_change = str_replace('{ERROR_MSG}', '<br>', $html_string_password_change);
|
||||
}
|
||||
// if pw change action, show the float again
|
||||
if ($this->change_password && !$this->password_change_ok) {
|
||||
$html_string_password_change = str_replace('{PASSWORD_CHANGE_SHOW}', '<script language="JavaScript">ShowHideDiv(\'pw_change_div\');</script>', $html_string_password_change);
|
||||
} else {
|
||||
$html_string_password_change = str_replace('{PASSWORD_CHANGE_SHOW}', '', $html_string_password_change);
|
||||
}
|
||||
$this->login_template['strings']['PASSWORD_CHANGE_DIV'] = $html_string_password_change;
|
||||
}
|
||||
|
||||
// put in the logout redirect string
|
||||
if ($this->logout && $LOGOUT_TARGET) {
|
||||
$html_string = str_replace('{LOGOUT_TARGET}', '<meta http-equiv="refresh" content="0; URL='.$LOGOUT_TARGET.'">', $html_string);
|
||||
} else {
|
||||
$html_string = str_replace('{LOGOUT_TARGET}', '', $html_string);
|
||||
}
|
||||
|
||||
// print error messagae
|
||||
if ($this->login_error) {
|
||||
$html_string_password_change = str_replace('{ERROR_MSG}', $this->login_error_msg[$this->login_error].'<br>', $html_string_password_change);
|
||||
$html_string = str_replace('{ERROR_MSG}', $this->login_error_msg[$this->login_error].'<br>', $html_string);
|
||||
} elseif ($this->password_change_ok && $this->password_change) {
|
||||
$html_string = str_replace('{ERROR_MSG}', $this->login_error_msg[300].'<br>', $html_string);
|
||||
} else {
|
||||
$html_string_password_change = str_replace('{ERROR_MSG}', '<br>', $html_string_password_change);
|
||||
$html_string = str_replace('{ERROR_MSG}', '<br>', $html_string);
|
||||
}
|
||||
// if pw change action, show the float again
|
||||
if ($this->change_password && !$this->password_change_ok) {
|
||||
$html_string_password_change = str_replace('{PASSWORD_CHANGE_SHOW}', '<script language="JavaScript">ShowHideDiv(\'pw_change_div\');</script>', $html_string_password_change);
|
||||
} else {
|
||||
$html_string_password_change = str_replace('{PASSWORD_CHANGE_SHOW}', '', $html_string_password_change);
|
||||
|
||||
// create the replace array context
|
||||
foreach ($this->login_template['strings'] as $string => $data) {
|
||||
$html_string = str_replace('{'.$string.'}', $data, $html_string);
|
||||
}
|
||||
$this->login_template['strings']['PASSWORD_CHANGE_DIV'] = $html_string_password_change;
|
||||
}
|
||||
|
||||
// put in the logout redirect string
|
||||
if ($this->logout && $LOGOUT_TARGET) {
|
||||
$html_string = str_replace('{LOGOUT_TARGET}', '<meta http-equiv="refresh" content="0; URL='.$LOGOUT_TARGET.'">', $html_string);
|
||||
} else {
|
||||
$html_string = str_replace('{LOGOUT_TARGET}', '', $html_string);
|
||||
}
|
||||
|
||||
// print error messagae
|
||||
if ($this->login_error) {
|
||||
$html_string = str_replace('{ERROR_MSG}', $this->login_error_msg[$this->login_error].'<br>', $html_string);
|
||||
} elseif ($this->password_change_ok && $this->password_change) {
|
||||
$html_string = str_replace('{ERROR_MSG}', $this->login_error_msg[300].'<br>', $html_string);
|
||||
} else {
|
||||
$html_string = str_replace('{ERROR_MSG}', '<br>', $html_string);
|
||||
}
|
||||
|
||||
// create the replace array context
|
||||
foreach ($this->login_template['strings'] as $string => $data) {
|
||||
$html_string = str_replace('{'.$string.'}', $data, $html_string);
|
||||
}
|
||||
|
||||
// return the created HTML here
|
||||
return $html_string;
|
||||
} // if permission is 0 then print out login
|
||||
@@ -1173,4 +1192,4 @@ EOM;
|
||||
}
|
||||
} // close class
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -359,4 +359,4 @@ class Backend extends \CoreLibs\DB\IO
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -307,8 +307,8 @@ class Basic
|
||||
'.*@bandai\.jp$' => 'keitai_willcom_bandai', # willcom paipo! (kids)
|
||||
'.*@pipopa\.ne\.jp$' => 'keitai_willcom_pipopa', # willcom paipo! (kids)
|
||||
'.*@([a-z0-9]{2,4}\.)?pdx\.ne\.jp$' => 'keitai_willcom_pdx', # actually only di,dj,dk,wm -> all others are "wrong", but none also allowed?
|
||||
'.*@ymobile([1]{1})?\.ne\.jp$' => 'keitai_willcom_ymobile', # ymobile, ymobile1 techincally not willcom, but I group them there
|
||||
'.*@y-mobile\.ne\.jp$' => 'keitai_willcom_ymobile', # y-mobile techincally not willcom, but I group them there
|
||||
'.*@ymobile([1]{1})?\.ne\.jp$' => 'keitai_willcom_ymobile', # ymobile, ymobile1 techincally not willcom, but I group them there (softbank sub)
|
||||
'.*@y-mobile\.ne\.jp$' => 'keitai_willcom_ymobile', # y-mobile techincally not willcom, but I group them there (softbank sub)
|
||||
'.*@emnet\.ne\.jp$' => 'keitai_willcom_emnet', # e-mobile, group will willcom
|
||||
'.*@emobile\.ne\.jp$' => 'keitai_willcom_emnet', # e-mobile, group will willcom
|
||||
'.*@emobile-s\.ne\.jp$' => 'keitai_willcom_emnet' # e-mobile, group will willcom
|
||||
@@ -419,6 +419,7 @@ class Basic
|
||||
{
|
||||
unset($string);
|
||||
list($major, $minor, $patchlvl) = explode(".", $this->class_info[$class_name]["class_version"]);
|
||||
$string = '';
|
||||
$string .= "<b>-Class-info-[".$class_name."]-></b> Class Name: <b>".$this->class_info[$class_name]["class_name"]."</b><br>";
|
||||
$string .= "<b>-Class-info-[".$class_name."]-></b> Class Author: <b>".$this->class_info[$class_name]["class_author"]."</b><br>";
|
||||
$string .= "<b>-Class-info-[".$class_name."]-></b> Class Version: <b>".$this->class_info[$class_name]["class_version"]."</b><br>";
|
||||
@@ -484,7 +485,8 @@ class Basic
|
||||
if ($set_microtime == -1) {
|
||||
$string .= substr($microtime, 1);
|
||||
} elseif ($set_microtime >= 1) {
|
||||
$string .= substr(round($microtime, $set_microtime), 1);
|
||||
// in round case we run this through number format to always get the same amount of digits
|
||||
$string .= substr(number_format(round($microtime, $set_microtime), $set_microtime), 1);
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
@@ -1195,6 +1197,7 @@ class Basic
|
||||
$pos = 0;
|
||||
$split = 36; // after 36 single bytes characters, if then comes MB, it is broken
|
||||
// has to 2 x 36 < 74 so the mb_encode_mimeheader 74 hardcoded split does not get triggered
|
||||
$_string = '';
|
||||
while ($pos < mb_strlen($string, $encoding)) {
|
||||
$output = mb_strimwidth($string, $pos, $split, "", $encoding);
|
||||
$pos += mb_strlen($output, $encoding);
|
||||
@@ -1238,7 +1241,7 @@ class Basic
|
||||
// DESC : calculates the bytes based on a string with nnG, nnM, etc
|
||||
public static function stringByteFormat($number)
|
||||
{
|
||||
$number = trim($number);
|
||||
$number = (int)trim($number);
|
||||
$last = strtolower($number[strlen($number) - 1]);
|
||||
switch ($last) {
|
||||
case 't':
|
||||
@@ -1785,6 +1788,7 @@ class Basic
|
||||
}
|
||||
// max should be 63 for this case
|
||||
$max_rand = count($chars) - 1;
|
||||
$salt_string = '';
|
||||
// create the salt part
|
||||
for ($i = 1; $i <= $nSize; $i ++) {
|
||||
$salt_string .= $chars[mt_rand(0, $max_rand)];
|
||||
@@ -2259,7 +2263,52 @@ class Basic
|
||||
// DESC : full wrapper for html entities
|
||||
public function htmlent($string)
|
||||
{
|
||||
return htmlentities($string, ENT_COMPAT|ENT_HTML401, 'UTF-8', false);
|
||||
if (is_string($string)) {
|
||||
return htmlentities($string, ENT_COMPAT|ENT_HTML401, 'UTF-8', false);
|
||||
} else {
|
||||
return $string;
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: removeLB
|
||||
// PARAMS: string, optional replace character
|
||||
// RETURN: string with line breaks removed
|
||||
// DESC : strips out all line breaks or replaced with given string
|
||||
public function removeLB($string, $replace = ' ')
|
||||
{
|
||||
return str_replace(array("\r", "\n"), $replace, $string);
|
||||
}
|
||||
|
||||
// METHOD: fceil
|
||||
// PARAMS: number, round decimals (default 10)
|
||||
// RETURN: correct ceil number
|
||||
// DESC : some float numbers will be rounded up even if they have no decimal entries
|
||||
public function fceil($number, $precision = 10)
|
||||
{
|
||||
return ceil(round($number, $precision));
|
||||
}
|
||||
|
||||
// METHOD floorp
|
||||
// PARAMS: number, round to
|
||||
// RETURN: floor number but with tround to
|
||||
// DESC : eg 48767 with -2 -> 48700
|
||||
public function floorp($number, $precision = -2)
|
||||
{
|
||||
$mult = pow(10, $precision); // Can be cached in lookup table
|
||||
return floor($number * $mult) / $mult;
|
||||
}
|
||||
|
||||
// METHOD: initNumeric
|
||||
// PARAMS: any value
|
||||
// RETURN: if not numeric, sets to 0, else returns value already set
|
||||
// DESC : inits input to 0, if value is not numeric
|
||||
public function initNumeric($number)
|
||||
{
|
||||
if (!is_numeric($number)) {
|
||||
return 0;
|
||||
} else {
|
||||
return $number;
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: setFormToken
|
||||
@@ -2444,4 +2493,4 @@ class Basic
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -133,6 +133,7 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
public function dbDumpArray($write = 0)
|
||||
{
|
||||
reset($this->table_array);
|
||||
$string = '';
|
||||
foreach ($this->table_array as $column => $data_array) {
|
||||
$string .= "<b>".$column."</b> -> ".$data_array["value"]."<br>";
|
||||
}
|
||||
@@ -200,20 +201,21 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
$q .= $this->pk_name." = ".$this->table_array[$this->pk_name]["value"]." ";
|
||||
// delete files and build FK query
|
||||
reset($this->table_array);
|
||||
$q_where = '';
|
||||
foreach ($this->table_array as $column => $data_array) {
|
||||
// suchen nach bildern und lschen ...
|
||||
if ($this->table_array[$column]["file"] && file_exists($this->table_array[$column]["url"].$this->table_array[$column]["value"])) {
|
||||
if (file_exists($this->table_array[$column]["path"].$this->table_array[$column]["value"])) {
|
||||
unlink($this->table_array[$column]["path"].$this->table_array[$column]["value"]);
|
||||
}
|
||||
$dateiname = str_replace("_tn", "", $this->table_array[$column]["value"]);
|
||||
if (file_exists($this->table_array[$column]["path"].$dateiname)) {
|
||||
unlink($this->table_array[$column]["path"].$dateiname);
|
||||
$file_name = str_replace("_tn", "", $this->table_array[$column]["value"]);
|
||||
if (file_exists($this->table_array[$column]["path"].$file_name)) {
|
||||
unlink($this->table_array[$column]["path"].$file_name);
|
||||
}
|
||||
}
|
||||
|
||||
// if we have a foreign key
|
||||
if ($this->table_array[$column]["fk"]) {
|
||||
// zusammenstellen der FKs
|
||||
// create FK constraint checks
|
||||
if ($q_where) {
|
||||
$q_where .= " AND ";
|
||||
}
|
||||
@@ -251,6 +253,8 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
return $this->table_array;
|
||||
}
|
||||
reset($this->table_array);
|
||||
$q_select = '';
|
||||
$q_where = '';
|
||||
// create select part & addition FK part
|
||||
foreach ($this->table_array as $column => $data_array) {
|
||||
if ($q_select) {
|
||||
@@ -326,6 +330,9 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
}
|
||||
|
||||
reset($this->table_array);
|
||||
$q_data = '';
|
||||
$q_vars = '';
|
||||
$q_where = '';
|
||||
foreach ($this->table_array as $column => $data_array) {
|
||||
/********************************* START FILE *************************************/
|
||||
// file upload
|
||||
@@ -338,9 +345,9 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
if (file_exists($this->table_array[$column]["path"].$this->table_array[$column]["value"])) {
|
||||
unlink($this->table_array[$column]["path"].$this->table_array[$column]["value"]);
|
||||
}
|
||||
$dateiname = str_replace("_tn", "", $this->table_array[$column]["value"]);
|
||||
if (file_exists($this->table_array[$column]["path"].$dateiname)) {
|
||||
unlink($this->table_array[$column]["path"].$dateiname);
|
||||
$file_name = str_replace("_tn", "", $this->table_array[$column]["value"]);
|
||||
if (file_exists($this->table_array[$column]["path"].$file_name)) {
|
||||
unlink($this->table_array[$column]["path"].$file_name);
|
||||
}
|
||||
$this->table_array[$column]["value"] = "";
|
||||
} else {
|
||||
@@ -355,20 +362,19 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
$ext = end($filename_parts);
|
||||
array_splice($filename_parts, -1, 1);
|
||||
$name = str_replace(" ", "_", implode(".", $filename_parts));
|
||||
//echo "PK: $pk_ids_file<br>";
|
||||
$dateiname = $name.$pk_ids_file.".".$ext;
|
||||
//echo "Dn: $dateiname";
|
||||
copy($this->table_array[$column]["tmp"], $this->table_array[$column]["path"].$dateiname);
|
||||
$file_name = $name.".".$ext;
|
||||
//echo "Dn: $file_name";
|
||||
copy($this->table_array[$column]["tmp"], $this->table_array[$column]["path"].$file_name);
|
||||
// automatisch thumbnail generieren, geht nur mit convert (ImageMagic!!!), aber nur bei bild ..
|
||||
if (strtolower($ext) == "jpeg" || strtolower($ext) == "jpg" || strtolower($ext) == "gif" || strtolower($ext) == "png") {
|
||||
$dateiname_tn = $name.$pk_ids_file."_tn.".$ext;
|
||||
$eingang = $this->table_array[$column]["path"].$dateiname;
|
||||
$ausgang = $this->table_array[$column]["path"].$dateiname_tn;
|
||||
$file_name_tn = $name."_tn.".$ext;
|
||||
$eingang = $this->table_array[$column]["path"].$file_name;
|
||||
$ausgang = $this->table_array[$column]["path"].$file_name_tn;
|
||||
$com = "convert -geometry 115 $eingang $ausgang";
|
||||
exec($com);
|
||||
$this->table_array[$column]["value"] = $dateiname_tn;
|
||||
$this->table_array[$column]["value"] = $file_name_tn;
|
||||
} else {
|
||||
$this->table_array[$column]["value"] = $dateiname;
|
||||
$this->table_array[$column]["value"] = $file_name;
|
||||
}
|
||||
} elseif (file_exists($this->table_array[$column]["path"].$this->table_array[$column]["value"])) {
|
||||
// mach gar nix, wenn bild schon da ???
|
||||
@@ -409,6 +415,9 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
$_value = $this->table_array[$column]["value"];
|
||||
}
|
||||
$q_data .= $_value;
|
||||
} elseif ($this->table_array[$column]['bool']) {
|
||||
// boolean storeage (reverse check on ifset)
|
||||
$q_data .= "'".$this->dbBoolean($this->table_array[$column]["value"], true)."'";
|
||||
} elseif ($this->table_array[$column]["interval"]) {
|
||||
// for interval we check if no value, then we set null
|
||||
if (!$this->table_array[$column]["value"]) {
|
||||
@@ -543,4 +552,4 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
}
|
||||
} // end of class
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
* - closes db connection and writes error_msg to global error_msg
|
||||
* db_cursor_pos($query)
|
||||
* - returns the current position the db_return
|
||||
* $array_of_hashes db_show_table_meta_Data($table_name)
|
||||
* $array_of_hashes db_show_table_meta_data($table_name)
|
||||
* - returns an hashed array of table column data
|
||||
* function db_prepare($stm_name, $query)
|
||||
* - prepares a query with the given stm name, returns false on error
|
||||
@@ -317,11 +317,11 @@ class IO extends \CoreLibs\Basic
|
||||
$this->db_user = $db_config['db_user'] ?? '';
|
||||
$this->db_pwd = $db_config['db_pass'] ?? '';
|
||||
$this->db_host = $db_config['db_host'] ?? '';
|
||||
$this->db_port = array_key_exists('db_port', $db_config) ? $db_config['db_port'] : '5432';
|
||||
$this->db_schema = array_key_exists('db_schema', $db_config) ? $db_config['db_schema'] : ''; // do not set to 'public' if not set, because the default is already public
|
||||
$this->db_encoding = array_key_exists('db_encoding', $db_config) ? $db_config['db_encoding'] : '';
|
||||
$this->db_port = !empty($db_config['db_port']) ? $db_config['db_port'] : '5432';
|
||||
$this->db_schema = !empty($db_config['db_schema']) ? $db_config['db_schema'] : ''; // do not set to 'public' if not set, because the default is already public
|
||||
$this->db_encoding = !empty($db_config['db_encoding']) ? $db_config['db_encoding'] : '';
|
||||
$this->db_type = $db_config['db_type'] ?? '';
|
||||
$this->db_ssl = array_key_exists('db_ssl', $db_config) ? $db_config['db_ssl'] : 'allow';
|
||||
$this->db_ssl = !empty($db_config['db_ssl']) ? $db_config['db_ssl'] : 'allow';
|
||||
|
||||
// set the target encoding to the DEFAULT_ENCODING if it is one of them: EUC, Shift_JIS, UTF-8
|
||||
// @ the moment set only from outside
|
||||
@@ -511,6 +511,7 @@ class IO extends \CoreLibs\Basic
|
||||
// NOTE : used in db_dump_data only
|
||||
private function __printArray($array)
|
||||
{
|
||||
$string = '';
|
||||
foreach ($array as $key => $value) {
|
||||
$string .= $this->nbsp.'<b>'.$key.'</b> => ';
|
||||
if (is_array($value)) {
|
||||
@@ -938,7 +939,7 @@ class IO extends \CoreLibs\Basic
|
||||
// DESC : returns the current set client encoding from the connected DB
|
||||
public function dbGetEncoding()
|
||||
{
|
||||
return $this->db_return_row('SHOW client_encoding')['client_encoding'];
|
||||
return $this->dbReturnRow('SHOW client_encoding')['client_encoding'];
|
||||
}
|
||||
|
||||
// METHOD: dbInfo
|
||||
@@ -977,6 +978,7 @@ class IO extends \CoreLibs\Basic
|
||||
} else {
|
||||
$array = $this->cursor_ext;
|
||||
}
|
||||
$string = '';
|
||||
if (is_array($array)) {
|
||||
$this->nbps = '';
|
||||
$string .= $this->__printArray($array);
|
||||
@@ -1816,6 +1818,7 @@ class IO extends \CoreLibs\Basic
|
||||
// DESC : this is only needed for Postgresql. Converts postgresql arrays to PHP
|
||||
public function dbArrayParse($text)
|
||||
{
|
||||
$output = array ();
|
||||
return $this->db_functions->__dbArrayParse($text, $output);
|
||||
}
|
||||
|
||||
@@ -2117,3 +2120,5 @@ class IO extends \CoreLibs\Basic
|
||||
return $this->dbSqlEscape($value, $kbn);
|
||||
}
|
||||
} // end if db class
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -148,7 +148,7 @@ class PgSQL
|
||||
{
|
||||
$result = pg_execute($this->dbh, $name, $data);
|
||||
if (!$result) {
|
||||
$this->last_error_query = $query;
|
||||
$this->last_error_query = $name;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
@@ -428,4 +428,4 @@ class PgSQL
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -45,4 +45,4 @@ class CachedFileReader extends CoreLibs\Language\Core\StringReader
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -88,4 +88,4 @@ class FileReader
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -146,8 +146,8 @@ class GetTextReader
|
||||
private function load_tables()
|
||||
{
|
||||
if (is_array($this->cache_translations) &&
|
||||
is_array($this->table_originals) &&
|
||||
is_array($this->table_translations)) {
|
||||
is_array($this->table_originals) &&
|
||||
is_array($this->table_translations)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -457,4 +457,4 @@ class GetTextReader
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -51,4 +51,4 @@ class StreamReader
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -64,4 +64,4 @@ class StringReader
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -57,7 +57,6 @@ class L10n extends \CoreLibs\Basic
|
||||
} else {
|
||||
$this->input = false;
|
||||
}
|
||||
|
||||
$this->l10n = new GetTextReader($this->input);
|
||||
}
|
||||
|
||||
@@ -114,3 +113,5 @@ class L10n extends \CoreLibs\Basic
|
||||
return $this->mofile;
|
||||
}
|
||||
}
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -323,7 +323,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
$this->table_array = array ();
|
||||
}
|
||||
reset($this->table_array);
|
||||
$string .= "<b>TABLE ARRAY DUMP:</b> ".$this->table_name."<br>";
|
||||
$string = "<b>TABLE ARRAY DUMP:</b> ".$this->table_name."<br>";
|
||||
foreach ($this->table_array as $key => $value) {
|
||||
$string .= "<b>$key</b>: ".$value["value"]."<br>";
|
||||
}
|
||||
@@ -557,7 +557,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
if ($res[$this->int_pk_name] == $this->table_array[$this->int_pk_name]["value"]) {
|
||||
$pk_selected = $res[$this->int_pk_name];
|
||||
}
|
||||
unset($t_string);
|
||||
$t_string = '';
|
||||
for ($i = 0, $i_max = count($this->field_array); $i < $i_max; $i ++) {
|
||||
if ($t_string) {
|
||||
$t_string .= ", ";
|
||||
@@ -879,8 +879,8 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
break;
|
||||
case "alphanumericspace":
|
||||
// $this->debug('edit', 'IN Alphanumericspace');
|
||||
if (!preg_match("/^[0-9A-Za-z\ ]+$/", $this->table_array[$key]["value"])) {
|
||||
$this->msg .= sprintf($this->l->__("Please enter a valid alphanumeric (Numbers and Letters, spaces allowed) value for the <b>%s</b> Field!<br>"), $this->table_array[$key]["output_name"]);
|
||||
if (!preg_match("/^[0-9A-Za-z_\-\ ]+$/", $this->table_array[$key]["value"])) {
|
||||
$this->msg .= sprintf($this->l->__("Please enter a valid alphanumeric (Numbers and Letters, -, _ and spaces allowed) value for the <b>%s</b> Field!<br>"), $this->table_array[$key]["output_name"]);
|
||||
}
|
||||
break;
|
||||
case "alphanumeric":
|
||||
@@ -1013,7 +1013,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
}
|
||||
// do optional error checks like for normal fields
|
||||
// currently active: unique/alphanumeric
|
||||
if ($data_rray['error_check']) {
|
||||
if ($data_array['error_check']) {
|
||||
foreach (explode('|', $value["error_check"]) as $error_check) {
|
||||
switch ($error_check) {
|
||||
// check unique, check if field in table is not yet exist
|
||||
@@ -1314,6 +1314,9 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
// go through all submitted data
|
||||
// for ($i = 0; $i < count($_POST[$el_name]); $i ++)
|
||||
for ($i = 0; $i < $max; $i ++) {
|
||||
$q_data[$i] = '';
|
||||
$q_names[$i] = '';
|
||||
$q_values[$i] = '';
|
||||
// if we have enable name & delete set, then only insert/update those which are flagged as active
|
||||
// check if mandatory field is set, if not set "do not write flag"
|
||||
if ($data_array["mandatory"] && !$_POST[$prfx.$el_name][$i]) {
|
||||
@@ -1718,4 +1721,4 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
}
|
||||
} // end of class
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -527,7 +527,7 @@ class ProgressBar
|
||||
case 'percent':
|
||||
// only one inner percent
|
||||
// print "STYLE[$name]: ".$style_lbl."<br>";
|
||||
if (!$html_percent) {
|
||||
if (!isset($html_percent)) {
|
||||
$html_percent = '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'width:'.$data['width'].'px;line-height:1;text-shadow: 0 0 .2em white, 0 0 .5em white;">'.$this->__calculatePercent($this->step).'%</div>'."\n";
|
||||
}
|
||||
break;
|
||||
@@ -669,4 +669,4 @@ class ProgressBar
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -29,4 +29,4 @@ class SmartyExtend extends SmartyBC
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -28,4 +28,4 @@ class qqUploadedFileForm
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -43,4 +43,4 @@ class qqUploadedFileXhr
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -109,4 +109,4 @@ class qqFileUploader
|
||||
}
|
||||
}
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
@@ -108,3 +108,5 @@ function MyErrorHandler($type, $message, $file, $line, $context)
|
||||
|
||||
// init the error handler
|
||||
set_error_handler("MyErrorHandler");
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -54,4 +54,4 @@ if (class_exists('Autoload', false) === false) {
|
||||
spl_autoload_register('Autoloader\Autoload::load', true, true);
|
||||
} // end check for already defined
|
||||
|
||||
# __END__
|
||||
// __END__
|
||||
|
||||
1
www/log/.gitignore
vendored
1
www/log/.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
*log
|
||||
*LOG
|
||||
!.gitignore
|
||||
|
||||
Reference in New Issue
Block a user