Compare commits
50 Commits
484444b97a
...
v3.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
736415e939 | ||
|
|
2e8712d935 | ||
|
|
c6a15506c5 | ||
|
|
b2f5d439d5 | ||
|
|
071395bfe5 | ||
|
|
03ff1862c1 | ||
|
|
71ab3e27bd | ||
|
|
a190148125 | ||
|
|
fa5350baa2 | ||
|
|
4d70f8a017 | ||
|
|
d5476b4269 | ||
|
|
bddc196e25 | ||
|
|
e3d1679f86 | ||
|
|
34f33772d0 | ||
|
|
bfe3fdcff4 | ||
|
|
1feb7bf574 | ||
|
|
272a5ad202 | ||
|
|
8a86145307 | ||
|
|
1afc0eb982 | ||
|
|
a7e7539911 | ||
|
|
6e3f017960 | ||
|
|
80715e5ef1 | ||
|
|
0408483aa8 | ||
|
|
02d1d03c15 | ||
| 6db87c64b0 | |||
|
|
765297d2a2 | ||
|
|
382cc0524a | ||
|
|
aa57c6218f | ||
|
|
b3f9fd27e6 | ||
|
|
4e6463a849 | ||
|
|
5ad0419613 | ||
|
|
e23389a7f8 | ||
|
|
c21e194eaf | ||
|
|
41b1f14594 | ||
|
|
62eb2d61b0 | ||
|
|
7abdc96499 | ||
|
|
5a6c7ec187 | ||
|
|
0f483a2d20 | ||
|
|
3400902241 | ||
|
|
f51b74d8b5 | ||
|
|
bf5486a59e | ||
|
|
8a6a83ef06 | ||
|
|
2051d17901 | ||
|
|
477aae6232 | ||
|
|
cb0ed2b6c0 | ||
|
|
0b1c0da131 | ||
|
|
8151c05d91 | ||
|
|
5c3b45ef08 | ||
|
|
9086196f7d | ||
|
|
5474ae2dda |
@@ -1,5 +1,7 @@
|
||||
# functions
|
||||
function/update_function.sql
|
||||
function/random_string.sql
|
||||
function/edit_set_access_uid.sql
|
||||
# generic tables
|
||||
table/edit_temp_files.sql
|
||||
table/edit_generic.sql
|
||||
@@ -18,9 +20,11 @@ table/edit_user.sql
|
||||
table/edit_log.sql
|
||||
table/edit_access.sql
|
||||
table/edit_access_user.sql
|
||||
table/edit_access_data.sql
|
||||
# all triggers (after all tables have been created)
|
||||
trigger/trg_edit_access_right.sql
|
||||
trigger/trg_edit_access.sql
|
||||
trigger/trg_edit_access_data.sql
|
||||
trigger/trg_edit_access_user.sql
|
||||
trigger/trg_edit_generic.sql
|
||||
trigger/trg_edit_group.sql
|
||||
@@ -33,3 +37,6 @@ trigger/trg_edit_scheme.sql
|
||||
trigger/trg_edit_user.sql
|
||||
trigger/trg_edit_visible_group.sql
|
||||
trigger/trg_edit_menu_group.sql
|
||||
trigger/trg_set_edit_access_uid.sql
|
||||
# insert data
|
||||
data/edit_tables.sql
|
||||
|
||||
147
4dev/database/data/edit_tables.sql
Executable file
147
4dev/database/data/edit_tables.sql
Executable file
@@ -0,0 +1,147 @@
|
||||
-- edit tables insert data in order
|
||||
|
||||
-- edit visible group
|
||||
DELETE FROM edit_visible_group;
|
||||
INSERT INTO edit_visible_group (name, flag) VALUES ('Main Menu', 'main');
|
||||
INSERT INTO edit_visible_group (name, flag) VALUES ('Data popup Menu', 'datapopup');
|
||||
|
||||
-- edit menu group
|
||||
DELETE FROM edit_menu_group;
|
||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Menu', 'admin', 1);
|
||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Data Popup Menu', 'AdminDataPopup', 2);
|
||||
|
||||
-- edit page
|
||||
DELETE FROM edit_page;
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_pages.php', 'Edit Pages', 1, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_users.php', 'Edit Users', 2, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_languages.php', 'Edit Languages', 3, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_schemes.php', 'Edit Schemes', 4, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_groups.php', 'Edit Groups', 5, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_visible_group.php', 'Edit Visible Groups', 6, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_menu_group.php', 'Edit Menu Groups', 7, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_access.php', 'Edit Access', 8, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_order.php', 'Edit Order', 9, 1, 0);
|
||||
|
||||
-- edit visible group
|
||||
DELETE FROM edit_page_visible_group;
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Pages'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Users'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Languages'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Schemes'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Groups'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Visible Groups'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Menu Groups'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Access'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
-- INSERT INTO edit_page_visible_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Order'), (SELECT edit_visible_group_id FROM edit_visible_group WHERE flag = 'main'));
|
||||
|
||||
-- edit page menu group
|
||||
DELETE FROM edit_page_menu_group;
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Pages'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Users'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Languages'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Schemes'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Groups'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Visible Groups'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Menu Groups'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Access'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
-- INSERT INTO edit_page_menu_group VALUES ((SELECT edit_page_id FROM edit_page WHERE name = 'Edit Order'), (SELECT edit_menu_group_id FROM edit_menu_group WHERE flag = 'admin'));
|
||||
|
||||
|
||||
-- edit access right
|
||||
DELETE FROM edit_access_right;
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Default', -1, 'default');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('No Access', 0, 'none');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Read', 20, 'read');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Translator', 30, 'mod_trans');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Modify', 40, 'mod');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Create/Write', 60, 'write');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Delete', 80, 'del');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Site Admin', 90, 'siteadmin');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Admin', 100, 'admin');
|
||||
|
||||
-- edit scheme
|
||||
DELETE FROM edit_scheme;
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', 'E0E2FF', 1);
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', 'CC7E7E', 1);
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', 'B0C4B3', 1);
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('User', '1E789E', 1);
|
||||
|
||||
-- edit language
|
||||
DELETE FROM edit_language;
|
||||
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1);
|
||||
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('ja', 'Japanese', 'UTF-8', 2, 1, 0);
|
||||
|
||||
-- edit group
|
||||
DELETE FROM edit_group;
|
||||
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('Admin', 1, (SELECT edit_scheme_id FROM edit_scheme WHERE name = 'Admin'), (SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin'));
|
||||
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('User', 1, (SELECT edit_scheme_id FROM edit_scheme WHERE name = 'User'), (SELECT edit_access_right_id FROM edit_access_right WHERE type = 'write'));
|
||||
|
||||
-- edit page access
|
||||
DELETE FROM edit_page_access;
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Pages'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Users'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Languages'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Schemes'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Groups'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Visible Groups'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Menu Groups'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Access'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_page_id FROM edit_page WHERE name = 'Edit Order'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
|
||||
-- edit user
|
||||
-- inserts admin user so basic users can be created
|
||||
DELETE FROM edit_user;
|
||||
INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, protected, admin, edit_language_id, edit_group_id, edit_scheme_id, edit_access_right_id) VALUES ('admin', 'admin', 1, 1, 1, '', 1, 1,
|
||||
(SELECT edit_language_id FROM edit_language WHERE short_name = 'en'),
|
||||
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'Admin'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
|
||||
-- edit access
|
||||
DELETE FROM edit_access;
|
||||
INSERT INTO edit_access (name, enabled, protected) VALUES ('Admin Access', 't', 1);
|
||||
|
||||
-- edit access user
|
||||
DELETE FROM edit_access_user;
|
||||
INSERT INTO edit_access_user (edit_default, enabled, edit_access_id, edit_user_id, edit_access_right_id) VALUES (1, 1,
|
||||
(SELECT edit_access_id FROM edit_access WHERE uid = 'AdminAccess'),
|
||||
(SELECT edit_user_id FROM edit_user WHERE username = 'admin'),
|
||||
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||
);
|
||||
59
4dev/database/function/edit_log_partition_insert.sql
Normal file
59
4dev/database/function/edit_log_partition_insert.sql
Normal file
@@ -0,0 +1,59 @@
|
||||
CREATE OR REPLACE FUNCTION edit_log_insert_trigger ()
|
||||
RETURNS TRIGGER AS
|
||||
$$
|
||||
DECLARE
|
||||
start_date DATE := '2010-01-01';
|
||||
end_date DATE;
|
||||
timeformat TEXT := 'YYYY';
|
||||
selector TEXT := 'year';
|
||||
_interval INTERVAL;
|
||||
table_name TEXT;
|
||||
BEGIN
|
||||
-- get year and month from edit_log date so we can build the target edit_log table
|
||||
|
||||
-- move interval
|
||||
_interval := '1 ' || selector;
|
||||
-- current table name
|
||||
table_name := 'edit_log_' || to_char(NEW.event_date, timeformat);
|
||||
|
||||
-- we are in valid start time area
|
||||
IF (NEW.event_date >= start_date) THEN
|
||||
BEGIN
|
||||
EXECUTE 'INSERT INTO ' || quote_ident(table_name) || ' SELECT ($1).*' USING NEW;
|
||||
-- if insert failed because of missing table, create new below
|
||||
EXCEPTION
|
||||
WHEN undefined_table THEN
|
||||
-- another block, so in case the creation fails here too
|
||||
BEGIN
|
||||
-- create new talbe here + all indexes
|
||||
start_date := date_trunc(selector, NEW.event_date);
|
||||
end_date := date_trunc(selector, NEW.event_date + _interval);
|
||||
-- creat table
|
||||
EXECUTE 'CREATE TABLE IF NOT EXISTS ' || quote_ident(table_name) || ' ( CHECK ( event_date >= ' || quote_literal(start_date) || ' AND event_date < ' || quote_literal(end_date) || ' ) ) INHERITS (edit_log)';
|
||||
-- create all indexes and triggers
|
||||
EXECUTE 'ALTER TABLE ' || quote_ident(table_name) || ' ADD PRIMARY KEY (edit_log_id)';
|
||||
-- FK constraints
|
||||
EXECUTE 'ALTER TABLE ' || quote_ident(table_name) || ' ADD CONSTRAINT fk_' || quote_ident(table_name) || '_euid_fkey FOREIGN KEY (euid) REFERENCES edit_user (edit_user_id) MATCH FULL ON UPDATE CASCADE ON DELETE CASCADE';
|
||||
-- generic trigger
|
||||
EXECUTE 'CREATE TRIGGER trg_' || quote_ident(table_name) || ' BEFORE INSERT OR UPDATE ON ' || quote_ident(table_name) || ' FOR EACH ROW EXECUTE PROCEDURE set_edit_generic()';
|
||||
|
||||
-- insert try again
|
||||
EXECUTE 'INSERT INTO ' || quote_ident(table_name) || ' SELECT ($1).*' USING NEW;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
-- if this faled, throw it into the overflow table (so we don't loose anything)
|
||||
INSERT INTO edit_log_overflow VALUES (NEW.*);
|
||||
END;
|
||||
-- other errors, insert into overlow
|
||||
WHEN OTHERS THEN
|
||||
-- if this faled, throw it into the overflow table (so we don't loose anything)
|
||||
INSERT INTO edit_log_overflow VALUES (NEW.*);
|
||||
END;
|
||||
ELSE
|
||||
-- if outside valid date, insert into overflow
|
||||
INSERT INTO edit_log_overflow VALUES (NEW.*);
|
||||
END IF;
|
||||
RETURN NULL;
|
||||
END
|
||||
$$
|
||||
LANGUAGE 'plpgsql'
|
||||
@@ -1,6 +1,6 @@
|
||||
-- add uid add for edit_access table
|
||||
|
||||
CREATE OR REPLACE FUNCTION set_edit_access_uid() RETURNS TRIGGER AS
|
||||
CREATE OR REPLACE FUNCTION set_edit_access_uid() RETURNS TRIGGER AS
|
||||
$$
|
||||
DECLARE
|
||||
myrec RECORD;
|
||||
|
||||
18
4dev/database/function/random_string.sql
Executable file
18
4dev/database/function/random_string.sql
Executable file
@@ -0,0 +1,18 @@
|
||||
-- create random string with length X
|
||||
|
||||
CREATE FUNCTION random_string(randomLength int)
|
||||
RETURNS text AS $$
|
||||
SELECT array_to_string(
|
||||
ARRAY(
|
||||
SELECT substring(
|
||||
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
|
||||
trunc(random() * 62)::int + 1,
|
||||
1
|
||||
)
|
||||
FROM generate_series(1, randomLength) AS gs(x)
|
||||
),
|
||||
''
|
||||
)
|
||||
$$ LANGUAGE SQL
|
||||
RETURNS NULL ON NULL INPUT
|
||||
VOLATILE; -- LEAKPROOF;
|
||||
15
4dev/database/function/set_edit_generic.sql
Normal file
15
4dev/database/function/set_edit_generic.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- adds the created or updated date tags
|
||||
|
||||
CREATE OR REPLACE FUNCTION set_edit_generic() RETURNS TRIGGER AS '
|
||||
DECLARE
|
||||
random_length INT = 12; -- that should be long enough
|
||||
BEGIN
|
||||
IF TG_OP = ''INSERT'' THEN
|
||||
NEW.date_created := ''now'';
|
||||
NEW.cuid := random_string(random_length);
|
||||
ELSIF TG_OP = ''UPDATE'' THEN
|
||||
NEW.date_updated := ''now'';
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
' LANGUAGE 'plpgsql';
|
||||
12
4dev/database/function/set_uid.sql
Executable file
12
4dev/database/function/set_uid.sql
Executable file
@@ -0,0 +1,12 @@
|
||||
-- adds the created or updated date tags
|
||||
|
||||
CREATE OR REPLACE FUNCTION set_uid() RETURNS TRIGGER AS '
|
||||
DECLARE
|
||||
random_length INT = 12; -- that should be long enough
|
||||
BEGIN
|
||||
IF TG_OP = ''INSERT'' THEN
|
||||
NEW.uid := random_string(random_length);
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
' LANGUAGE 'plpgsql';
|
||||
@@ -8,10 +8,10 @@
|
||||
-- DROP TABLE edit_access;
|
||||
CREATE TABLE edit_access (
|
||||
edit_access_id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) UNIQUE,
|
||||
name VARCHAR UNIQUE,
|
||||
description VARCHAR,
|
||||
COLOR VARCHAR
|
||||
color VARCHAR,
|
||||
uid VARCHAR,
|
||||
enabled BOOLEAN DEFAULT 'true',
|
||||
protected INT
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
DELETE FROM edit_access;
|
||||
INSERT INTO edit_access (name) VALUES ('Admin Access');
|
||||
|
||||
@@ -11,6 +11,6 @@ CREATE TABLE edit_access_data (
|
||||
edit_access_id INT NOT NULL,
|
||||
name VARCHAR,
|
||||
value VARCHAR,
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (edit_access_id) REFERENCES edit_access (edit_access_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (edit_access_id) REFERENCES edit_access (edit_access_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
@@ -14,14 +14,3 @@ CREATE TABLE edit_access_right (
|
||||
type VARCHAR,
|
||||
UNIQUE (level,type)
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
DELETE FROM edit_access_right;
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Default', -1, 'default');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('No Access', 0, 'none');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Read', 20, 'read');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Translator', 30, 'mod_trans');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Modify', 40, 'mod');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Create/Write', 60, 'write');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Delete', 80, 'del');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Site Admin', 90, 'siteadmin');
|
||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Admin', 100, 'admin');
|
||||
|
||||
@@ -17,6 +17,3 @@ CREATE TABLE edit_access_user (
|
||||
FOREIGN KEY (edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
DELETE FROM edit_access_user;
|
||||
INSERT INTO edit_access_user (edit_default, edit_access_id, edit_user_id, edit_access_right_id) VALUES (1, 1, 1, 8);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
-- DROP TABLE edit_generic;
|
||||
CREATE TABLE edit_generic (
|
||||
eg_status INT,
|
||||
cuid VARCHAR,
|
||||
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT clock_timestamp(),
|
||||
date_updated TIMESTAMP WITHOUT TIME ZONE
|
||||
);
|
||||
|
||||
@@ -8,12 +8,10 @@
|
||||
-- DROP TABLE edit_group;
|
||||
CREATE TABLE edit_group (
|
||||
edit_group_id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(50),
|
||||
name VARCHAR,
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
edit_scheme_id INT,
|
||||
edit_access_right_id INT NOT NULL,
|
||||
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('Admin', 1, 2, 8);
|
||||
|
||||
@@ -9,12 +9,10 @@
|
||||
-- DROP TABLE edit_language;
|
||||
CREATE TABLE edit_language (
|
||||
edit_language_id SERIAL PRIMARY KEY,
|
||||
short_name VARCHAR(2),
|
||||
long_name VARCHAR(70),
|
||||
iso_name VARCHAR(12),
|
||||
short_name VARCHAR,
|
||||
long_name VARCHAR,
|
||||
iso_name VARCHAR,
|
||||
order_number INT,
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
lang_default SMALLINT NOT NULL DEFAULT 0 UNIQUE
|
||||
lang_default SMALLINT NOT NULL DEFAULT 0
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1);
|
||||
|
||||
@@ -8,11 +8,9 @@
|
||||
-- DROP TABLE edit_menu_group;
|
||||
CREATE TABLE edit_menu_group (
|
||||
edit_menu_group_id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255),
|
||||
flag VARCHAR(50),
|
||||
name VARCHAR,
|
||||
flag VARCHAR,
|
||||
order_number INT NOT NULL
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
DELETE FROM edit_menu_group;
|
||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Menu', 'admin', 1);
|
||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Data Popup Menu', 'AdminDataPopup', 2);
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
-- DROP TABLE edit_page;
|
||||
CREATE TABLE edit_page (
|
||||
edit_page_id SERIAL PRIMARY KEY,
|
||||
filename VARCHAR(70),
|
||||
name VARCHAR(255) UNIQUE,
|
||||
filename VARCHAR,
|
||||
name VARCHAR UNIQUE,
|
||||
order_number INT NOT NULL,
|
||||
online SMALLINT NOT NULL DEFAULT 0,
|
||||
menu SMALLINT NOT NULL DEFAULT 0,
|
||||
@@ -17,14 +17,3 @@ CREATE TABLE edit_page (
|
||||
popup_x SMALLINT,
|
||||
popup_y SMALLINT
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
DELETE FROM edit_page;
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_pages.php', 'Edit Pages', 1, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_users.php', 'Edit Users', 2, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_languages.php', 'Edit Languages', 3, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_schemes.php', 'Edit Schemes', 4, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_groups.php', 'Edit Groups', 5, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_visible_group.php', 'Edit Visible Groups', 6, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_menu_group.php', 'Edit Menu Groups', 7, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_access.php', 'Edit Access', 8, 1, 1);
|
||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_order.php', 'Edit Order', 9, 1, 0);
|
||||
|
||||
@@ -17,12 +17,4 @@ CREATE TABLE edit_page_access (
|
||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 1, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 2, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 3, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 4, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 5, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 6, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 7, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 8, 8);
|
||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 9, 8);
|
||||
|
||||
|
||||
@@ -12,12 +12,3 @@ CREATE TABLE edit_page_menu_group (
|
||||
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_menu_group_id) REFERENCES edit_menu_group (edit_menu_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
DELETE FROM edit_page_menu_group;
|
||||
INSERT INTO edit_page_menu_group VALUES (1, 1);
|
||||
INSERT INTO edit_page_menu_group VALUES (2, 1);
|
||||
INSERT INTO edit_page_menu_group VALUES (3, 1);
|
||||
INSERT INTO edit_page_menu_group VALUES (4, 1);
|
||||
INSERT INTO edit_page_menu_group VALUES (5, 1);
|
||||
INSERT INTO edit_page_menu_group VALUES (6, 1);
|
||||
INSERT INTO edit_page_menu_group VALUES (7, 1);
|
||||
|
||||
@@ -12,12 +12,3 @@ CREATE TABLE edit_page_visible_group (
|
||||
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_visible_group_id) REFERENCES edit_visible_group (edit_visible_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
DELETE FROM edit_page_visible_group;
|
||||
INSERT INTO edit_page_visible_group VALUES (1, 1);
|
||||
INSERT INTO edit_page_visible_group VALUES (2, 1);
|
||||
INSERT INTO edit_page_visible_group VALUES (3, 1);
|
||||
INSERT INTO edit_page_visible_group VALUES (4, 1);
|
||||
INSERT INTO edit_page_visible_group VALUES (5, 1);
|
||||
INSERT INTO edit_page_visible_group VALUES (6, 1);
|
||||
INSERT INTO edit_page_visible_group VALUES (7, 1);
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
-- DROP TABLE edit_query_string;
|
||||
CREATE TABLE edit_query_string (
|
||||
edit_query_string_id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255),
|
||||
value VARCHAR(255),
|
||||
name VARCHAR,
|
||||
value VARCHAR,
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
dynamic SMALLINT NOT NULL DEFAULT 0,
|
||||
edit_page_id INT NOT NULL,
|
||||
|
||||
@@ -9,12 +9,8 @@
|
||||
CREATE TABLE edit_scheme (
|
||||
edit_scheme_id SERIAL PRIMARY KEY,
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
name VARCHAR(50),
|
||||
header_color VARCHAR(7),
|
||||
css_file VARCHAR(50),
|
||||
template VARCHAR(50)
|
||||
name VARCHAR,
|
||||
header_color VARCHAR,
|
||||
css_file VARCHAR,
|
||||
template VARCHARs
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', '#E0E2FF', 1);
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', '#CC7E7E', 1);
|
||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', '#B0C4B3', 1);
|
||||
|
||||
@@ -7,5 +7,5 @@
|
||||
|
||||
-- DROP TABLE temp_files;
|
||||
CREATE TABLE temp_files (
|
||||
filename VARCHAR(250)
|
||||
filename VARCHAR
|
||||
);
|
||||
|
||||
@@ -8,8 +8,13 @@
|
||||
-- DROP TABLE edit_user;
|
||||
CREATE TABLE edit_user (
|
||||
edit_user_id SERIAL PRIMARY KEY,
|
||||
connect_edit_user_id INT, -- possible reference to other user
|
||||
username VARCHAR UNIQUE,
|
||||
password VARCHAR,
|
||||
first_name VARCHAR,
|
||||
last_name VARCHAR,
|
||||
first_name_furigana VARCHAR,
|
||||
last_name_furigana VARCHAR,
|
||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||
debug SMALLINT NOT NULL DEFAULT 0,
|
||||
db_debug SMALLINT NOT NULL DEFAULT 0,
|
||||
@@ -27,12 +32,9 @@ CREATE TABLE edit_user (
|
||||
locked SMALLINT DEFAULT 0,
|
||||
password_change_date TIMESTAMP WITHOUT TIME ZONE, -- only when password is first set or changed
|
||||
password_change_interval INTERVAL, -- null if no change is needed, or d/m/y time interval
|
||||
FOREIGN KEY (connect_edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_language_id) REFERENCES edit_language (edit_language_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_group_id) REFERENCES edit_group (edit_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
-- inserts admin user so basic users can be created
|
||||
DELETE FROM edit_user;
|
||||
INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, protected, admin, edit_language_id, edit_group_id, edit_scheme_id, edit_access_right_id) VALUES ('admin', 'admin', 1, 1, 1, '', 1, 1, 1, 1, 2, 8);
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
-- DROP TABLE edit_visible_group;
|
||||
CREATE TABLE edit_visible_group (
|
||||
edit_visible_group_id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255),
|
||||
flag VARCHAR(50)
|
||||
name VARCHAR,
|
||||
flag VARCHAR
|
||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||
|
||||
DELETE FROM edit_visible_group;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_access ON edit_access;
|
||||
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_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_access_data ON edit_access_data;
|
||||
DROP TRIGGER trg_edit_access_data ON edit_access_data;
|
||||
CREATE TRIGGER trg_edit_access_data
|
||||
BEFORE INSERT OR UPDATE ON edit_access_data
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_access_right ON edit_access_right;
|
||||
DROP TRIGGER trg_edit_access_right ON edit_access_right;
|
||||
CREATE TRIGGER trg_edit_access_right
|
||||
BEFORE INSERT OR UPDATE ON edit_access_right
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_access_user ON edit_access_user;
|
||||
DROP TRIGGER trg_edit_access_user ON edit_access_user;
|
||||
CREATE TRIGGER trg_edit_access_user
|
||||
BEFORE INSERT OR UPDATE ON edit_access_user
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_group ON edit_group;
|
||||
DROP TRIGGER trg_edit_group ON edit_group;
|
||||
CREATE TRIGGER trg_edit_group
|
||||
BEFORE INSERT OR UPDATE ON edit_group
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_language ON edit_language;
|
||||
DROP TRIGGER trg_edit_language ON edit_language;
|
||||
CREATE TRIGGER trg_edit_language
|
||||
BEFORE INSERT OR UPDATE ON edit_language
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
-- DROP TRIGGER trg_edit_log ON edit_log;
|
||||
DROP TRIGGER trg_edit_log ON edit_log;
|
||||
CREATE TRIGGER trg_edit_log
|
||||
BEFORE INSERT OR UPDATE ON edit_log
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
DROP TRIGGER trg_edit_log_insert_partition ON edit_log;
|
||||
CREATE TRIGGER trg_edit_log_insert_partition
|
||||
BEFORE INSERT OR UPDATE ON edit_log
|
||||
FOR EACH ROW EXECUTE PROCEDURE edit_log_insert_trigger();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
||||
DROP TRIGGER trg_edit_menu_group ON edit_menu_group;
|
||||
CREATE TRIGGER trg_edit_menu_group
|
||||
BEFORE INSERT OR UPDATE ON edit_menu_group
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_page ON edit_page;
|
||||
DROP TRIGGER trg_edit_page ON edit_page;
|
||||
CREATE TRIGGER trg_edit_page
|
||||
BEFORE INSERT OR UPDATE ON edit_page
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_page_access ON edit_page_access;
|
||||
DROP TRIGGER trg_edit_page_access ON edit_page_access;
|
||||
CREATE TRIGGER trg_edit_page_access
|
||||
BEFORE INSERT OR UPDATE ON edit_page_access
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_query_string ON edit_query_string;
|
||||
DROP TRIGGER trg_edit_query_string ON edit_query_string;
|
||||
CREATE TRIGGER trg_edit_query_string
|
||||
BEFORE INSERT OR UPDATE ON edit_query_string
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_scheme ON edit_scheme;
|
||||
DROP TRIGGER trg_edit_scheme ON edit_scheme;
|
||||
CREATE TRIGGER trg_edit_scheme
|
||||
BEFORE INSERT OR UPDATE ON edit_scheme
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_user ON edit_user;
|
||||
DROP TRIGGER trg_edit_user ON edit_user;
|
||||
CREATE TRIGGER trg_edit_user
|
||||
BEFORE INSERT OR UPDATE ON edit_user
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
||||
DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
||||
CREATE TRIGGER trg_edit_visible_group
|
||||
BEFORE INSERT OR UPDATE ON edit_visible_group
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
||||
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Project Version\n"
|
||||
"Report-Msgid-Bugs-To: clemens.schwaighofer@e-graphics.com\n"
|
||||
"POT-Creation-Date: 2005-08-09 09:26+0900\n"
|
||||
"Report-Msgid-Bugs-To: clemens.schwaighofer@egplusww.com\n"
|
||||
"POT-Creation-Date: 2018-03-28 10:40+0900\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: E-GRAPHICS COMMUNICATIONS Japan <info.jp@e-graphics.com>\n"
|
||||
"Language-Team: E-GRAPHICS COMMUNICATIONS Japan <info.jp@egplusww.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
63
4dev/lang/admin/messages_ja_utf8.po
Normal file
63
4dev/lang/admin/messages_ja_utf8.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#********************************************************************
|
||||
# AUTHOR: Clemens Schwaighofer
|
||||
# CREATED: 2018/03/28
|
||||
# SHORT DESCRIPTION:
|
||||
# Backend Japanese Messages file for gettext
|
||||
# to craete: msgfmt -o ja.mo messages_ja.po
|
||||
# HISTORY:
|
||||
#********************************************************************/
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Project Version\n"
|
||||
"Report-Msgid-Bugs-To: clemens.schwaighofer@egplusww.com\n"
|
||||
"POT-Creation-Date: 2018-03-28 10:40+0900\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: E-GRAPHICS COMMUNICATIONS Japan <info.jp@egplusww.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "はい"
|
||||
|
||||
msgid "No"
|
||||
msgstr "いいえ"
|
||||
|
||||
# Basic date info
|
||||
msgid "Year"
|
||||
msgstr "年"
|
||||
|
||||
msgid "Month"
|
||||
msgstr "月"
|
||||
|
||||
msgid "Day"
|
||||
msgstr "日"
|
||||
|
||||
msgid "Hour"
|
||||
msgstr "時"
|
||||
|
||||
msgid "Minute"
|
||||
msgstr "分"
|
||||
|
||||
msgid "Mon"
|
||||
msgstr "月"
|
||||
|
||||
msgid "Tue"
|
||||
msgstr "火"
|
||||
|
||||
msgid "Wed"
|
||||
msgstr "水"
|
||||
|
||||
msgid "Thu"
|
||||
msgstr "木"
|
||||
|
||||
msgid "Fri"
|
||||
msgstr "金"
|
||||
|
||||
msgid "Sat"
|
||||
msgstr "土"
|
||||
|
||||
msgid "Sun"
|
||||
msgstr "日"
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# create path
|
||||
path=`pwd`"/"$0;
|
||||
path=$(pwd)"/"$0;
|
||||
|
||||
LOCAL_BASE_DIR="<local folder>";
|
||||
LOCAL_DIR=$LOCAL_BASE_DIR"";
|
||||
REMOTE_WEB="<remote folder>";
|
||||
TARGET_HOST_WEB="<user>@<host>
|
||||
TARGET_HOST_WEB="<user>@<host>";
|
||||
TMP_DIR=$LOCAL_BASE_DIR"/4dev/";
|
||||
tmpf_web=$TMP_DIR"tmp.web";
|
||||
|
||||
|
||||
72
4dev/update/20180323_namespace/comp_func.sh
Executable file
72
4dev/update/20180323_namespace/comp_func.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
OIFS=${IFS};
|
||||
base_dir="/home/clemens/html/developers/clemens/core_data/php_libraries/trunk/";
|
||||
class_file="CoreLibs/Output/Form/Generate.inc";
|
||||
tmp_file=${base_dir}"4dev/tmp/tmp.comp."$(echo "${class_file}" | tr \/. _);
|
||||
rpl_file=${base_dir}"4dev/tmp/tmp.rpl."$(echo "${class_file}" | tr \/. _);
|
||||
rm -f "${tmp_file}";
|
||||
rm -f "${rpl_file}";
|
||||
if [ ! -f ${class_file} ];
|
||||
then
|
||||
echo "Cannot find ${class_file} in current folder: $(pwd)";
|
||||
exit;
|
||||
fi;
|
||||
cat "${class_file}" | grep "WAS :" -B 1 | while read line;
|
||||
do
|
||||
# if method grep for function call
|
||||
found=$(echo "${line}" | sed -e 's/^[ \t]*//' | grep "METHOD:");
|
||||
if [ -n "${found}" ];
|
||||
then
|
||||
method=$(echo "${line}" | cut -d " " -f 3);
|
||||
echo "1 MET: ${method}";
|
||||
# is method
|
||||
if [ -n "${method}" ];
|
||||
then
|
||||
# the full new call
|
||||
new_function_call_full=$(grep "function ${method}(" "${class_file}" | grep "function" | sed -e 's/^[ \t]*//');
|
||||
# just the method name
|
||||
new_function_call=$(echo "${new_function_call_full}" | sed -e 's/public //' | sed -e 's/private //' | sed -e 's/static //' | sed -e 's/function //' | cut -d "(" -f 1);
|
||||
# check if func call is more than just alphanumeric (we don't need to redeclare those, functions are case insenstivie)
|
||||
#
|
||||
# only params (remove all = ... stuff)
|
||||
new_function_call_params=$(echo "${new_function_call_full}" | cut -d "(" -f 2- | sed -e 's/)//');
|
||||
old_function_call_params='';
|
||||
IFS=',';
|
||||
for el in ${new_function_call_params};
|
||||
do
|
||||
if [ -n "${old_function_call_params}" ];
|
||||
then
|
||||
old_function_call_params=${old_function_call_params}", ";
|
||||
fi;
|
||||
old_function_call_params=${old_function_call_params}$(echo "${el}" | cut -d "=" -f 1 | tr -d ' ');
|
||||
done;
|
||||
# cut -d "," "${new_function_call_params}" | while
|
||||
fi;
|
||||
fi;
|
||||
# if this is a WAS
|
||||
was=$(echo "${line}" | sed -e 's/^[ \t]*//' | grep "WAS :" | tr -s " ");
|
||||
if [ -n "${was}" ];
|
||||
then
|
||||
old_function_call=$(echo "${was}" | cut -d " " -f 4)
|
||||
echo "2 OLD: ${old_function_call} => ${new_function_call} [${new_function_call_full}]";
|
||||
# for return write:
|
||||
# rpl new -> old { new }
|
||||
rpl=$(echo "${new_function_call_full}" | sed -e "s/${new_function_call}/${old_function_call}/");
|
||||
new_call="${rpl}\n";
|
||||
new_call=${new_call}"{\n";
|
||||
new_call=${new_call}"\terror_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);\n";
|
||||
new_call=${new_call}"\treturn \$this->${new_function_call}(${old_function_call_params});\n";
|
||||
new_call=${new_call}"}\n";
|
||||
echo -e "${new_call}" >> "${tmp_file}";
|
||||
echo "3A RPL CALL: ${rpl}";
|
||||
echo "3B RPL CALL: return \$this->${new_function_call}(${old_function_call_params});";
|
||||
echo "4 SWT RPL : rpl '\$this->${old_function_call}' '\$this->${new_function_call}'";
|
||||
# write the replace calls for old $this->old_call to $this->new_call
|
||||
echo "rpl '\$this->${old_function_call}' '\$this->${new_function_call}' ##TARGET_FILE##" >> "${rpl_file}";
|
||||
echo "----";
|
||||
fi;
|
||||
done;
|
||||
IFS=${OIFS};
|
||||
|
||||
# __END__
|
||||
18
4dev/update/20180323_namespace/rpl_old_method_in_file.sh
Executable file
18
4dev/update/20180323_namespace/rpl_old_method_in_file.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
cat tmp.comp | while read i;
|
||||
do
|
||||
found=$(echo "${i}" | grep "function ");
|
||||
if [ -n "${found}" ]; then
|
||||
fk=$(echo "${i}" | cut -d " " -f 3 | cut -d "(" -f 1);
|
||||
fi;
|
||||
found=$(echo "${i}" | grep "\$this->");
|
||||
if [ -n "${found}" ]; then
|
||||
# no to debug
|
||||
found=$(echo "${i}" | grep "debug(");
|
||||
if [ -z "${found}" ]; then
|
||||
fk_n=$(echo "${i}" | cut -d "(" -f 1);
|
||||
echo "rpl '\$this->${fk}' '${fk_n}' CoreLibs/DB/IO.inc";
|
||||
fi;
|
||||
fi;
|
||||
done;
|
||||
@@ -14,12 +14,14 @@ There are three branches:
|
||||
|
||||
### master
|
||||
|
||||
This is currently the legacy branch set live. This will change to the namespace branch once development is finished
|
||||
The active branch, which is the namespace branch
|
||||
|
||||
### legacy
|
||||
|
||||
The old non namepsace format layout. This will only get bug fixes and no new development
|
||||
The old non namepsace format layout.
|
||||
This is fully deprecated and will no longer be maintaned.
|
||||
last tested PHP 5.6 and PHP 7.0
|
||||
|
||||
### namespace
|
||||
|
||||
The new namespace branch. Once development is finished this branch will be removed or renamed to development only branch
|
||||
The new namespace branch. This is the development area for the master branch
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
smarty-3.1.30
|
||||
@@ -1,3 +1,7 @@
|
||||
php_value xdebug.profiler_output_dir /home/developer/html/adidas/20081208_catalogue/4dev/xdebug/
|
||||
php_value xdebug.profiler_output_name timestamp
|
||||
php_value xdebug.profiler_enable 0
|
||||
# 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
|
||||
</Files>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../Smarty
|
||||
@@ -1 +0,0 @@
|
||||
../cache/
|
||||
@@ -1,4 +1,5 @@
|
||||
<?
|
||||
<?php
|
||||
|
||||
$DEBUG_ALL_OVERRIDE = 0; // set to 1 to debug on live/remote server locations
|
||||
$DEBUG_ALL = 1;
|
||||
$PRINT_ALL = 1;
|
||||
@@ -8,35 +9,39 @@ 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', true);
|
||||
// sample config
|
||||
require("config.inc");
|
||||
// require("config.inc");
|
||||
require 'config.php';
|
||||
// set session name
|
||||
DEFINE('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
// session_name(EDIT_SESSION_NAME);
|
||||
// session_start();
|
||||
// basic class test file
|
||||
foreach (array ('Login', 'Admin.Backend') as $class) {
|
||||
_spl_autoload('Class.'.$class.'.inc');
|
||||
if (!defined('SET_SESSION_NAME')) {
|
||||
DEFINE('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
}
|
||||
|
||||
$lang = 'en_utf8';
|
||||
|
||||
// define log file id
|
||||
DEFINE('LOG_FILE_ID', 'classTest');
|
||||
$login = new login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
// init with standard
|
||||
// $basic = new db_io($DB_CONFIG[MAIN_DB]);
|
||||
$basic = new AdminBackend($DB_CONFIG[MAIN_DB], $lang);
|
||||
$basic->db_info(1);
|
||||
// set language for l10n
|
||||
$lang = 'en_utf8';
|
||||
// init login & backend class
|
||||
$login = new CoreLibs\ACL\Login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
$basic = new CoreLibs\Admin\Backend($DB_CONFIG[MAIN_DB], $lang);
|
||||
$basic->dbInfo(1);
|
||||
ob_end_flush();
|
||||
|
||||
// set + check edit access id
|
||||
$edit_access_id = 3;
|
||||
print "ACL UNIT: ".print_r(array_keys($login->acl['unit']), 1)."<br>";
|
||||
print "ACCESS CHECK: ".$login->login_check_edit_access($edit_access_id)."<br>";
|
||||
if ($login->login_check_edit_access($edit_access_id)) {
|
||||
$basic->edit_access_id = $edit_access_id;
|
||||
if (array_key_exists('unit', $login->acl)) {
|
||||
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)) {
|
||||
$basic->edit_access_id = $edit_access_id;
|
||||
} else {
|
||||
$basic->edit_access_id = $login->acl['unit_id'];
|
||||
}
|
||||
} else {
|
||||
$basic->edit_access_id = $login->acl['unit_id'];
|
||||
print "Something went wrong with the login<br>";
|
||||
}
|
||||
|
||||
// $basic->debug('SESSION', $basic->print_ar($_SESSION));
|
||||
@@ -59,12 +64,12 @@ print "DEBUG OUT ALL: ".$basic->debug_output_all."<br>";
|
||||
print "ECHO OUT ALL: ".$basic->echo_output_all."<br>";
|
||||
print "PRINT OUT ALL: ".$basic->print_output_all."<br>";
|
||||
|
||||
print "CALLER BACKTRACE: ".$basic->get_caller_method()."<br>";
|
||||
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->print_ar($login->acl));
|
||||
$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; }));
|
||||
@@ -72,51 +77,57 @@ $basic->debug('ACL', "ACL: ".$basic->print_ar($login->acl));
|
||||
// DEPRICATED CALL
|
||||
// $basic->adbSetACL($login->acl);
|
||||
|
||||
while ($res = $basic->db_return("SELECT * FROM max_test")) {
|
||||
// DB client encoding
|
||||
print "DB Client encoding: ".$basic->dbGetEncoding()."<br>";
|
||||
|
||||
while ($res = $basic->dbReturn("SELECT * FROM max_test")) {
|
||||
print "TIME: ".$res['time']."<br>";
|
||||
}
|
||||
|
||||
$status = $basic->db_exec("INSERT INTO foo (test) VALUES ('FOO TEST ".time()."') RETURNING test");
|
||||
$status = $basic->dbExec("INSERT INTO foo (test) VALUES ('FOO TEST ".time()."') RETURNING test");
|
||||
print "DIRECT INSERT STATUS: $status | PRIMARY KEY: ".$basic->insert_id." | PRIMARY KEY EXT: ".print_r($basic->insert_id_ext, 1)."<br>";
|
||||
print "DIRECT INSERT PREVIOUS INSERTED: ".print_r($basic->db_return_row("SELECT foo_id, test FROM foo WHERE foo_id = ".$basic->insert_id), 1)."<br>";
|
||||
$basic->db_prepare("ins_foo", "INSERT INTO foo (test) VALUES ($1)");
|
||||
$status = $basic->db_execute("ins_foo", array('BAR TEST '.time()));
|
||||
print "DIRECT INSERT PREVIOUS INSERTED: ".print_r($basic->dbReturnRow("SELECT foo_id, test FROM foo WHERE foo_id = ".$basic->insert_id), 1)."<br>";
|
||||
$basic->dbPrepare("ins_foo", "INSERT INTO foo (test) VALUES ($1)");
|
||||
$status = $basic->dbExecute("ins_foo", array('BAR TEST '.time()));
|
||||
print "PREPARE INSERT STATUS: $status | PRIMARY KEY: ".$basic->insert_id." | PRIMARY KEY EXT: ".print_r($basic->insert_id_ext, 1)."<br>";
|
||||
print "PREPARE INSERT PREVIOUS INSERTED: ".print_r($basic->db_return_row("SELECT foo_id, test FROM foo WHERE foo_id = ".$basic->insert_id), 1)."<br>";
|
||||
print "PREPARE INSERT PREVIOUS INSERTED: ".print_r($basic->dbReturnRow("SELECT foo_id, test FROM foo WHERE foo_id = ".$basic->insert_id), 1)."<br>";
|
||||
// returning test with multiple entries
|
||||
// $status = $basic->db_exec("INSERT INTO foo (test) values ('BAR 1 ".time()."'), ('BAR 2 ".time()."'), ('BAR 3 ".time()."') RETURNING foo_id");
|
||||
$status = $basic->db_exec("INSERT INTO foo (test) values ('BAR 1 ".time()."'), ('BAR 2 ".time()."'), ('BAR 3 ".time()."') RETURNING foo_id, test");
|
||||
$status = $basic->dbExec("INSERT INTO foo (test) values ('BAR 1 ".time()."'), ('BAR 2 ".time()."'), ('BAR 3 ".time()."') RETURNING foo_id, test");
|
||||
print "DIRECT MULTIPLE INSERT STATUS: $status | PRIMARY KEYS: ".print_r($basic->insert_id, 1)." | PRIMARY KEY EXT: ".print_r($basic->insert_id_ext, 1)."<br>";
|
||||
// no returning, but not needed ;
|
||||
$status = $basic->db_exec("INSERT INTO foo (test) VALUES ('FOO; TEST ".time()."');");
|
||||
$status = $basic->dbExec("INSERT INTO foo (test) VALUES ('FOO; TEST ".time()."');");
|
||||
print "DIRECT INSERT STATUS: $status | PRIMARY KEY: ".$basic->insert_id." | PRIMARY KEY EXT: ".print_r($basic->insert_id_ext, 1)."<br>";
|
||||
// UPDATE WITH RETURNING
|
||||
$status = $basic->dbExec("UPDATE foo SET test = 'SOMETHING DIFFERENT' WHERE foo_id = 3688452 RETURNING test");
|
||||
print "UPDATE STATUS: $status | RETURNING EXT: ".print_r($basic->insert_id_ext, 1)."<br>";
|
||||
|
||||
# db write class test
|
||||
$table = 'foo';
|
||||
print "TABLE META DATA: ".$basic->print_ar($basic->db_show_table_meta_data($table))."<br>";
|
||||
print "TABLE META DATA: ".$basic->printAr($basic->dbShowTableMetaData($table))."<br>";
|
||||
$primary_key = ''; # unset
|
||||
$db_write_table = array ('test', 'string_a', 'number_a', 'some_bool');
|
||||
// $db_write_table = array ('test');
|
||||
$object_fields_not_touch = array ();
|
||||
$object_fields_not_update = array ();
|
||||
$data = array ('test' => 'BOOL TEST SOMETHING '.time(), 'string_a' => 'SOME TEXT', 'number_a' => 5);
|
||||
$primary_key = $basic->db_write_data_ext($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
$primary_key = $basic->dbWriteDataExt($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
print "Wrote to DB tabel $table and got primary key $primary_key<br>";
|
||||
$data = array ('test' => 'BOOL TEST ON '.time(), 'string_a' => '', 'number_a' => 0, 'some_bool' => 1);
|
||||
$primary_key = $basic->db_write_data_ext($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
$primary_key = $basic->dbWriteDataExt($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
print "Wrote to DB tabel $table and got primary key $primary_key<br>";
|
||||
$data = array ('test' => 'BOOL TEST OFF '.time(), 'string_a' => null, 'number_a' => null, 'some_bool' => 0);
|
||||
$primary_key = $basic->db_write_data_ext($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
$primary_key = $basic->dbWriteDataExt($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
print "Wrote to DB tabel $table and got primary key $primary_key<br>";
|
||||
$data = array ('test' => 'BOOL TEST UNSET '.time());
|
||||
$primary_key = $basic->db_write_data_ext($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
$primary_key = $basic->dbWriteDataExt($db_write_table, $primary_key, $table, $object_fields_not_touch, $object_fields_not_update, $data);
|
||||
print "Wrote to DB tabel $table and got primary key $primary_key<br>";
|
||||
|
||||
# async test queries
|
||||
/* $basic->db_exec_async("SELECT test FROM foo, (SELECT pg_sleep(10)) as sub WHERE foo_id IN (27, 50, 67, 44, 10)");
|
||||
/* $basic->dbExecAsync("SELECT test FROM foo, (SELECT pg_sleep(10)) as sub WHERE foo_id IN (27, 50, 67, 44, 10)");
|
||||
echo "WAITING FOR ASYNC: ";
|
||||
$chars = array('|', '/', '-', '\\');
|
||||
while (($ret = $basic->db_check_async()) === true)
|
||||
while (($ret = $basic->dbCheckAsync()) === true)
|
||||
{
|
||||
if ((list($_, $char) = each($chars)) === FALSE)
|
||||
{
|
||||
@@ -128,37 +139,37 @@ while (($ret = $basic->db_check_async()) === true)
|
||||
flush();
|
||||
}
|
||||
print "<br>END STATUS: ".$ret."<br>";
|
||||
// while ($res = $basic->db_fetch_array($ret))
|
||||
while ($res = $basic->db_fetch_array())
|
||||
// while ($res = $basic->dbFetchArray($ret))
|
||||
while ($res = $basic->dbFetchArray())
|
||||
{
|
||||
echo "RES: ".$res['test']."<br>";
|
||||
}
|
||||
# test async insert
|
||||
$basic->db_exec_async("INSERT INTO foo (Test) VALUES ('ASYNC TEST ".time()."')");
|
||||
$basic->dbExecAsync("INSERT INTO foo (Test) VALUES ('ASYNC TEST ".time()."')");
|
||||
echo "WAITING FOR ASYNC INSERT: ";
|
||||
while (($ret = $basic->db_check_async()) === true)
|
||||
while (($ret = $basic->dbCheckAsync()) === true)
|
||||
{
|
||||
print ".";
|
||||
sleep(1);
|
||||
flush();
|
||||
}
|
||||
print "<br>END STATUS: ".$ret." | PK: ".$basic->insert_id."<br>";
|
||||
print "ASYNC PREVIOUS INSERTED: ".print_r($basic->db_return_row("SELECT foo_id, test FROM foo WHERE foo_id = ".$basic->insert_id), 1)."<br>"; */
|
||||
print "ASYNC PREVIOUS INSERTED: ".print_r($basic->dbReturnRow("SELECT foo_id, test FROM foo WHERE foo_id = ".$basic->insert_id), 1)."<br>"; */
|
||||
|
||||
$to_db_version = '9.1.9';
|
||||
print "VERSION DB: ".$basic->db_version()."<br>";
|
||||
print "DB Version smaller $to_db_version: ".$basic->db_compare_version('<'.$to_db_version)."<br>";
|
||||
print "DB Version smaller than $to_db_version: ".$basic->db_compare_version('<='.$to_db_version)."<br>";
|
||||
print "DB Version equal $to_db_version: ".$basic->db_compare_version('='.$to_db_version)."<br>";
|
||||
print "DB Version bigger than $to_db_version: ".$basic->db_compare_version('>='.$to_db_version)."<br>";
|
||||
print "DB Version bigger $to_db_version: ".$basic->db_compare_version('>'.$to_db_version)."<br>";
|
||||
print "VERSION DB: ".$basic->dbVersion()."<br>";
|
||||
print "DB Version smaller $to_db_version: ".$basic->dbCompareVersion('<'.$to_db_version)."<br>";
|
||||
print "DB Version smaller than $to_db_version: ".$basic->dbCompareVersion('<='.$to_db_version)."<br>";
|
||||
print "DB Version equal $to_db_version: ".$basic->dbCompareVersion('='.$to_db_version)."<br>";
|
||||
print "DB Version bigger than $to_db_version: ".$basic->dbCompareVersion('>='.$to_db_version)."<br>";
|
||||
print "DB Version bigger $to_db_version: ".$basic->dbCompareVersion('>'.$to_db_version)."<br>";
|
||||
|
||||
/* $q = "SELECT FOO FRO BAR";
|
||||
// $q = "Select * from foo";
|
||||
$foo = $basic->db_exec_async($q);
|
||||
$foo = $basic->dbExecAsync($q);
|
||||
print "[ERR] Query: ".$q."<br>";
|
||||
print "[ERR] RESOURCE: $foo<br>";
|
||||
while (($ret = $basic->db_check_async()) === true)
|
||||
while (($ret = $basic->dbCheckAsync()) === true)
|
||||
{
|
||||
print "[ERR]: $ret<br>";
|
||||
// sleep(5);
|
||||
@@ -166,30 +177,42 @@ while (($ret = $basic->db_check_async()) === true)
|
||||
|
||||
// search path check
|
||||
$q = "SHOW search_path";
|
||||
$cursor = $basic->db_exec($q);
|
||||
$data = $basic->db_fetch_array($cursor)['search_path'];
|
||||
$cursor = $basic->dbExec($q);
|
||||
$data = $basic->dbFetchArray($cursor)['search_path'];
|
||||
print "RETURN DATA FOR search_path: ".$data."<br>";
|
||||
// print "RETURN DATA FOR search_path: ".$basic->print_ar($data)."<br>";
|
||||
// print "RETURN DATA FOR search_path: ".$basic->printAr($data)."<br>";
|
||||
// insert something into test.schema_test and see if we get the PK back
|
||||
$status = $basic->db_exec("INSERT INTO test.schema_test (contents, id) VALUES ('TIME: ".time()."', ".rand(1, 10).")");
|
||||
$status = $basic->dbExec("INSERT INTO test.schema_test (contents, id) VALUES ('TIME: ".time()."', ".rand(1, 10).")");
|
||||
print "OTHER SCHEMA INSERT STATUS: ".$status." | PK NAME: ".$basic->pk_name.", PRIMARY KEY: ".$basic->insert_id."<br>";
|
||||
|
||||
// time string thest
|
||||
$timestamp = 5887998.33445;
|
||||
$time_string = $basic->TimeStringFormat($timestamp);
|
||||
$time_string = $basic->timeStringFormat($timestamp);
|
||||
print "PLANE TIME STRING: ".$timestamp."<br>";
|
||||
print "TIME STRING TEST: ".$time_string."<br>";
|
||||
print "REVERSE TIME STRING: ".$basic->StringToTime($time_string);
|
||||
print "REVERSE TIME STRING: ".$basic->stringToTime($time_string)."<br>";
|
||||
if (round($timestamp, 4) == $basic->stringToTime($time_string)) {
|
||||
print "REVERSE TIME STRING MATCH<br>";
|
||||
} else {
|
||||
print "REVERSE TRIME STRING DO NOT MATCH<br>";
|
||||
}
|
||||
|
||||
// magic links test
|
||||
print $basic->magic_links('user@bubu.at').'<br>';
|
||||
print $basic->magic_links('http://test.com/foo/bar.php?foo=1').'<br>';
|
||||
print $basic->magicLinks('user@bubu.at').'<br>';
|
||||
print $basic->magicLinks('http://test.com/foo/bar.php?foo=1').'<br>';
|
||||
|
||||
// compare date
|
||||
$date_1 = '2017/1/5';
|
||||
$date_2 = '2017-01-05';
|
||||
print "COMPARE DATE: ".$basic->CompareDate($date_1, $date_2)."<br>";
|
||||
print "COMPARE DATE: ".$basic->compareDate($date_1, $date_2)."<br>";
|
||||
|
||||
|
||||
// array re
|
||||
|
||||
// print error messages
|
||||
print $basic->print_error_msg();
|
||||
print $login->printErrorMsg();
|
||||
print $basic->printErrorMsg();
|
||||
|
||||
print "</body></html>";
|
||||
|
||||
# __END__
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../configs/config.inc
|
||||
25
www/admin/config.php
Executable file
25
www/admin/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 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1,209 +1,196 @@
|
||||
<?
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2001/07/11
|
||||
* SHORT DESCRIPTION:
|
||||
* sets the order from a table (edit_)
|
||||
* HISTORY:
|
||||
* 2005/07/11 (cs) adept to new edit interface
|
||||
* 2002-10-18: little include changes
|
||||
* 2001-07-11: erste Version
|
||||
**********************************************************************/
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2001/07/11
|
||||
* SHORT DESCRIPTION:
|
||||
* sets the order from a table (edit_)
|
||||
* HISTORY:
|
||||
* 2005/07/11 (cs) adept to new edit interface
|
||||
* 2002-10-18: little include changes
|
||||
* 2001-07-11: erste Version
|
||||
**********************************************************************/
|
||||
|
||||
$DEBUG_ALL = 1;
|
||||
$DB_DEBUG = 1;
|
||||
$DEBUG_ALL = 1;
|
||||
$DB_DEBUG = 1;
|
||||
|
||||
extract($_GET, EXTR_SKIP);
|
||||
extract($_POST, EXTR_SKIP);
|
||||
extract($_GET, EXTR_SKIP);
|
||||
extract($_POST, EXTR_SKIP);
|
||||
|
||||
include("config.inc");
|
||||
// overrride debug flags
|
||||
if (!DEBUG)
|
||||
{
|
||||
$DEBUG_ALL = 0;
|
||||
$PRINT_ALL = 0;
|
||||
$DB_DEBUG = 0;
|
||||
$ECHO_ALL = 0;
|
||||
// $DEBUG_TMPL = 0;
|
||||
}
|
||||
// set session name
|
||||
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
require(LIBS."Class.Login.inc");
|
||||
require(LIBS.'Class.Smarty.Extend.inc');
|
||||
require 'config.php';
|
||||
// set session name
|
||||
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
// overrride debug flags
|
||||
if (!DEBUG) {
|
||||
$DEBUG_ALL = 0;
|
||||
$PRINT_ALL = 0;
|
||||
$DB_DEBUG = 0;
|
||||
$ECHO_ALL = 0;
|
||||
}
|
||||
|
||||
// default lang
|
||||
if (!$lang)
|
||||
$lang = DEFAULT_LANG;
|
||||
// default lang
|
||||
if (!$lang) {
|
||||
$lang = DEFAULT_LANG;
|
||||
}
|
||||
|
||||
$table_width = 600;
|
||||
if (!$table_width)
|
||||
$table_width = PAGE_WIDTH;
|
||||
$table_width = 600;
|
||||
if (!$table_width) {
|
||||
$table_width = PAGE_WIDTH;
|
||||
}
|
||||
|
||||
ob_end_flush();
|
||||
$login = new login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
$db = new db_io($DB_CONFIG[MAIN_DB]);
|
||||
$db->db_exec("SET search_path TO ".LOGIN_DB_SCHEMA);
|
||||
$smarty = new SmartyML($lang);
|
||||
if (TARGET == 'live' || TARGET == 'remote')
|
||||
{
|
||||
// login
|
||||
$login->debug_output_all = DEBUG ? 1 : 0;
|
||||
$login->echo_output_all = 0;
|
||||
$login->print_output_all = DEBUG ? 1 : 0;
|
||||
// form
|
||||
$db->debug_output_all = DEBUG ? 1 : 0;
|
||||
$db->echo_output_all = 0;
|
||||
$db->print_output_all = DEBUG ? 1 : 0;
|
||||
}
|
||||
// set the template dir
|
||||
if (defined('LAYOUT'))
|
||||
{
|
||||
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
|
||||
$DATA['css'] = LAYOUT.DEFAULT_TEMPLATE.CSS;
|
||||
$DATA['js'] = LAYOUT.DEFAULT_TEMPLATE.JS;
|
||||
}
|
||||
else
|
||||
{
|
||||
$smarty->setTemplateDir(TEMPLATES.DEFAULT_TEMPLATE);
|
||||
$DATA['css'] = CSS.DEFAULT_TEMPLATE;
|
||||
$DATA['js'] = JS.DEFAULT_TEMPLATE;
|
||||
}
|
||||
|
||||
// order name is _always_ order_number for the edit interface
|
||||
|
||||
// follwing arrays do exist here:
|
||||
// $position ... has the positions of the array (0..max), cause in a <select> I can't put an number into the array field, in this array, 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 (count($position))
|
||||
{
|
||||
$original_id = $row_data_id;
|
||||
|
||||
// FIRST u have to put right sort, then read again ...
|
||||
if ($up && $position[0] > 0) // hast to be >0 or the first one is selected and then there is no move
|
||||
{
|
||||
for ($i = 0; $i < count($position); $i++)
|
||||
{
|
||||
// change position order
|
||||
// this gets temp, id before that, gets actual (moves one "down")
|
||||
// this gets the old before (moves one "up")
|
||||
// is done for every element in row
|
||||
//echo "A: ".$row_data_id[$position[$i]]." (".$row_data_order[$position[$i]].") -- ".$row_data_id[$position[$i]-1]." (".$row_data_order[$position[$i]-1].")<br>";
|
||||
$temp_id = $row_data_id[$position[$i]];
|
||||
$row_data_id[$position[$i]] = $row_data_id[$position[$i]-1];
|
||||
$row_data_id[$position[$i]-1] = $temp_id;
|
||||
//echo "A: ".$row_data_id[$position[$i]]." (".$row_data_order[$position[$i]].") -- ".$row_data_id[$position[$i]-1]." (".$row_data_order[$position[$i]-1].")<br>";
|
||||
} // for
|
||||
} // if up
|
||||
|
||||
if ($down && ($position[count($position) - 1] != (count($row_data_id) - 1))) // the last position id from position array is not to be the count-1 of row_data_id array, or it is the last element
|
||||
{
|
||||
for ($i = count($position) - 1; $i >= 0; $i --)
|
||||
{
|
||||
// same as up, just up in other way, starts from bottom (last element) and moves "up"
|
||||
// element before actuel gets temp, this element, becomes element after this,
|
||||
// element after this, gets this
|
||||
$temp_id = $row_data_id[$position[$i] + 1];
|
||||
$row_data_id[$position[$i] + 1] = $row_data_id[$position[$i]];
|
||||
$row_data_id[$position[$i]] = $temp_id;
|
||||
} // for
|
||||
} // if down
|
||||
|
||||
// write data ... (which has to be abstrackt ...)
|
||||
if (($up && $position[0] > 0) || ($down && ($position[count($position) - 1]!=(count($row_data_id) - 1))))
|
||||
{
|
||||
for ($i = 0;$i < count($row_data_id); $i ++)
|
||||
{
|
||||
// $q="UPDATE broschueren SET broschuere_order=".$row_data_order[$i]." WHERE unique_id='".$row_data_id[$i]."'";
|
||||
$q = "UPDATE ".$table_name." SET order_number = ".$row_data_order[$i]." WHERE ".$table_name."_id = ".$row_data_id[$i];
|
||||
//echo "Q: $q<br>";
|
||||
$q = $db->db_exec($q);
|
||||
} // for all article ids ...
|
||||
} // if write
|
||||
} // if there is something to move
|
||||
|
||||
// get ...
|
||||
$q = "SELECT ".$table_name."_id, name, order_number FROM ".$table_name." ";
|
||||
if ($where_string)
|
||||
$q .= "WHERE $where_string ";
|
||||
$q .= "ORDER BY order_number";
|
||||
|
||||
while ($res = $db->db_return($q))
|
||||
{
|
||||
$row_data[] = array (
|
||||
"id" => $res[$table_name."_id"],
|
||||
"name" => $res["name"],
|
||||
"order" => $res["order_number"]
|
||||
);
|
||||
} // while read data ...
|
||||
|
||||
// define all needed smarty stuff for the general HTML/page building
|
||||
ob_end_flush();
|
||||
$login = new CoreLibs\ACL\Login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
$db = new CoreLibs\DB\IO($DB_CONFIG[MAIN_DB]);
|
||||
$db->dbExec("SET search_path TO ".LOGIN_DB_SCHEMA);
|
||||
$smarty = new CoreLibs\Template\SmartyExtend($lang);
|
||||
if (TARGET == 'live' || TARGET == 'remote') {
|
||||
// login
|
||||
$login->debug_output_all = DEBUG ? 1 : 0;
|
||||
$login->echo_output_all = 0;
|
||||
$login->print_output_all = DEBUG ? 1 : 0;
|
||||
// form
|
||||
$db->debug_output_all = DEBUG ? 1 : 0;
|
||||
$db->echo_output_all = 0;
|
||||
$db->print_output_all = DEBUG ? 1 : 0;
|
||||
}
|
||||
// set the template dir
|
||||
if (defined('LAYOUT')) {
|
||||
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
|
||||
$DATA['css'] = LAYOUT.DEFAULT_TEMPLATE.CSS;
|
||||
$DATA['js'] = LAYOUT.DEFAULT_TEMPLATE.JS;
|
||||
$HEADER['CSS'] = CSS;
|
||||
$HEADER['DEFAULT_ENCODING'] = DEFAULT_ENCODING;
|
||||
$HEADER['JS'] = JS;
|
||||
$HEADER['STYLESHEET'] = $EDIT_STYLESHEET;
|
||||
$HEADER['JAVASCRIPT'] = $EDIT_JAVASCRIPT;
|
||||
// html title
|
||||
$HEADER['HTML_TITLE'] = ((!$L_TITLE) ? $smarty->l10n->__($G_TITLE) : $smarty->l10n->__($L_TITLE));
|
||||
} else {
|
||||
$smarty->setTemplateDir(TEMPLATES.DEFAULT_TEMPLATE);
|
||||
$DATA['css'] = CSS.DEFAULT_TEMPLATE;
|
||||
$DATA['js'] = JS.DEFAULT_TEMPLATE;
|
||||
}
|
||||
|
||||
$DATA['table_width'] = $table_width;
|
||||
// order name is _always_ order_number for the edit interface
|
||||
|
||||
// error msg
|
||||
if ($error)
|
||||
{
|
||||
$messages[] = array('msg' => $msg, 'class' => 'error', 'width' => $table_width);
|
||||
}
|
||||
$DATA['form_error_msg'] = $messages;
|
||||
// follwing arrays do exist here:
|
||||
// $position ... has the positions of the array (0..max), cause in a <select>
|
||||
// I can't put an number into the array field, in this array,
|
||||
// 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 (count($position)) {
|
||||
$original_id = $row_data_id;
|
||||
|
||||
// all the row data
|
||||
$options_id = array();
|
||||
$options_name = array();
|
||||
$options_selected = array();
|
||||
for ($i = 0; $i < count($row_data); $i ++)
|
||||
{
|
||||
$options_id[] = $i;
|
||||
$options_name[] = $row_data[$i]["name"];
|
||||
// list of points to order
|
||||
for ($j = 0; $j < count($position); $j++)
|
||||
{
|
||||
// if matches, put into select array
|
||||
if ($original_id[$position[$j]] == $row_data[$i]["id"])
|
||||
$options_selected[] = $i;
|
||||
// FIRST u have to put right sort, then read again ...
|
||||
// hast to be >0 or the first one is selected and then there is no move
|
||||
if ($up && $position[0] > 0) {
|
||||
for ($i = 0; $i < count($position); $i++) {
|
||||
// change position order
|
||||
// this gets temp, id before that, gets actual (moves one "down")
|
||||
// this gets the old before (moves one "up")
|
||||
// is done for every element in row
|
||||
// echo "A: ".$row_data_id[$position[$i]]." (".$row_data_order[$position[$i]].") -- ".$row_data_id[$position[$i]-1]." (".$row_data_order[$position[$i]-1].")<br>";
|
||||
$temp_id = $row_data_id[$position[$i]];
|
||||
$row_data_id[$position[$i]] = $row_data_id[$position[$i]-1];
|
||||
$row_data_id[$position[$i]-1] = $temp_id;
|
||||
// echo "A: ".$row_data_id[$position[$i]]." (".$row_data_order[$position[$i]].") -- ".$row_data_id[$position[$i]-1]." (".$row_data_order[$position[$i]-1].")<br>";
|
||||
} // for
|
||||
} // if up
|
||||
|
||||
// the last position id from position array is not to be the count-1 of row_data_id array, or it is the last element
|
||||
if ($down && ($position[count($position) - 1] != (count($row_data_id) - 1))) {
|
||||
for ($i = count($position) - 1; $i >= 0; $i --) {
|
||||
// same as up, just up in other way, starts from bottom (last element) and moves "up"
|
||||
// element before actuel gets temp, this element, becomes element after this,
|
||||
// element after this, gets this
|
||||
$temp_id = $row_data_id[$position[$i] + 1];
|
||||
$row_data_id[$position[$i] + 1] = $row_data_id[$position[$i]];
|
||||
$row_data_id[$position[$i]] = $temp_id;
|
||||
} // for
|
||||
} // if down
|
||||
|
||||
// write data ... (which has to be abstrackt ...)
|
||||
if (($up && $position[0] > 0) || ($down && ($position[count($position) - 1]!=(count($row_data_id) - 1)))) {
|
||||
for ($i = 0; $i < count($row_data_id); $i ++) {
|
||||
$q = "UPDATE ".$table_name." SET order_number = ".$row_data_order[$i]." WHERE ".$table_name."_id = ".$row_data_id[$i];
|
||||
$q = $db->dbExec($q);
|
||||
} // for all article ids ...
|
||||
} // if write
|
||||
} // if there is something to move
|
||||
|
||||
// get ...
|
||||
$q = "SELECT ".$table_name."_id, name, order_number FROM ".$table_name." ";
|
||||
if ($where_string) {
|
||||
$q .= "WHERE $where_string ";
|
||||
}
|
||||
$q .= "ORDER BY order_number";
|
||||
|
||||
while ($res = $db->dbReturn($q)) {
|
||||
$row_data[] = array (
|
||||
"id" => $res[$table_name."_id"],
|
||||
"name" => $res["name"],
|
||||
"order" => $res["order_number"]
|
||||
);
|
||||
} // while read data ...
|
||||
|
||||
// define all needed smarty stuff for the general HTML/page building
|
||||
$DATA['css'] = LAYOUT.DEFAULT_TEMPLATE.CSS;
|
||||
$DATA['js'] = LAYOUT.DEFAULT_TEMPLATE.JS;
|
||||
$HEADER['CSS'] = CSS;
|
||||
$HEADER['DEFAULT_ENCODING'] = DEFAULT_ENCODING;
|
||||
$HEADER['JS'] = JS;
|
||||
$HEADER['STYLESHEET'] = $EDIT_STYLESHEET;
|
||||
$HEADER['JAVASCRIPT'] = $EDIT_JAVASCRIPT;
|
||||
// html title
|
||||
$HEADER['HTML_TITLE'] = (!$L_TITLE) ? $smarty->l10n->__($G_TITLE) : $smarty->l10n->__($L_TITLE);
|
||||
|
||||
$DATA['table_width'] = $table_width;
|
||||
|
||||
// error msg
|
||||
if ($error) {
|
||||
$messages[] = array('msg' => $msg, 'class' => 'error', 'width' => $table_width);
|
||||
}
|
||||
$DATA['form_error_msg'] = $messages;
|
||||
|
||||
// all the row data
|
||||
$options_id = array();
|
||||
$options_name = array();
|
||||
$options_selected = array();
|
||||
for ($i = 0; $i < count($row_data); $i ++) {
|
||||
$options_id[] = $i;
|
||||
$options_name[] = $row_data[$i]["name"];
|
||||
// list of points to order
|
||||
for ($j = 0; $j < count($position); $j++) {
|
||||
// if matches, put into select array
|
||||
if ($original_id[$position[$j]] == $row_data[$i]["id"]) {
|
||||
$options_selected[] = $i;
|
||||
}
|
||||
}
|
||||
$DATA['options_id'] = $options_id;
|
||||
$DATA['options_name'] = $options_name;
|
||||
$DATA['options_selected'] = $options_selected;
|
||||
}
|
||||
$DATA['options_id'] = $options_id;
|
||||
$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();
|
||||
for ($i = 0; $i < count($row_data); $i++)
|
||||
{
|
||||
$row_data_id[] = $row_data[$i]["id"];
|
||||
$row_data_order[] = $row_data[$i]["order"];
|
||||
}
|
||||
$DATA['row_data_id'] = $row_data_id;
|
||||
$DATA['row_data_order'] = $row_data_order;
|
||||
// hidden list for the data (id, order number)
|
||||
$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"];
|
||||
}
|
||||
$DATA['row_data_id'] = $row_data_id;
|
||||
$DATA['row_data_order'] = $row_data_order;
|
||||
|
||||
// hidden names for the table & where string
|
||||
$DATA['table_name'] = $table_name;
|
||||
$DATA['where_string'] = $where_string;
|
||||
// hidden names for the table & where string
|
||||
$DATA['table_name'] = $table_name;
|
||||
$DATA['where_string'] = $where_string;
|
||||
|
||||
// debug data, if DEBUG flag is on, this data is print out
|
||||
$DEBUG_DATA['DEBUG'] = $DEBUG_TMPL;
|
||||
// debug data, if DEBUG flag is on, this data is print out
|
||||
$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))
|
||||
{
|
||||
$smarty->assign($key, $value);
|
||||
}
|
||||
$smarty->display('edit_order.tpl');
|
||||
// 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)) {
|
||||
$smarty->assign($key, $value);
|
||||
}
|
||||
$smarty->display('edit_order.tpl');
|
||||
|
||||
echo $login->printErrorMsg();
|
||||
echo $db->printErrorMsg();
|
||||
|
||||
# __END__
|
||||
|
||||
echo $login->print_error_msg();
|
||||
echo $db->print_error_msg();
|
||||
?>
|
||||
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -1 +1 @@
|
||||
edit_base.inc
|
||||
../includes/edit_base.inc
|
||||
@@ -11,7 +11,8 @@ if ($DEBUG_ALL) {
|
||||
|
||||
// sample config
|
||||
require("config.inc");
|
||||
require(LIBS."Error.Handling.inc");
|
||||
echo "FILE: ".BASE.LIB."Error.Handling.inc<br>";
|
||||
require(BASE.LIB."Error.Handling.inc");
|
||||
|
||||
if ($var) {
|
||||
echo "OUT<br>";
|
||||
|
||||
@@ -1,456 +0,0 @@
|
||||
<?
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2005/07/13
|
||||
* SHORT DESCRIPTION:
|
||||
* Create categories for CMS
|
||||
* HISTORY:
|
||||
* 2005/08/19 (cs) changed the mime type get from the _FILE to mime get fkt
|
||||
*********************************************************************/
|
||||
|
||||
// DEBUG vars here
|
||||
$DEBUG_ALL = 1;
|
||||
$DB_DEBUG = 1;
|
||||
$DEBUG_TMPL = 1;
|
||||
|
||||
//------------------------------ header
|
||||
require("header.inc");
|
||||
$MASTER_TEMPLATE_NAME = 'cms_popup.tpl';
|
||||
$TEMPLATE_NAME = 'cms_files.tpl';
|
||||
$PAGE_WIDTH = 750;
|
||||
require("set_paths.inc");
|
||||
//------------------------------ header
|
||||
|
||||
//------------------------------ processing data start
|
||||
$form_name = $_GET['form'];
|
||||
$value_name = $_GET['name'];
|
||||
$data_id = $_GET['id'];
|
||||
$show_type = $_GET['type']; // P (pic), F (flash), V (video), D (document: word), A (document: pdf), B (binary); , separated string
|
||||
|
||||
// default view is list
|
||||
if (!$view && !$data_id) {
|
||||
$view = 'list';
|
||||
} elseif (!$view && $data_id) {
|
||||
$view = 'list';
|
||||
}
|
||||
// default is online
|
||||
if (!isset($online)) {
|
||||
$online = 't';
|
||||
}
|
||||
// if not set, it is a fresh load
|
||||
if (!$show_amount) {
|
||||
$fresh_load = 1;
|
||||
}
|
||||
// the next two are for page view
|
||||
if (!$start_row) {
|
||||
$start_row = 0;
|
||||
}
|
||||
if (!$show_amount) {
|
||||
$show_amount = 12;
|
||||
}
|
||||
if (!$show_type) {
|
||||
$show_type = 'P';
|
||||
}
|
||||
|
||||
// yes no list (online)
|
||||
$yesno_list['f'] = 'No';
|
||||
$yesno_list['t'] = 'Yes';
|
||||
// order list
|
||||
$sort_order_list['date_created'] = 'ID / Insert time'; // default
|
||||
$sort_order_list['file_name'] = 'File Name';
|
||||
$sort_order_list['file_size'] = 'File Size';
|
||||
$sort_order_list['mime_type'] = 'Mime Type';
|
||||
$sort_order_list['name_en'] = 'Alt Name English';
|
||||
$sort_order_list['name_ja'] = 'Alt Name Japanese';
|
||||
$sort_order_list['date_updated'] = 'Updated';
|
||||
if (!$sort_order) {
|
||||
$sort_order = 'date_created';
|
||||
}
|
||||
$sort_direction_list['ASC'] = 'Normal';
|
||||
$sort_direction_list['DESC'] = 'Reverse';
|
||||
if (!$sort_direction) {
|
||||
$sort_direction = 'ASC';
|
||||
}
|
||||
// set if we need to write to any of the set live queues
|
||||
// a) on page save with set_live
|
||||
// b) global page with live_queue
|
||||
// set via QUEUE variable
|
||||
|
||||
// create 0 entries for: templates, menu, data_group?
|
||||
if ($cms->action == 'new' && $cms->action_yes == 'true') {
|
||||
unset($file_uid);
|
||||
unset($file_id);
|
||||
unset($file_type);
|
||||
$new_okay = 1;
|
||||
}
|
||||
// file type: P picture, M mouse over picutre, F flash, V video, B binary
|
||||
if ($cms->action == 'save') {
|
||||
if (!$file_type) {
|
||||
$file_type = 'B';
|
||||
}
|
||||
$file_ok = false;
|
||||
if (!$_FILES['file_up']['name'] && !$file_uid) {
|
||||
$cms->messages[] = array('msg' => 'No file name given', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
if (!$_FILES['file_up']['name'] && $file_uid) {
|
||||
$file_ok = true;
|
||||
}
|
||||
// echo "FILE TYPE: ".$_FILES['file_up']['type']."<br>";
|
||||
foreach (split(',', $show_type) as $_show_type) {
|
||||
// check if the uploaded filename matches to the given type
|
||||
if ($_FILES['file_up']['name'] && preg_match("/jpeg|png|gif/", $_FILES['file_up']['type']) && preg_match("/P/", $show_type)) {
|
||||
$file_ok = true;
|
||||
}
|
||||
if ($_FILES['file_up']['name'] && preg_match("/swf/", $_FILES['file_up']['type']) && preg_match("/F/", $show_type)) {
|
||||
$file_ok = true;
|
||||
}
|
||||
if ($_FILES['file_up']['name'] && preg_match("/video/", $_FILES['file_up']['type']) && preg_match("/V/", $show_type)) {
|
||||
$file_ok = true;
|
||||
}
|
||||
if ($_FILES['file_up']['name'] && preg_match("/msword|vnd.oasis.opendocument.text/", $_FILES['file_up']['type']) && preg_match("/D/", $show_type)) {
|
||||
$file_ok = true;
|
||||
}
|
||||
if ($_FILES['file_up']['name'] && preg_match("/pdf/", $_FILES['file_up']['type']) && preg_match("/A/", $show_type)) {
|
||||
$file_ok = true;
|
||||
}
|
||||
if ($_FILES['file_up']['name'] && preg_match("/B/", $show_type)) {
|
||||
$file_ok = true;
|
||||
}
|
||||
}
|
||||
// write out error messages according to show type
|
||||
if (!$file_ok) {
|
||||
if (preg_match("/P/", $show_type)) {
|
||||
$cms->messages[] = array('msg' => 'File is not a JPEG/PNG/GIF file', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
if (preg_match("/F/", $show_type)) {
|
||||
$cms->messages[] = array('msg' => 'File is not a Flash File', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
if (preg_match("/V/", $show_type)) {
|
||||
$cms->messages[] = array('msg' => 'File is not a Video', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
if (preg_match("/D/", $show_type)) {
|
||||
$cms->messages[] = array('msg' => 'File is not a DOC/ODT file', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
if (preg_match("/A/", $show_type)) {
|
||||
$cms->messages[] = array('msg' => 'File is not a PDF file', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
if (preg_match("/B/", $show_type)) {
|
||||
$cms->messages[] = array('msg' => 'No valid file was given', 'class' => 'error');
|
||||
$error = 1;
|
||||
}
|
||||
}
|
||||
// binary: all okay
|
||||
// if no error, save data
|
||||
if (!$error) {
|
||||
if ($_FILES['file_up']['name']) {
|
||||
$mime_type = $_FILES['file_up']['type'];
|
||||
$file_size = $_FILES['file_up']['size'];
|
||||
$file_name = $_FILES['file_up']['name'];
|
||||
// get picture size
|
||||
list($width, $height) = getimagesize($_FILES['file_up']['tmp_name']);
|
||||
$cms->debug('upload', "Width: $width X Height: $height");
|
||||
// set the file type and the target folder
|
||||
if (preg_match("/jpeg|png|gif/", $mime_type)) {
|
||||
$file_type = 'P';
|
||||
} elseif (preg_match("/swf/", $mime_type)) {
|
||||
$file_type = 'F';
|
||||
} elseif (preg_match("/video/", $mime_type)) {
|
||||
$file_type = 'V';
|
||||
} elseif (preg_match("/msword|vnd.oasis.opendocument.text/", $mime_type)) {
|
||||
$file_type = 'D';
|
||||
} elseif (preg_match("/pdf/", $mime_type)) {
|
||||
$file_type = 'A';
|
||||
} elseif ($mime_type) {
|
||||
$file_type = 'B';
|
||||
}
|
||||
}
|
||||
// if we have an id -> updated
|
||||
if ($file_uid) {
|
||||
$q = "UPDATE file SET";
|
||||
$q_set = " name_en = '".addslashes($name_en)."', name_ja = '".addslashes($name_ja)."', file_name = '".addslashes($file_name)."', online = '".$online."' ";
|
||||
if ($_FILES['file_up']['name']) {
|
||||
$q_set .= ", type = '".$file_type."', mime_type = '$mime_type', file_size = $file_size, size_x = $width, size_y = $height ";
|
||||
}
|
||||
$q .= $q_set."WHERE file_uid = '".$file_uid."'";
|
||||
$cms->db_exec($q);
|
||||
if (QUEUE == 'live_queue') {
|
||||
$sql_action = 'UPDATE';
|
||||
$sql_data = $q_set;
|
||||
}
|
||||
} else {
|
||||
// insert new data
|
||||
$file_uid = md5(uniqid(rand(), true));
|
||||
$q = "INSERT INTO file (name_en, name_ja, file_name, online, mime_type, file_size, size_x, size_y, file_uid, type) VALUES (";
|
||||
$q .= "'".addslashes($name_en)."', '".addslashes($name_ja)."', '".addslashes($file_name)."', '".$online."', '".$mime_type."', ";
|
||||
$q .= "$file_size, ".(($width) ? $width : 'NULL').", ".(($height) ? $height : 'NULL').", '".$file_uid."', '".$file_type."')";
|
||||
$cms->db_exec($q);
|
||||
$file_id = $cms->insert_id;
|
||||
// if queue
|
||||
if (QUEUE == 'live_queue') {
|
||||
$sql_data = $q;
|
||||
$sql_action = 'INSERT';
|
||||
}
|
||||
}
|
||||
$size_x = $width;
|
||||
$size_y = $height;
|
||||
$file = DEV_SCHEMA."_".$file_uid;
|
||||
// now upload the file
|
||||
if ($_FILES['file_up']['name']) {
|
||||
$upload_file = ROOT.MEDIA.$cms->data_path[$file_type].$file;
|
||||
// wipe out any old tmp data for this new upload
|
||||
if (is_array(glob(ROOT.TMP."thumb_".$file."*"))) {
|
||||
foreach (glob(ROOT.TMP."thumb_".$file."*") as $filename) {
|
||||
@unlink($filename);
|
||||
}
|
||||
}
|
||||
# copy file to correct path
|
||||
$error = move_uploaded_file($_FILES['file_up']['tmp_name'], $upload_file);
|
||||
|
||||
$cms->debug('file_upload', "UP: $upload_file");
|
||||
$cms->debug('file_upload', "Orig: ".$cms->print_ar($_FILES['file_up']));
|
||||
|
||||
// because I get bogus error info from move_uploaded_file ...
|
||||
$error = 0;
|
||||
if ($error) {
|
||||
$cms->debug('file_upload', "ERROR: $error | INI FSize: ".ini_get("upload_max_filesize"));
|
||||
$cms->messages[] = array('msg' => 'File upload failed', 'class' => 'error');
|
||||
$q = "DELETE FROM file WHERE file_uid = '".$file_uid."'";
|
||||
$cms->db_exec($q);
|
||||
unset($file_id);
|
||||
unset($file_uid);
|
||||
$view = 'list';
|
||||
} else {
|
||||
$cms->messages[] = array('msg' => 'File upload successful', 'class' => 'warning');
|
||||
// $view = 'list';
|
||||
}
|
||||
} // if file upload
|
||||
// create thumbs + file size
|
||||
$picture = $cms->cache_pictures.$cms->adbCreateThumbnail($file, 400, 280, $file_type, '', $cms->cache_pictures_root);
|
||||
$picture_small = $cms->cache_pictures.$cms->adbCreateThumbnail($file, 80, 60, $file_type, '', $cms->cache_pictures_root);
|
||||
$file_size = $cms->adbByteStringFormat($file_size);
|
||||
// for live queue this is here needed
|
||||
if (QUEUE == 'live_queue') {
|
||||
$q = "INSERT INTO ".GLOBAL_DB_SCHEMA.".live_queue (queue_key, key_value, key_name, type, target, data, group_key, action";
|
||||
if ($_FILES['file_up']['name']) {
|
||||
$q .= ", file";
|
||||
}
|
||||
$q .= ") VALUES ('".$cms->queue_name."', '".$file_uid."', 'file_uid', '".$sql_action."', 'file', '".$cms->db_escape_string($sql_data)."', '".$cms->queue_key."', '".$cms->action."'";
|
||||
if ($_FILES['file_up']['name']) {
|
||||
$q .= ", '".ROOT.MEDIA.$cms->data_path[$file_type].$file."#".ROOT.MEDIA.$cms->data_path[$file_type].PUBLIC_SCHEMA."_".$file_uid."'";
|
||||
}
|
||||
$q .= ")";
|
||||
$cms->db_exec($q);
|
||||
}
|
||||
} // if not error
|
||||
}
|
||||
if ($cms->action == 'delete' && $cms->action_yes == 'true') {
|
||||
$file_uid = $cms->action_id;
|
||||
$q = "SELECT type FROM file WHERE file_uid = '".$file_uid."'";
|
||||
list ($file_type) = $cms->db_return_row($q);
|
||||
// get the file type for the file path
|
||||
$q = "DELETE FROM file WHERE file_uid = '".$file_uid."'";
|
||||
$cms->db_exec($q);
|
||||
if (QUEUE == 'set_live') {
|
||||
$q = "INSERT INTO ".GLOBAL_DB_SCHEMA.".set_live (table_name, pkid, delete_flag) VALUES ('".$cms->page_name."', ".$file_uid.", 't')";
|
||||
$cms->db_exec($q);
|
||||
}
|
||||
if (QUEUE == 'live_queue') {
|
||||
$q = "INSERT INTO ".GLOBAL_DB_SCHEMA.".live_queue (queue_key, key_value, key_name, type, target, data, group_key, action, file) VALUES (";
|
||||
$q .= "'".$cms->queue_name."', '".$file_uid."', 'file_uid', 'DELETE', 'file', '', '".$cms->queue_key."', '".$cms->action."', '".ROOT.MEDIA.$cms->data_path[$file_type].PUBLIC_SCHEMA."_".$file_uid."')";
|
||||
}
|
||||
@unlink(ROOT.MEDIA.$cms->data_path[$file_type].DEV_SCHEMA."_".$file_uid);
|
||||
unset($file_uid);
|
||||
unset($file_id);
|
||||
$delete_done = 1;
|
||||
$view = 'list';
|
||||
}
|
||||
if ($cms->action == 'load') {
|
||||
$file_uid = $cms->action_id;
|
||||
// load the data
|
||||
$q = "SELECT file_id, name_en, name_ja, file_name, online, mime_type, file_size, size_x, size_y, type FROM file WHERE file_uid = '".$file_uid."'";
|
||||
list($file_id, $name_en, $name_ja, $file_name, $online, $mime_type, $file_size, $size_x, $size_y, $file_type) = $cms->db_return_row($q);
|
||||
// create thumbnail for edit view
|
||||
$file = DEV_SCHEMA."_".$file_uid;
|
||||
// thumbnails are only valid for pictures
|
||||
$picture = $cms->cache_pictures.$cms->adbCreateThumbnail($file, 400, 280, $file_type, '', $cms->cache_pictures_root);
|
||||
$picture_small = $cms->cache_pictures.$cms->adbCreateThumbnail($file, 80, 60, $file_type, '', $cms->cache_pictures_root);
|
||||
$file_size = $cms->adbByteStringFormat($file_size);
|
||||
// view to edit
|
||||
$view = 'edit';
|
||||
}
|
||||
if ($cms->action == 'add_new') {
|
||||
$view = 'edit';
|
||||
}
|
||||
if ($cms->action == 'view_files' && $cms->action_yes == 'true') {
|
||||
$view = 'list';
|
||||
}
|
||||
// set delete live
|
||||
if ($cms->action_flag == 'set_live' && $cms->action = 'set_delete') {
|
||||
$q = "SELECT file_uid, pkid, type FROM ".LOGIN_DB_SCHEMA.".set_live sl, file f WHERE sl.pkid = f.file_uid table_name = '".$cms->page_name."' AND delete_flag = 't'";
|
||||
while ($res = $cms->db_return($q)) {
|
||||
$q_del = "DELETE FROM ".PUBLIC_SCHEMA.".file WHERE file_uid = '".$res['pkid'].'"';
|
||||
$cms->db_exec($q_del);
|
||||
@unlink(ROOT.MEDIA.$cms->data_path[$res['type']].PUBLIC_SCHEMA."_".$res['file_uid']);
|
||||
}
|
||||
$q = "DELETE FROM ".LOGIN_DB_SCHEMA.".set_live WHERE table_name = '".$cms->page_name."' AND delete_flag = 't'";
|
||||
$cms->db_exec($q);
|
||||
}
|
||||
if (DEV_SCHEMA != PUBLIC_SCHEMA) {
|
||||
// read out possible deleted, to add "delete from live"
|
||||
$q = "SELECT pkid FROM ".LOGIN_DB_SCHEMA.".set_live WHERE table_name = '".$cms->page_name."' AND delete_flag = 't'";
|
||||
while ($res = $cms->db_return($q, 3)) {
|
||||
$cms->DATA['set_delete'][]['pkid'] = $res['pkid'];
|
||||
}
|
||||
}
|
||||
// get th max entries
|
||||
$q = "SELECT COUNT(file_uid) FROM file ";
|
||||
$q_search_where = "WHERE type in ('".str_replace(',', "','", $show_type)."') ";
|
||||
if ($search_what) {
|
||||
$q_search_where .= "AND LOWER(name_en) LIKE '%".addslashes(strtolower($search_what))."%' OR name_ja LIKE '%".addslashes($search_what)."%' OR LOWER(file_name) LIKE '%".addslashes(strtolower($search_what))."%' ";
|
||||
}
|
||||
$q .= $q_search_where;
|
||||
// get selection from show_type
|
||||
list ($file_count) = $cms->db_return_row($q);
|
||||
|
||||
if ($cms->action == 'browse') {
|
||||
// browse in the list of data
|
||||
switch ($cms->action_id) {
|
||||
case "<<<<":
|
||||
$start_row = 0;
|
||||
break;
|
||||
case "<":
|
||||
$start_row -= $show_amount;
|
||||
break;
|
||||
case ">":
|
||||
$start_row += $show_amount;
|
||||
break;
|
||||
case ">>>>":
|
||||
$start_row = $file_count - $show_amount;
|
||||
break;
|
||||
case "gopage":
|
||||
// for page is page -1, so page 1 start from 0, etc
|
||||
$start_row = ((($cms->action_value - 1) > 0) ? ($cms->action_value - 1) * $show_amount : 0);
|
||||
$current_page = $cms->action_value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// check overflow
|
||||
if ($start_row < 0) {
|
||||
$start_row = 0;
|
||||
}
|
||||
if ($start_row > $file_count) {
|
||||
$start_row = $file_count - $show_amount;
|
||||
}
|
||||
|
||||
// if we have a "fresh_load"
|
||||
if ($fresh_load) {
|
||||
$count = 1;
|
||||
$q = "SELECT file_uid FROM file ";
|
||||
if ($q_search_where) {
|
||||
$q .= $q_search_where;
|
||||
}
|
||||
$q .= "ORDER BY ".$sort_order." ".$sort_direction." ";
|
||||
while ($res = $cms->db_return($q)) {
|
||||
// if data_id is set and not file_id, go to the page where the current highlight is, but only if this is a "virgin" load of the page
|
||||
if ($data_id && ($data_id == $res['file_uid'])) {
|
||||
$current_page = floor(($count / $show_amount));
|
||||
$start_row = $current_page * $show_amount;
|
||||
$current_page ++;
|
||||
}
|
||||
$count ++;
|
||||
}
|
||||
}
|
||||
|
||||
// page forward/back buttons settings
|
||||
if ($start_row > 0) {
|
||||
$cms->DATA['show_back'] = 1;
|
||||
}
|
||||
$cms->DATA['page_number'] = ceil($start_row / $show_amount) + 1;
|
||||
$cms->DATA['page_count'] = ceil($file_count / $show_amount);
|
||||
if ($cms->DATA['page_count'] > 2 && !$current_page) {
|
||||
$current_page = 1;
|
||||
}
|
||||
if (($start_row + $show_amount) < $file_count) {
|
||||
$cms->DATA['show_forward'] = 1;
|
||||
}
|
||||
|
||||
$q = "SELECT file_id, name_en, name_ja, file_name, online, mime_type, file_size, size_x, size_y, file_uid, type FROM file ";
|
||||
// if search what, search in name_en, name_ja, file_name for the string
|
||||
if ($q_search_where) {
|
||||
$q .= $q_search_where;
|
||||
}
|
||||
$q .= "ORDER BY ".$sort_order." ".$sort_direction." ";
|
||||
$q .= "LIMIT ".$show_amount." OFFSET ".$start_row;
|
||||
while ($res = $cms->db_return($q)) {
|
||||
$data_files[] = array (
|
||||
'id' => $res['file_id'],
|
||||
'name_en' => $res['name_en'],
|
||||
'name_ja' => $res['name_ja'],
|
||||
'file_name' => $res['file_name'],
|
||||
'online' => $res['online'],
|
||||
'mime_type' => $res['mime_type'],
|
||||
'file_size' => $cms->adbByteStringFormat($res['file_size']),
|
||||
'size_x' => $res['size_x'],
|
||||
'size_y' => $res['size_y'],
|
||||
'file_uid' => $res['file_uid'],
|
||||
'file_type' => $res['type'],
|
||||
'picture' => $cms->cache_pictures.$cms->adbCreateThumbnail(DEV_SCHEMA.'_'.$res['file_uid'], 80, 60, $res['type'], '', $cms->cache_pictures_root)
|
||||
);
|
||||
}
|
||||
|
||||
$cms->DATA['show_type'] = $show_type;
|
||||
$cms->DATA['data_files'] = $data_files;
|
||||
$cms->DATA['view'] = $view;
|
||||
$cms->DATA['images_path'] = MEDIA.$cms->data_path[$file_type];
|
||||
// get vars for position (only when)
|
||||
$cms->DATA['form_name'] = $form_name;
|
||||
$cms->DATA['value_name'] = $value_name;
|
||||
$cms->DATA['file_id'] = $file_id;
|
||||
$cms->DATA['file_uid'] = $file_uid;
|
||||
|
||||
// write back all the other vars
|
||||
if (!($delete_done || $new_okay)) {
|
||||
// data name
|
||||
$cms->DATA['file_name'] = $file_name;
|
||||
$cms->DATA['name_en'] = $name_en;
|
||||
$cms->DATA['name_ja'] = $name_ja;
|
||||
$cms->DATA['mime_type'] = $mime_type;
|
||||
$cms->DATA['file_size'] = $file_size;
|
||||
$cms->DATA['size_x'] = $size_x;
|
||||
$cms->DATA['size_y'] = $size_y;
|
||||
$cms->DATA['online'] = $online;
|
||||
$cms->DATA['picture'] = $picture;
|
||||
$cms->DATA['picture_small'] = $picture_small;
|
||||
$cms->DATA['file_type'] = $file_type;
|
||||
}
|
||||
$cms->DATA['sort_order_list'] = $sort_order_list;
|
||||
$cms->DATA['sort_order'] = $sort_order;
|
||||
$cms->DATA['sort_direction_list'] = $sort_direction_list;
|
||||
$cms->DATA['sort_direction'] = $sort_direction;
|
||||
$cms->DATA['search_what'] = $search_what;
|
||||
$cms->DATA['current_page'] = $current_page;
|
||||
$cms->DATA['yesno_list'] = $yesno_list;
|
||||
$cms->DATA['start_row'] = $start_row;
|
||||
$cms->DATA['show_amount'] = $show_amount;
|
||||
if ($data_id) {
|
||||
$cms->DATA['data_id'] = $data_id;
|
||||
}
|
||||
$cms->DATA['top'] = 0;
|
||||
$cms->DATA['left'] = 0;
|
||||
|
||||
//------------------------------ processing data end
|
||||
|
||||
//------------------------------ smarty start
|
||||
require("smarty.inc");
|
||||
//------------------------------ smarty end
|
||||
|
||||
//------------------------------ footer
|
||||
require("footer.inc");
|
||||
//------------------------------ footer
|
||||
@@ -1 +0,0 @@
|
||||
../libs/
|
||||
@@ -1 +0,0 @@
|
||||
../log/
|
||||
42
www/admin/namespace_test.php
Executable file
42
www/admin/namespace_test.php
Executable file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
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;
|
||||
|
||||
// namespace test
|
||||
ob_start();
|
||||
|
||||
// admin class tests
|
||||
require 'config.php';
|
||||
DEFINE('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
|
||||
echo "DIR: ".DIR."<br>ROOT: ".ROOT."<br>BASE: ".BASE."<br>";
|
||||
|
||||
$lang = 'ja_utf8';
|
||||
$base = new CoreLibs\Admin\Backend($DB_CONFIG[MAIN_DB], $lang);
|
||||
ob_end_flush();
|
||||
|
||||
print "Start time: ".$base->runningTime()."<br>";
|
||||
print "ByteStringFormat: ".$base->ByteStringFormat(1234567.12)."<br>";
|
||||
print "byteStringFormat: ".$base->byteStringFormat(1234567.12)."<br>";
|
||||
print "get_page_name [DEPRECATED]: ".$base->get_page_name()."<br>";
|
||||
print "getPageName: ".$base->getPageName()."<br>";
|
||||
|
||||
print "DB Info: ".$base->dbInfo(1)."<br>";
|
||||
|
||||
|
||||
print "End Time: ".$base->runningTime()."<br>";
|
||||
print "Run Time: ".$base->runningTime()."<br>";
|
||||
$base->resetRunningtime();
|
||||
|
||||
print "Lang: ".$base->l->__getLang().", MO File: ".$base->l->__getMoFile()."<br>";
|
||||
print "Translate test: Year -> ".$base->l->__('Year')."<br>";
|
||||
|
||||
// end error print
|
||||
print $base->printErrorMsg();
|
||||
|
||||
# __END__
|
||||
23
www/admin/other_test.php
Executable file
23
www/admin/other_test.php
Executable file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Foo;
|
||||
|
||||
class FooBar
|
||||
{
|
||||
public $foo = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->foo = 'BAR';
|
||||
}
|
||||
|
||||
public function otherBarBar($wrong)
|
||||
{
|
||||
echo "B: $wrong<br>";
|
||||
}
|
||||
|
||||
public function barBar($wrong)
|
||||
{
|
||||
echo "B: $wrong<br>";
|
||||
}
|
||||
}
|
||||
46
www/admin/qq_file_upload_ajax.php
Executable file
46
www/admin/qq_file_upload_ajax.php
Executable file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
$DEBUG_ALL = 1;
|
||||
$ECHO_ALL = 0;
|
||||
$PRINT_ALL = 1;
|
||||
|
||||
// load the Basic && qq file uploader here
|
||||
require 'config.php';
|
||||
// class load
|
||||
$base = new CoreLibs\Basic();
|
||||
$base->debug('AJAX UPLOAD', 'START Backend');
|
||||
// set max upload size
|
||||
$MAX_UPLOAD_SIZE = $base->StringByteFormat(ini_get('upload_max_filesize'));
|
||||
|
||||
// test for qqFileUploader (AJAX side)
|
||||
$allowedExtensions = array ('csv', 'zip', 'jpg', 'pdf', 'bz2');
|
||||
$sizeLimit = $MAX_UPLOAD_SIZE; // as set in php ini
|
||||
$base->debug('AJAX UPLOAD', 'Size: '.$sizeLimit.', Memory Limit: '.ini_get('memory_limit'));
|
||||
$uploader = new CoreLibs\Upload\qqFileUploader($allowedExtensions, $sizeLimit);
|
||||
// either in post or get
|
||||
$_action= $_POST['action'] ? $_POST['action'] : $_GET['action'];
|
||||
$_task_uid = $_POST['task_uid'] ? $_POST['task_uid'] : $_GET['task_uid'];
|
||||
$get_post['start'] = microtime(true);
|
||||
$base->debug('AJAX UPLOAD', 'Action: '.$_action.', Task UID: '.$_task_uid.' => '.$base->dateStringFormat($get_post['start']));
|
||||
|
||||
$upload_path = ROOT.MEDIA.UPLOADS;
|
||||
$get_post['result'] = $uploader->handleUpload($upload_path, false);
|
||||
$base->debug('AJAX UPLOAD', 'Memory peak: '.$base->ByteStringFormat(memory_get_usage()).' | '.$base->ByteStringFormat(memory_get_peak_usage()));
|
||||
|
||||
// set file name
|
||||
$get_post['filename'] = $uploader->uploadFileName;
|
||||
$get_post['type'] = $uploader->uploadFileExt;
|
||||
$get_post['filesize'] = filesize($uploader->uploadFileName);
|
||||
$get_post['filesize_formated'] = $base->ByteStringFormat($get_post['filesize']);
|
||||
$get_post['end'] = microtime(true);
|
||||
$get_post['time'] = $get_post['end'] - $get_post['start'];
|
||||
|
||||
$base->debug('AJAX RESULT', $base->printAr($get_post));
|
||||
// return data
|
||||
$output = htmlspecialchars(json_encode($get_post), ENT_NOQUOTES);
|
||||
// $base->debug('AJAX JSON', $output);
|
||||
print $output;
|
||||
|
||||
$base->printErrorMsg();
|
||||
|
||||
// __END__
|
||||
225
www/admin/qq_file_upload_front.php
Executable file
225
www/admin/qq_file_upload_front.php
Executable file
@@ -0,0 +1,225 @@
|
||||
<?php
|
||||
|
||||
$DEBUG_ALL = 1;
|
||||
$ECHO_ALL = 0;
|
||||
$PRINT_ALL = 1;
|
||||
|
||||
// test file for qqFileUploader (HTML side)
|
||||
// load the Basic class here
|
||||
require 'config.php';
|
||||
$base = new CoreLibs\Basic();
|
||||
// set max upload size
|
||||
$MAX_UPLOAD_SIZE = $base->StringByteFormat(ini_get('upload_max_filesize'));
|
||||
$base->debug('UPLOADED FRONT', 'With max size: '.$MAX_UPLOAD_SIZE);
|
||||
|
||||
// very basic template output with super basic div for two file upload
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>File upload AJAX</title>
|
||||
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
|
||||
<style type="text/css">
|
||||
.normal {
|
||||
width: 25%;
|
||||
}
|
||||
.flx-s {
|
||||
align-content: stretch;
|
||||
display: flex;
|
||||
flex: 1 100%;
|
||||
}
|
||||
.uploadError {
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
.uploadCancel {
|
||||
font-weight: bold;
|
||||
color: orange;
|
||||
}
|
||||
|
||||
.qq-file-upload-button {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 2px 2px 2px 2px;
|
||||
box-shadow: 0 10px rgba(255, 255, 255, 0.3) inset, 0 10px rgba(255, 255, 255, 0.2) inset, 0 10px 2px rgba(255, 255, 255, 0.25) inset, 0 -1px 2px rgba(0, 0, 0, 0.3) inset;
|
||||
text-align: center;
|
||||
padding: 3px 5px 3px;
|
||||
background-color: #cacaca;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.qq-file-upload-button:hover {
|
||||
box-shadow: 0 10px 2px rgba(107, 107, 107, 0.2) inset, 0 12px rgba(107, 107, 107, 0.05) inset, 0 12px 2px rgba(107, 107, 107, 0.1) inset, 0 -1px 2px rgba(255, 255, 255, 0.3) inset;
|
||||
}
|
||||
|
||||
.qq-file-upload-button:active {
|
||||
border: 1px solid red;
|
||||
background-color: rgba(80, 80, 80, 0.5);
|
||||
}
|
||||
|
||||
.qq-upload-cancel {
|
||||
border: 1px solid red;
|
||||
border-radius: 2px;
|
||||
text-align: center;
|
||||
padding: 3px 5px 3px;
|
||||
background-color: #eb652d;
|
||||
margin: 2px;
|
||||
}
|
||||
.qq-upload-cancel:hover {
|
||||
background-color: #eb8686;
|
||||
}
|
||||
.qq-upload-cancel:active {
|
||||
border: 1px solid black;
|
||||
background-color: #eb2d2d;
|
||||
}
|
||||
|
||||
.progressBarOutside {
|
||||
background-color: #f1f1f1;
|
||||
color: black;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.progressBarInside {
|
||||
background-color: #1e9e84;
|
||||
border-radius: 4px;
|
||||
padding: 0.01em;
|
||||
text-align: center;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script src="layout/default/javascript/prototype.js" type="text/javascript"></script>
|
||||
<script src="layout/default/javascript/file-uploader/fileuploader.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
function formatBytes(bytes)
|
||||
{
|
||||
var i = -1;
|
||||
do {
|
||||
bytes = bytes / 1024;
|
||||
i++;
|
||||
} while (bytes > 99);
|
||||
|
||||
// return Math.max(bytes, 0.1).toFixed(1) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
||||
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
||||
}
|
||||
var MAX_UPLOAD_SIZE = <?=$MAX_UPLOAD_SIZE;?>;
|
||||
// function to add an AJAX uploadeder to the set
|
||||
function createUploaderSin(divName, divNumber) {
|
||||
divID = divName + '_' + divNumber;
|
||||
console.log('Div: %s, Number: %s => ID: %s', divName, divNumber, divID);
|
||||
$(divID + '_Cancel').hide();
|
||||
var uploader = new qq.FileUploaderBasic({
|
||||
// element: document.getElementById(divID),
|
||||
element: $(divID),
|
||||
cancel: $(divID + '_Cancel'),
|
||||
action: 'qq_file_upload_ajax.php',
|
||||
multiple: false,
|
||||
button: $(divID),
|
||||
allowedExtensions: ['csv', 'zip', 'jpg', 'pdf', 'bz2'],
|
||||
sizeLimit: MAX_UPLOAD_SIZE, // size set from php ini
|
||||
name: divID,
|
||||
params: {
|
||||
'file_pos': divNumber, // we need to add here ID or something
|
||||
'action': 'upload',
|
||||
'task_uid': divNumber // -> test for some internal uid
|
||||
},
|
||||
onSubmit: function(id, filename, target) {
|
||||
console.log('File upload: "%s", ID: "%s" => "%s"', filename, id, target);
|
||||
// remove any assigned error classes and flags
|
||||
if ($(target + '_ProgressText').hasClassName('uploadError') || $(target + '_ProgressText').hasClassName('uploadCancel')) {
|
||||
$(target + '_ProgressText').className = '';
|
||||
$(target + '_Error').value = 0;
|
||||
}
|
||||
$(target + '_ProgressText').innerHTML = 'Start uploading file: ' + filename;
|
||||
$(target + '_Cancel').show();
|
||||
// disabled stuff here
|
||||
},
|
||||
onProgress: function(id, filename, loaded, total, target) {
|
||||
console.log('Progress for file: "%s", ID: "%s", loaded: "%s", total: "%s" => "%s"', id, filename, loaded, total, target);
|
||||
var percent = Math.round((loaded / total) * 100);
|
||||
$(target + '_ProgressBar').innerHTML = percent + '%';
|
||||
$(target + '_ProgressBar').style.width = percent + '%';
|
||||
$(target + '_ProgressText').innerHTML = 'Uploading: ' + filename + ', ' + formatBytes(loaded) + '/' + formatBytes(total);
|
||||
},
|
||||
onComplete: function(id, filename, responseJSON, target) {
|
||||
console.log('File upload for file "%s", id "%s" done with status "%s" => "%s", And success: %s', filename, id, responseJSON, target, responseJSON.result.success);
|
||||
if (responseJSON.result.success) {
|
||||
$(target + '_ProgressBar').innerHTML = '100%';
|
||||
$(target + '_ProgressBar').style.width = '100%';
|
||||
$(target + '_ProgressText').innerHTML = 'Uploaded: ' + filename + ' (' + responseJSON.filesize_formated + ')';
|
||||
// also write hidden vars for this (file name, etc)
|
||||
// for that we replace the divName part from the target and get just the pos number ?
|
||||
// $(target + 'Name').value = filename;
|
||||
// $(target + 'NameUpload').value = responseJSON.filename;
|
||||
// $(target + 'Type').value = responseJSON.type;
|
||||
// $(target + 'Size').value = responseJSON.filesize;
|
||||
} else {
|
||||
// set the error class
|
||||
$(target + '_ProgressText').className = 'uploadError';
|
||||
// flag error
|
||||
$(target + '_Error').value = 1;
|
||||
// and write the error
|
||||
$(target + '_ProgressText').innerHTML = 'UPLOAD FAILED FOR FILE: ' + filename;
|
||||
}
|
||||
// renable stuff here
|
||||
$(target + '_Cancel').hide();
|
||||
},
|
||||
onCancel: function (id, filename, target) {
|
||||
// cancel upload
|
||||
console.log('File upload cancled for file "%s", id "%s"', filename, id);
|
||||
// upload cancel
|
||||
$(target + '_ProgressText').className = 'uploadCancel';
|
||||
$(target + '_Error').value = 1;
|
||||
$(target + '_ProgressText').innerHTML = 'UPLOAD CANCELED FOR FILE: ' + filename;
|
||||
$(target + '_Cancel').hide();
|
||||
},
|
||||
/*showMessage: function(message) {
|
||||
console.log('MESSAGE: %s', message);
|
||||
}, */
|
||||
debug: true
|
||||
});
|
||||
// console.log('INIT Nr %s => cnt: %s', divNumber, uploader);
|
||||
return uploader;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="masterGroup">
|
||||
<div>File upload via AJAX (MAX SIZE: <?=$base->byteStringFormat($MAX_UPLOAD_SIZE);?>)</div>
|
||||
<div class="flx-s">
|
||||
<div id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7" class="normal qq-file-upload-button" style="width: 20%">Upload File</div>
|
||||
<div style="width: 5%">
|
||||
<div id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7_Cancel" class="qq-upload-cancel">X</div>
|
||||
</div>
|
||||
<div style="width: 75%; padding: 5px;">
|
||||
<div id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7_ProgressText"></div>
|
||||
<div class="progressBarOutside">
|
||||
<div class="progressBarInside" id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7_ProgressBar" style="width: 0%">0%</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7_Error" id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7_Error" value="">
|
||||
</div>
|
||||
<div class="flx-s">
|
||||
<div id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou" class="normal qq-file-upload-button" style="width: 20%">Upload File</div>
|
||||
<div style="width: 5%">
|
||||
<div id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou_Cancel" class="qq-upload-cancel">X</div>
|
||||
</div>
|
||||
<div style="width: 75%; padding: 5px;">
|
||||
<div id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou_ProgressText"></div>
|
||||
<div class="progressBarOutside">
|
||||
<div class="progressBarInside" id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou_ProgressBar" style="width: 0%">0%</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou_Error" id="Uploader_3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou_Error" value="">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<script type="text/javascript">
|
||||
// attach uploader to div areas
|
||||
createUploaderSin('Uploader', '3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_MF5tISORiay7');
|
||||
createUploaderSin('Uploader', '3WD7MAFmjAux_dlvvu13tezNj_XeSO0Ovauli0_Ww9iWKrl3Xou');
|
||||
</script>
|
||||
<?php
|
||||
$base->printErrorMsg();
|
||||
|
||||
// __END__
|
||||
12
www/admin/smarty_test.php
Normal file → Executable file
12
www/admin/smarty_test.php
Normal file → Executable file
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$ENABLE_ERROR_HANDLING = 0;
|
||||
$DEBUG_ALL_OVERRIDE = 0; // set to 1 to debug on live/remote server locations
|
||||
$DEBUG_ALL = 1;
|
||||
@@ -7,14 +7,16 @@ $DB_DEBUG = 1;
|
||||
$LOG_PER_RUN = 1;
|
||||
|
||||
define('USE_DATABASE', true);
|
||||
require("header.inc");
|
||||
define('USE_HEADER', true);
|
||||
require 'config.php';
|
||||
require BASE.INCLUDES.'admin_header.inc';
|
||||
$MASTER_TEMPLATE_NAME = 'main_body.tpl';
|
||||
$TEMPLATE_NAME = 'smarty_test.tpl';
|
||||
$PAGE_WIDTH = 750;
|
||||
require("set_paths.inc");
|
||||
require BASE.INCLUDES.'admin_set_paths.inc';
|
||||
|
||||
// smarty test
|
||||
$cms->DATA['SMARTY_TEST'] = 'Test Data';
|
||||
|
||||
require("smarty.inc");
|
||||
require("footer.inc");
|
||||
require BASE.INCLUDES.'admin_smarty.inc';
|
||||
require BASE.INCLUDES.'admin_footer.inc';
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?
|
||||
$edit_visible_group = array (
|
||||
"table_array" => array (
|
||||
"edit_visible_group_id" => array (
|
||||
"value" => $GLOBALS["edit_visible_group_id"],
|
||||
"type" => "hidden",
|
||||
"pk" => 1
|
||||
),
|
||||
"name" => array (
|
||||
"value" => $GLOBALS["name"],
|
||||
"output_name" => $this->l->__("Group name"),
|
||||
"mandatory" => 1,
|
||||
"type" => "text"
|
||||
),
|
||||
"flag" => array (
|
||||
"value" => $GLOBALS["flag"],
|
||||
"output_name" => $this->l->__("Flag"),
|
||||
"mandatory" => 1,
|
||||
"type" => "text",
|
||||
"error_check" => "alphanumeric|unique"
|
||||
)
|
||||
),
|
||||
"table_name" => "edit_visible_group",
|
||||
"load_query" => "SELECT edit_visible_group_id, name FROM edit_visible_group ORDER BY name",
|
||||
"show_fields" => array (
|
||||
array (
|
||||
"name" => "name"
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -1 +0,0 @@
|
||||
../templates_c/
|
||||
@@ -1 +0,0 @@
|
||||
../tmp/
|
||||
97
www/admin/various_class_test.php
Executable file
97
www/admin/various_class_test.php
Executable file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
$DEBUG_ALL_OVERRIDE = 0; // set to 1 to debug on live/remote server locations
|
||||
$DEBUG_ALL = 1;
|
||||
$PRINT_ALL = 1;
|
||||
$DB_DEBUG = 1;
|
||||
|
||||
// admin class tests
|
||||
// require 'config.inc';
|
||||
require 'config.php';
|
||||
DEFINE('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
$base = new CoreLibs\Basic();
|
||||
|
||||
print "THIS HOST: ".HOST_NAME.", with PROTOCOL: ".HOST_PROTOCOL." is running SSL: ".HOST_SSL."<br>";
|
||||
print "DIR: ".DIR."<br>";
|
||||
print "BASE: ".BASE."<br>";
|
||||
print "ROOT: ".ROOT."<br>";
|
||||
print "HOST: ".$HOST_NAME." => DB HOST: ".$DB_HOST[$HOST_NAME]." => ".MAIN_DB."<br>";
|
||||
|
||||
// $test = array (
|
||||
// 'A' => array (
|
||||
// 'B' => array (),
|
||||
// 'C' => array (
|
||||
// 'D' => array (),
|
||||
// 'E' => array (
|
||||
// 'F' => array ()
|
||||
// )
|
||||
// )
|
||||
// ),
|
||||
// '1' => array (),
|
||||
// '2' => array (),
|
||||
// '3' => array (
|
||||
// 'G' => array ()
|
||||
// )
|
||||
// );
|
||||
|
||||
$base->debug('ARRAY', $base->printAr($test));
|
||||
|
||||
function rec($pre, $cur, $node = array ())
|
||||
{
|
||||
if (!is_array($node)) {
|
||||
$node = array ();
|
||||
}
|
||||
print "<div style='color: green;'>#### PRE: ".$pre.", CUR: ".$cur.", N-c: ".count($node)." [".join('|', array_keys($node))."]</div>";
|
||||
if (!$pre) {
|
||||
print "** <span style='color: red;'>NEW</span><br>";
|
||||
$node[$cur] = array ();
|
||||
} else {
|
||||
if (array_key_exists($pre, $node)) {
|
||||
print "+ <span style='color: orange;'>KEY FOUND:</span> ".$pre.", add: ".$cur."<br>";
|
||||
$node[$pre][$cur] = array ();
|
||||
} else {
|
||||
print "- NOT FOUND: loop<br>";
|
||||
foreach ($node as $_pre => $_cur) {
|
||||
print "> TRY: ".$_pre." => ".count($_cur)." [".join('|', array_keys($_cur))."]<br>";
|
||||
if (count($_cur) > 0) {
|
||||
$node[$_pre] = rec($pre, $cur, $_cur);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $node;
|
||||
}
|
||||
|
||||
function flattenArrayKey(array $array, array $return = array ())
|
||||
{
|
||||
foreach ($array as $key => $sub) {
|
||||
$return[] = $key;
|
||||
if (count($sub) > 0) {
|
||||
$return = flattenArrayKey($sub, $return);
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
// core
|
||||
$test = rec('', 'A', $test);
|
||||
$test = rec('', '1', $test);
|
||||
$test = rec('', '2', $test);
|
||||
$test = rec('', '3', $test);
|
||||
$test = rec('3', 'G', $test);
|
||||
$test = rec('A', 'B', $test);
|
||||
$test = rec('A', 'C', $test);
|
||||
$test = rec('C', 'D', $test);
|
||||
$test = rec('C', 'E', $test);
|
||||
$test = rec('E', 'F', $test);
|
||||
// new
|
||||
$test = rec('C', 'U', $test);
|
||||
$test = rec('F', 'U', $test);
|
||||
$test = rec('', 'Al', $test);
|
||||
$test = rec('B', 'B1', $test);
|
||||
$base->debug('REC', $base->printAr($test));
|
||||
print "FLATTEN: ".$base->printAr(flattenArrayKey($test))."<br>";
|
||||
|
||||
print $base->printErrorMsg();
|
||||
|
||||
// __END__
|
||||
25
www/configs/config.db.inc
Executable file
25
www/configs/config.db.inc
Executable file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2018/10/11
|
||||
* SHORT DESCRIPTION:
|
||||
* configuration file for database settings
|
||||
* HISTORY:
|
||||
*********************************************************************/
|
||||
|
||||
// please be VERY carefull only to change the right side
|
||||
$DB_CONFIG = array (
|
||||
'test' => array (
|
||||
'db_name' => 'gullevek',
|
||||
'db_user' => 'gullevek',
|
||||
'db_pass' => 'gullevek',
|
||||
'db_host' => 'db.tokyo.tequila.jp',
|
||||
'db_port' => '5432',
|
||||
'db_schema' => 'public',
|
||||
'db_type' => 'pgsql',
|
||||
'db_encoding' => '',
|
||||
'db_ssl' => 'disable' // allow, disable, require, prefer
|
||||
)
|
||||
);
|
||||
|
||||
// __END__
|
||||
33
www/configs/config.host.inc
Executable file
33
www/configs/config.host.inc
Executable file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2018/10/11
|
||||
* SHORT DESCRIPTION:
|
||||
* configuration file for core host settings
|
||||
* - DB access name (array group from config.db)
|
||||
* - location (test/stage/live)
|
||||
* - debug flag (true/false)
|
||||
* - DB path (eg PUBLIC_SCHEMA)
|
||||
* - stie lang
|
||||
* HISTORY:
|
||||
*********************************************************************/
|
||||
|
||||
// each host has a different db_host
|
||||
// development host
|
||||
$DB_HOST['soba.tokyo.tequila.jp'] = 'test';
|
||||
// target host (live)
|
||||
// $DB_TARGET_HOST['soba'] = '<DB ID>';
|
||||
// url redirect database
|
||||
// $DB_URL_REDIRECT_HOST['soba'] = '<DB ID>';
|
||||
// location flagging
|
||||
// test/dev/live
|
||||
$LOCATION['soba.tokyo.tequila.jp'] = 'test';
|
||||
// show DEBUG override
|
||||
// true/false
|
||||
$DEBUG_FLAG['soba.tokyo.tequila.jp'] = true;
|
||||
// set postgresql paths (schemas)
|
||||
$DB_PATH['soba.tokyo.tequila.jp'] = PUBLIC_SCHEMA;
|
||||
// site language
|
||||
$SITE_LANG['soba.tokyo.tequila.jp'] = 'en_utf8';
|
||||
|
||||
// __END__
|
||||
@@ -1,6 +1,6 @@
|
||||
<?
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2003/06/10
|
||||
* SHORT DESCRIPTION:
|
||||
* configuration file
|
||||
@@ -9,79 +9,82 @@
|
||||
|
||||
/************* SESSION NAMES *************/
|
||||
// backend
|
||||
DEFINE('EDIT_SESSION_NAME', "<ADMIN SESSION NAME>");
|
||||
DEFINE('EDIT_SESSION_NAME', '<ADMIN SESSION NAME>');
|
||||
// frontend
|
||||
DEFINE('SESSION_NAME', "<SESSION NAME>");
|
||||
DEFINE('SESSION_NAME', '<SESSION NAME>');
|
||||
// set the session name
|
||||
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
|
||||
/************* LANGUAGE / ENCODING *******/
|
||||
DEFINE('DEFAULT_LANG', "en_utf8");
|
||||
DEFINE('DEFAULT_LANG', 'en_utf8');
|
||||
// default web page encoding setting
|
||||
DEFINE('DEFAULT_ENCODING', "UTF-8");
|
||||
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__."/");
|
||||
// libs base path based on DIR
|
||||
DEFINE('LIBDIR', DIR.'libs/');
|
||||
// SMARTY path based on DIR
|
||||
DEFINE('SMARTYDIR', DIR.'Smarty/');
|
||||
// table arrays for Class Form
|
||||
DEFINE('TABLEARRAYDIR', DIR.'table_arrays/');
|
||||
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()."/");
|
||||
DEFINE('ROOT', getcwd().DS);
|
||||
// libs path
|
||||
DEFINE('LIBS', "libs/");
|
||||
DEFINE('LIB', 'lib'.DS);
|
||||
DEFINE('LIBS', 'lib'.DS);
|
||||
// includes (strings, arrays for static, etc)
|
||||
DEFINE('INCLUDES', "includes/");
|
||||
DEFINE('INCLUDES', 'includes'.DS);
|
||||
// layout base path
|
||||
DEFINE('LAYOUT', 'layout/');
|
||||
DEFINE('LAYOUT', 'layout'.DS);
|
||||
// pic-root (compatible to CMS)
|
||||
DEFINE('PICTURES', "images/");
|
||||
DEFINE('PICTURES', 'images'.DS);
|
||||
// images
|
||||
DEFINE('IMAGES', "images/");
|
||||
DEFINE('IMAGES', 'images'.DS);
|
||||
// icons (below the images/ folder)
|
||||
DEFINE('ICONS', 'icons/');
|
||||
DEFINE('ICONS', 'icons'.DS);
|
||||
// media
|
||||
DEFINE('MEDIA', "media/");
|
||||
DEFINE('MEDIA', 'media'.DS);
|
||||
// flash-root (below media)
|
||||
DEFINE('FLASH', "flash/");
|
||||
DEFINE('FLASH', 'flash'.DS);
|
||||
// uploads (anything to keep)
|
||||
DEFINE('UPLOADS', "uploads/");
|
||||
DEFINE('UPLOADS', 'uploads'.DS);
|
||||
// files (binaries) (below media)
|
||||
DEFINE('BINARIES', "binaries/");
|
||||
DEFINE('BINARIES', 'binaries'.DS);
|
||||
// files (videos) (below media)
|
||||
DEFINE('VIDEOS', "videos/");
|
||||
DEFINE('VIDEOS', 'videos'.DS);
|
||||
// files (documents) (below media)
|
||||
DEFINE('DOCUMENTS', "documents/");
|
||||
DEFINE('DOCUMENTS', 'documents'.DS);
|
||||
// files (pdfs) (below media)
|
||||
DEFINE('PDFS', "documents/");
|
||||
DEFINE('PDFS', 'documents'.DS);
|
||||
// CSV
|
||||
DEFINE('CSV', 'csv'.DS);
|
||||
// css
|
||||
DEFINE('CSS', "css/");
|
||||
DEFINE('CSS', 'css'.DS);
|
||||
// js
|
||||
DEFINE('JS', "javascript/");
|
||||
DEFINE('JS', 'javascript'.DS);
|
||||
// table arrays
|
||||
DEFINE('TABLE_ARRAYS', "table_arrays/");
|
||||
DEFINE('TABLE_ARRAYS', 'table_arrays'.DS);
|
||||
// smarty libs path
|
||||
DEFINE('SMARTY', "Smarty/");
|
||||
DEFINE('SMARTY', 'Smarty'.DS);
|
||||
// po langs
|
||||
DEFINE('LANG', "lang/");
|
||||
DEFINE('LANG', 'lang'.DS);
|
||||
// cache path
|
||||
DEFINE('CACHE', "cache/");
|
||||
DEFINE('CACHE', 'cache'.DS);
|
||||
// temp path
|
||||
DEFINE('TMP', "tmp/");
|
||||
DEFINE('TMP', 'tmp'.DS);
|
||||
// log files
|
||||
DEFINE('LOG', 'log/');
|
||||
DEFINE('LOG', 'log'.DS);
|
||||
// compiled template folder
|
||||
DEFINE('TEMPLATES_C', 'templates_c'.DS);
|
||||
// template base
|
||||
DEFINE('TEMPLATES', "templates/");
|
||||
DEFINE('TEMPLATES', 'templates'.DS);
|
||||
// frontend template dir', only for admin
|
||||
DEFINE('TEMPLATES_FRONTEND', "templates_frontend/");
|
||||
DEFINE('TEMPLATES_FRONTEND', 'templates_frontend'.DS);
|
||||
// default template
|
||||
DEFINE('DEFAULT_TEMPLATE', "default/");
|
||||
DEFINE('DEFAULT_TEMPLATE', 'default'.DS);
|
||||
// default template file
|
||||
DEFINE('DEFAULT_TEMPLATE_FILE', 'default.tpl');
|
||||
|
||||
@@ -99,14 +102,14 @@ DEFINE('DEFAULT_ACL_SEND', 70);
|
||||
DEFINE('DEFAULT_ACL_DEL', 80);
|
||||
DEFINE('DEFAULT_ACL_ADMIN', 100); */
|
||||
// SSL host name
|
||||
// DEFINE('SSL_HOST', "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!
|
||||
// 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
|
||||
@@ -131,6 +134,11 @@ 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
|
||||
@@ -142,37 +150,38 @@ DEFINE('MASTER_TEMPLATE_NAME', 'main_body.tpl');
|
||||
DEFINE('PUBLIC_SCHEMA', 'public');
|
||||
DEFINE('DEV_SCHEMA', 'public');
|
||||
DEFINE('TEST_SCHEMA', 'public');
|
||||
DEFINE('LIVE_SCHEMA', 'public');
|
||||
|
||||
// non constant part
|
||||
/************* DB ACCESS *****************/
|
||||
// please be VERY carefull only to change the right side
|
||||
$DB_CONFIG = array (
|
||||
"<db id>" => array (
|
||||
"db_name" => "<database>",
|
||||
"db_user" => "<user>",
|
||||
"db_pass" => "<password>",
|
||||
"db_host" => "<host>",
|
||||
"db_port" => "5432",
|
||||
"db_schema" => "public", // if not set, uses public
|
||||
"db_type" => "pgsql",
|
||||
"db_encoding" => '',
|
||||
"db_ssl" => 'disable' // allow, disable, require, prefer
|
||||
'<db id>' => array (
|
||||
'db_name' => '<database>',
|
||||
'db_user' => '<user>',
|
||||
'db_pass' => '<password>',
|
||||
'db_host' => '<host>',
|
||||
'db_port' => '5432',
|
||||
'db_schema' => 'public', // if not set, uses public
|
||||
'db_type' => 'pgsql',
|
||||
'db_encoding' => '',
|
||||
'db_ssl' => 'disable' // allow, disable, require, prefer
|
||||
)
|
||||
);
|
||||
|
||||
// File and Folder paths
|
||||
// ID is TARGET (first array element)
|
||||
// $PATHS["test"]["csv_path"] = "";
|
||||
// $PATHS["test"]["perl_bin"] = "";
|
||||
// $PATHS["test"]["redirect_url"] = "";
|
||||
// $PATHS['test']['csv_path'] = '';
|
||||
// $PATHS['test']['perl_bin'] = '';
|
||||
// $PATHS['test']['redirect_url'] = '';
|
||||
|
||||
// each host has a different db_host
|
||||
// development host
|
||||
$DB_HOST['<host>'] = "<db id>";
|
||||
$DB_HOST['<host>'] = '<db id>';
|
||||
// target host (live)
|
||||
// $DB_TARGET_HOST['<host>'] = "<DB ID>";
|
||||
// $DB_TARGET_HOST['<host>'] = '<DB ID>';
|
||||
// url redirect database
|
||||
// $DB_URL_REDIRECT_HOST['<host>'] = "<DB ID>";
|
||||
// $DB_URL_REDIRECT_HOST['<host>'] = '<DB ID>';
|
||||
// location flagging
|
||||
// test/dev/live
|
||||
$LOCATION['<host>'] = '<test|live|remote|etc>';
|
||||
@@ -188,9 +197,9 @@ $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);
|
||||
list($HOST_NAME) = 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>";
|
||||
echo 'No matching DB config found. Contact Admin<br>';
|
||||
exit -1;
|
||||
}
|
||||
|
||||
@@ -217,11 +226,11 @@ DEFINE('SHOW_ALL_ERRORS', false); // show all errors if debug_all & show_error_h
|
||||
$G_TITLE = '<OVERALL PAGE TITLE>';
|
||||
|
||||
/************ STYLE SHEETS / JS **********/
|
||||
$EDIT_STYLESHEET = "edit.css";
|
||||
$EDIT_JAVASCRIPT = "edit.js";
|
||||
$EDIT_STYLESHEET = 'edit.css';
|
||||
$EDIT_JAVASCRIPT = 'edit.js';
|
||||
|
||||
$STYLESHEET = "frontend.css";
|
||||
$JAVASCRIPT = "frontend.js";
|
||||
$STYLESHEET = 'frontend.css';
|
||||
$JAVASCRIPT = 'frontend.js';
|
||||
|
||||
/************* CONVERT *******************/
|
||||
$paths = array (
|
||||
@@ -231,14 +240,14 @@ $paths = array (
|
||||
);
|
||||
// find convert
|
||||
foreach ($paths as $path) {
|
||||
if (file_exists($path."/convert") && is_file($path."/convert")) {
|
||||
if (file_exists($path.DS.'convert') && is_file($path.DS.'convert')) {
|
||||
// image magick convert location
|
||||
DEFINE('CONVERT', $path."/convert");
|
||||
DEFINE('CONVERT', $path.DS.'convert');
|
||||
}
|
||||
}
|
||||
|
||||
// turn off debug if debug flag is OFF
|
||||
if (DEBUG == false) {
|
||||
if (defined('DEBUG') && DEBUG == false) {
|
||||
$ECHO_ALL = 0;
|
||||
$DEBUG_ALL = 0;
|
||||
$PRINT_ALL = 0;
|
||||
@@ -249,27 +258,7 @@ if (DEBUG == false) {
|
||||
// any other global definitons here
|
||||
// DEFINE('SOME_ID', <SOME VALUE>);
|
||||
|
||||
// function that will be called on top of each class include to load the class
|
||||
function _spl_autoload($include_file)
|
||||
{
|
||||
// where to search for the files to include
|
||||
$dirs = array (
|
||||
LIBDIR,
|
||||
SMARTYDIR,
|
||||
TABLEARRAYDIR,
|
||||
'',
|
||||
LIBS,
|
||||
SMARTY,
|
||||
TABLE_ARRAYS,
|
||||
__DIR__.'/'.LIBS,
|
||||
__DIR__.'/'.SMARTY
|
||||
);
|
||||
// try to find and load the class ifle
|
||||
foreach ($dirs as $folder) {
|
||||
if (file_exists($folder.$include_file)) {
|
||||
require_once($folder.$include_file);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// read auto loader
|
||||
require BASE.LIB.'autoloader.php';
|
||||
|
||||
# __END__
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2003/06/10
|
||||
* SHORT DESCRIPTION:
|
||||
* configuration file
|
||||
@@ -8,80 +8,87 @@
|
||||
*********************************************************************/
|
||||
|
||||
/************* SESSION NAMES *************/
|
||||
// server name HASH
|
||||
DEFINE('SERVER_NAME_HASH', hash('crc32b', $_SERVER['HTTP_HOST']));
|
||||
// backend
|
||||
DEFINE('EDIT_SESSION_NAME', "<ADMIN SESSION NAME>");
|
||||
DEFINE('EDIT_SESSION_NAME', '<ADMIN SESSION NAME>'.SERVER_NAME_HASH);
|
||||
// frontend
|
||||
DEFINE('SESSION_NAME', "<SESSION NAME>");
|
||||
// set the session name
|
||||
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
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");
|
||||
DEFINE('DEFAULT_LANG', 'en_utf8');
|
||||
// default web page encoding setting
|
||||
DEFINE('DEFAULT_ENCODING', "UTF-8");
|
||||
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__."/");
|
||||
// libs base path based on DIR
|
||||
DEFINE('LIBDIR', DIR.'libs/');
|
||||
// SMARTY path based on DIR
|
||||
DEFINE('SMARTYDIR', DIR.'Smarty/');
|
||||
// table arrays for Class Form
|
||||
DEFINE('TABLEARRAYDIR', DIR.'table_arrays/');
|
||||
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()."/");
|
||||
DEFINE('ROOT', getcwd().DS);
|
||||
// libs path
|
||||
DEFINE('LIBS', "libs/");
|
||||
DEFINE('LIB', 'lib'.DS);
|
||||
DEFINE('LIBS', 'lib'.DS);
|
||||
// configs folder
|
||||
DEFINE('CONFIGS', 'configs'.DS);
|
||||
// includes (strings, arrays for static, etc)
|
||||
DEFINE('INCLUDES', "includes/");
|
||||
DEFINE('INCLUDES', 'includes'.DS);
|
||||
// layout base path
|
||||
DEFINE('LAYOUT', 'layout/');
|
||||
DEFINE('LAYOUT', 'layout'.DS);
|
||||
// pic-root (compatible to CMS)
|
||||
DEFINE('PICTURES', "images/");
|
||||
DEFINE('PICTURES', 'images'.DS);
|
||||
// images
|
||||
DEFINE('IMAGES', "images/");
|
||||
DEFINE('IMAGES', 'images'.DS);
|
||||
// icons (below the images/ folder)
|
||||
DEFINE('ICONS', 'icons/');
|
||||
DEFINE('ICONS', 'icons'.DS);
|
||||
// media
|
||||
DEFINE('MEDIA', "media/");
|
||||
DEFINE('MEDIA', 'media'.DS);
|
||||
// flash-root (below media)
|
||||
DEFINE('FLASH', "flash/");
|
||||
DEFINE('FLASH', 'flash'.DS);
|
||||
// uploads (anything to keep)
|
||||
DEFINE('UPLOADS', "uploads/");
|
||||
DEFINE('UPLOADS', 'uploads'.DS);
|
||||
// files (binaries) (below media)
|
||||
DEFINE('BINARIES', "binaries/");
|
||||
DEFINE('BINARIES', 'binaries'.DS);
|
||||
// files (videos) (below media)
|
||||
DEFINE('VIDEOS', "videos/");
|
||||
DEFINE('VIDEOS', 'videos'.DS);
|
||||
// files (documents) (below media)
|
||||
DEFINE('DOCUMENTS', "documents/");
|
||||
DEFINE('DOCUMENTS', 'documents'.DS);
|
||||
// files (pdfs) (below media)
|
||||
DEFINE('PDFS', "documents/");
|
||||
DEFINE('PDFS', 'documents'.DS);
|
||||
// CSV
|
||||
DEFINE('CSV', 'csv'.DS);
|
||||
// css
|
||||
DEFINE('CSS', "css/");
|
||||
DEFINE('CSS', 'css'.DS);
|
||||
// js
|
||||
DEFINE('JS', "javascript/");
|
||||
DEFINE('JS', 'javascript'.DS);
|
||||
// table arrays
|
||||
DEFINE('TABLE_ARRAYS', "table_arrays/");
|
||||
DEFINE('TABLE_ARRAYS', 'table_arrays'.DS);
|
||||
// smarty libs path
|
||||
DEFINE('SMARTY', "Smarty/");
|
||||
DEFINE('SMARTY', 'Smarty'.DS);
|
||||
// po langs
|
||||
DEFINE('LANG', "lang/");
|
||||
DEFINE('LANG', 'lang'.DS);
|
||||
// cache path
|
||||
DEFINE('CACHE', "cache/");
|
||||
DEFINE('CACHE', 'cache'.DS);
|
||||
// temp path
|
||||
DEFINE('TMP', "tmp/");
|
||||
DEFINE('TMP', 'tmp'.DS);
|
||||
// log files
|
||||
DEFINE('LOG', 'log/');
|
||||
DEFINE('LOG', 'log'.DS);
|
||||
// compiled template folder
|
||||
DEFINE('TEMPLATES_C', 'templates_c'.DS);
|
||||
// template base
|
||||
DEFINE('TEMPLATES', "templates/");
|
||||
DEFINE('TEMPLATES', 'templates'.DS);
|
||||
// frontend template dir', only for admin
|
||||
DEFINE('TEMPLATES_FRONTEND', "templates_frontend/");
|
||||
DEFINE('TEMPLATES_FRONTEND', 'templates_frontend'.DS);
|
||||
// default template
|
||||
DEFINE('DEFAULT_TEMPLATE', "default/");
|
||||
DEFINE('DEFAULT_TEMPLATE', 'default'.DS);
|
||||
// default template file
|
||||
DEFINE('DEFAULT_TEMPLATE_FILE', 'default.tpl');
|
||||
|
||||
@@ -99,14 +106,14 @@ DEFINE('DEFAULT_ACL_SEND', 70);
|
||||
DEFINE('DEFAULT_ACL_DEL', 80);
|
||||
DEFINE('DEFAULT_ACL_ADMIN', 100); */
|
||||
// SSL host name
|
||||
// DEFINE('SSL_HOST', "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!
|
||||
// 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
|
||||
@@ -117,6 +124,9 @@ DEFINE('DEFAULT_ACL_ADMIN', 100); */
|
||||
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
|
||||
@@ -131,6 +141,11 @@ 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
|
||||
@@ -142,45 +157,58 @@ DEFINE('MASTER_TEMPLATE_NAME', 'main_body.tpl');
|
||||
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 *****************/
|
||||
// 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
|
||||
)
|
||||
);
|
||||
|
||||
// File and Folder paths
|
||||
// ID is TARGET (first array element)
|
||||
// $PATHS["test"]["csv_path"] = "";
|
||||
// $PATHS["test"]["perl_bin"] = "";
|
||||
// $PATHS["test"]["redirect_url"] = "";
|
||||
|
||||
// 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;
|
||||
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;
|
||||
@@ -188,12 +216,22 @@ $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);
|
||||
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>";
|
||||
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]);
|
||||
@@ -217,11 +255,11 @@ DEFINE('SHOW_ALL_ERRORS', false); // show all errors if debug_all & show_error_h
|
||||
$G_TITLE = '<OVERALL PAGE TITLE>';
|
||||
|
||||
/************ STYLE SHEETS / JS **********/
|
||||
$EDIT_STYLESHEET = "edit.css";
|
||||
$EDIT_JAVASCRIPT = "edit.js";
|
||||
$EDIT_STYLESHEET = 'edit.css';
|
||||
$EDIT_JAVASCRIPT = 'edit.js';
|
||||
|
||||
$STYLESHEET = "frontend.css";
|
||||
$JAVASCRIPT = "frontend.js";
|
||||
$STYLESHEET = 'frontend.css';
|
||||
$JAVASCRIPT = 'frontend.js';
|
||||
|
||||
/************* CONVERT *******************/
|
||||
$paths = array (
|
||||
@@ -231,9 +269,9 @@ $paths = array (
|
||||
);
|
||||
// find convert
|
||||
foreach ($paths as $path) {
|
||||
if (file_exists($path."/convert") && is_file($path."/convert")) {
|
||||
if (file_exists($path.'/convert') && is_file($path.'/convert')) {
|
||||
// image magick convert location
|
||||
DEFINE('CONVERT', $path."/convert");
|
||||
DEFINE('CONVERT', $path.'/convert');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,27 +287,7 @@ if (DEBUG == false) {
|
||||
// any other global definitons here
|
||||
// DEFINE('SOME_ID', <SOME VALUE>);
|
||||
|
||||
// function that will be called on top of each class include to load the class
|
||||
function _spl_autoload($include_file)
|
||||
{
|
||||
// where to search for the files to include
|
||||
$dirs = array (
|
||||
LIBDIR,
|
||||
SMARTYDIR,
|
||||
TABLEARRAYDIR,
|
||||
'',
|
||||
LIBS,
|
||||
SMARTY,
|
||||
TABLE_ARRAYS,
|
||||
__DIR__.'/'.LIBS,
|
||||
__DIR__.'/'.SMARTY
|
||||
);
|
||||
// try to find and load the class ifle
|
||||
foreach ($dirs as $folder) {
|
||||
if (file_exists($folder.$include_file)) {
|
||||
require_once($folder.$include_file);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// read auto loader
|
||||
require BASE.LIB.'autoloader.php';
|
||||
|
||||
# __END__
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2008/08/14
|
||||
@@ -8,5 +8,5 @@
|
||||
*********************************************************************/
|
||||
|
||||
// print debug messages
|
||||
echo $login->print_error_msg();
|
||||
echo $cms->print_error_msg();
|
||||
echo $login->printErrorMsg();
|
||||
echo $cms->printErrorMsg();
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2008/08/01
|
||||
@@ -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("libs/Error.Handling.inc");
|
||||
include("../lib/Error.Handling.inc");
|
||||
}
|
||||
// predefine vars
|
||||
$lang = '';
|
||||
@@ -22,12 +22,6 @@ extract($_POST, EXTR_SKIP);
|
||||
//------------------------------ library include start
|
||||
// set output to quiet for load of classes & session settings
|
||||
ob_start();
|
||||
require("config.inc");
|
||||
|
||||
// login class, DB connections & Admin class, Smarty extension
|
||||
foreach (array ('Login', 'Admin.Backend', 'Smarty.Extend') as $class) {
|
||||
_spl_autoload('Class.'.$class.'.inc');
|
||||
}
|
||||
//------------------------------ library include end
|
||||
|
||||
//------------------------------ basic variable settings start
|
||||
@@ -50,21 +44,19 @@ if (array_key_exists('action', $_POST) && $_POST['action'] != 'download_csv') {
|
||||
|
||||
//------------------------------ class init start
|
||||
// login & page access check
|
||||
$login = new login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
$login = new CoreLibs\ACL\Login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
// post login lang check
|
||||
if ($_SESSION['DEFAULT_LANG']) {
|
||||
$lang = $_SESSION['DEFAULT_LANG'];
|
||||
}
|
||||
// create smarty object
|
||||
$smarty = new SmartyML($lang);
|
||||
$smarty = new CoreLibs\Template\SmartyExtend($lang);
|
||||
// create new DB class
|
||||
$cms = new AdminBackend($DB_CONFIG[MAIN_DB], $lang);
|
||||
// set search path to the default DB schema
|
||||
$cms->db_exec("SET search_path TO ".DB_SCHEMA);
|
||||
$cms = new CoreLibs\Admin\Backend($DB_CONFIG[MAIN_DB], $lang);
|
||||
// the menu show flag (what menu to show)
|
||||
$cms->menu_show_flag = 'main';
|
||||
// db nfo
|
||||
$cms->db_info();
|
||||
$cms->dbInfo();
|
||||
// set acl
|
||||
$cms->acl = $login->acl;
|
||||
//------------------------------ class init end
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2007/09/03
|
||||
@@ -15,7 +15,7 @@ if ($_SESSION['TEMPLATE']) {
|
||||
} else {
|
||||
$TEMPLATE = DEFAULT_TEMPLATE;
|
||||
}
|
||||
$TEMPLATE_DIR = $TEMPLATE.'/';
|
||||
$TEMPLATE_DIR = $TEMPLATE;
|
||||
// master template
|
||||
if (!$MASTER_TEMPLATE_NAME) {
|
||||
$MASTER_TEMPLATE_NAME = MASTER_TEMPLATE_NAME;
|
||||
@@ -32,7 +32,7 @@ if ($_SESSION['DEFAULT_CHARSET']) {
|
||||
if ($_SESSION['DEFAULT_LANG']) {
|
||||
$lang = $_SESSION['DEFAULT_LANG'];
|
||||
} elseif (!$lang) {
|
||||
$lang = DEFAULT_LANG;
|
||||
$lang = defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG;
|
||||
}
|
||||
// create the char lang encoding
|
||||
$lang_short = substr($lang, 0, 2);
|
||||
@@ -41,7 +41,7 @@ $lang_short = substr($lang, 0, 2);
|
||||
$CONTENT_INCLUDE = str_replace(".php", ".tpl", $cms->page_name);
|
||||
$FORM_NAME = !isset($FORM_NAME) || !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
|
||||
// set local page title
|
||||
$L_TITLE = ucfirst(str_replace('_', ' ', $cms->get_page_name(1))).' - '.$G_TITLE;
|
||||
$L_TITLE = ucfirst(str_replace('_', ' ', $cms->getPageName(1))).' - '.$G_TITLE;
|
||||
// strip tpl and replace it with inc
|
||||
// php include file per page
|
||||
$cms->INC_TEMPLATE_NAME = str_replace(".tpl", ".inc", $CONTENT_INCLUDE);
|
||||
@@ -55,13 +55,13 @@ $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.'/');
|
||||
$cms->lang_dir = LAYOUT.$TEMPLATE_DIR.LANG."/";
|
||||
$cms->includes = LAYOUT.$TEMPLATE_DIR.INCLUDES."/";
|
||||
$cms->javascript = LAYOUT.$TEMPLATE_DIR.JS."/";
|
||||
$cms->css = LAYOUT.$TEMPLATE_DIR.CSS."/";
|
||||
$cms->pictures = LAYOUT.$TEMPLATE_DIR.IMAGES."/";
|
||||
$cms->cache_pictures = LAYOUT.$TEMPLATE_DIR.CACHE.IMAGES.'/';
|
||||
$smarty->setTemplateDir(LAYOUT.$TEMPLATE_DIR.TEMPLATES); // no outside
|
||||
$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;
|
||||
$cms->css = LAYOUT.$TEMPLATE_DIR.CSS;
|
||||
$cms->pictures = LAYOUT.$TEMPLATE_DIR.IMAGES;
|
||||
$cms->cache_pictures = LAYOUT.$TEMPLATE_DIR.CACHE;
|
||||
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
|
||||
if (!is_dir($cms->cache_pictures_root)) {
|
||||
mkdir($cms->cache_pictures_root);
|
||||
@@ -69,51 +69,76 @@ if (!is_dir($cms->cache_pictures_root)) {
|
||||
$template_set = $TEMPLATE;
|
||||
|
||||
// if we don't find the master template, set the template path back AND set the insert template as absolute path
|
||||
if (!file_exists(ROOT.$smarty->getTemplateDir()[0]."/".MASTER_TEMPLATE_NAME)) {
|
||||
if (file_exists(ROOT.$smarty->getTemplateDir()[0]."/".$TEMPLATE_NAME)) {
|
||||
$TEMPLATE_NAME = ROOT.$smarty->getTemplateDir()[0]."/".$TEMPLATE_NAME;
|
||||
if (!file_exists(ROOT.$smarty->getTemplateDir()[0].DS.MASTER_TEMPLATE_NAME)) {
|
||||
if (file_exists(ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
|
||||
$TEMPLATE_NAME = ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME;
|
||||
}
|
||||
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
|
||||
$template_set = DEFAULT_TEMPLATE;
|
||||
} elseif (!file_exists(ROOT.$smarty->getTemplateDir()[0]."/".$TEMPLATE_NAME)) {
|
||||
} elseif (!file_exists(ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
|
||||
// check if the template exists in the template path, if not, set path to to default
|
||||
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
|
||||
$template_set = DEFAULT_TEMPLATE;
|
||||
}
|
||||
// loop to check if dir exists
|
||||
// check if file exists, if not reset to default path
|
||||
|
||||
// check if the javascript folder exists in the template path, if not fall back to default
|
||||
if (!is_dir($cms->javascript)) {
|
||||
$cms->javascript = LAYOUT.DEFAULT_TEMPLATE.JS."/";
|
||||
}
|
||||
// check if lang_dir folder exists in the template path, if not fall back to default
|
||||
if (!is_dir($cms->lang_dir)) {
|
||||
$cms->lang_dir = LAYOUT.DEFAULT_TEMPLATE.LANG."/";
|
||||
$cms->lang_dir = LAYOUT.DEFAULT_TEMPLATE.LANG;
|
||||
}
|
||||
// check if include folder exists in the template path, if not fall back to default
|
||||
if (!is_dir($cms->includes)) {
|
||||
$cms->includes = LAYOUT.DEFAULT_TEMPLATE.INCLUDES."/";
|
||||
// check if the javascript folder exists in the template path, if not fall back to default
|
||||
if (!is_dir($cms->javascript)) {
|
||||
$cms->javascript = LAYOUT.DEFAULT_TEMPLATE.JS;
|
||||
}
|
||||
// check if css folder exists in the template path, if not fall back to default
|
||||
if (!is_dir($cms->css)) {
|
||||
$cms->css = LAYOUT.DEFAULT_TEMPLATE.CSS."/";
|
||||
$cms->css = LAYOUT.DEFAULT_TEMPLATE.CSS;
|
||||
}
|
||||
if (!is_dir($cms->pictures)) {
|
||||
$cms->pictures = LAYOUT.DEFAULT_TEMPLATE.PICTURES.'/';
|
||||
$cms->pictures = LAYOUT.DEFAULT_TEMPLATE.PICTURES;
|
||||
}
|
||||
if (!is_dir($cms->cache_pictures)) {
|
||||
$cms->cache_pictures = LAYOUT.DEFAULT_TEMPLATE.CACHE.IMAGES.'/';
|
||||
$cms->cache_pictures = LAYOUT.DEFAULT_TEMPLATE.CACHE;
|
||||
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
|
||||
}
|
||||
|
||||
// if the template_dir is != DEFAULT_TEMPLATE, then try to make a lang switch
|
||||
// if the default lang is not like the lang given, switch lang
|
||||
if (false === strstr(LAYOUT.DEFAULT_TEMPLATE.LANG, $cms->lang_dir) || strcasecmp(DEFAULT_LANG, $lang)) {
|
||||
$cms->debug('LANG', 'Orig: '.LAYOUT.DEFAULT_TEMPLATE.LANG.', New: '.$cms->lang_dir.' | Orig Lang: '.DEFAULT_LANG.', New Lang: '.$lang);
|
||||
if (false === strstr(LAYOUT.DEFAULT_TEMPLATE.LANG, $cms->lang_dir) ||
|
||||
strcasecmp(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG, $lang)
|
||||
) {
|
||||
$cms->debug('LANG', 'Orig: '.LAYOUT.DEFAULT_TEMPLATE.LANG.', New: '.$cms->lang_dir.' | Orig Lang: '.(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG).', New Lang: '.$lang);
|
||||
$cms->l->l10nReloadMOfile($lang, $cms->lang_dir);
|
||||
$smarty->l10n->l10nReloadMOfile($lang, $cms->lang_dir);
|
||||
// if we have login class
|
||||
if ($login) {
|
||||
$login->l->l10nReloadMOfile($lang, $cms->lang_dir);
|
||||
}
|
||||
// if we have smarty template class
|
||||
if ($smarty) {
|
||||
$smarty->l10n->l10nReloadMOfile($lang, $cms->lang_dir);
|
||||
}
|
||||
}
|
||||
|
||||
// javascrip translate data as template for auto translate
|
||||
if (!$TEMPLATE_TRANSLATE) {
|
||||
$cms->debug('LANG', 'Load lang: '.$lang.', for page file jsTranslate_'.$lang.'.tpl');
|
||||
$TEMPLATE_TRANSLATE = 'jsTranslate_'.$lang.'.tpl';
|
||||
} else {
|
||||
// we assume we have some fixed set
|
||||
// we must add _<$lang>
|
||||
// if .tpl, put before .tpl
|
||||
// if not .tpl, add _<$lang>.tpl
|
||||
if (strpos($TEMPLATE_TRANSLATE, '.tpl')) {
|
||||
$TEMPLATE_TRANSLATE = str_replace('.tpl', '_'.$lang.'.tpl', $TEMPLATE_TRANSLATE);
|
||||
} else {
|
||||
$TEMPLATE_TRANSLATE .= '_'.$lang.'.tpl';
|
||||
}
|
||||
}
|
||||
// if we can't find it, dump it
|
||||
if (!file_exists($smarty->getTemplateDir()[0].DS.$TEMPLATE_TRANSLATE)) {
|
||||
unset($TEMPLATE_TRANSLATE);
|
||||
}
|
||||
|
||||
// $cms->debug("LANGUAGE", "L: $lang | ".$cms->lang_dir." | MO File: ".$cms->l->mofile);
|
||||
$cms->debug("LANGUAGE", "SL: ".$_SESSION['DEFAULT_CHARSET']." | ".$_SESSION['LANG']." | ".$_SESSION['DEFAULT_LANG']);
|
||||
$cms->debug("TEMPLATE", "P: ".$smarty->getTemplateDir()[0]);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens Schwaighofer
|
||||
* CREATED: 2005/07/12
|
||||
@@ -84,13 +84,21 @@ $cms->DATA['LANG'] = $lang;
|
||||
$cms->DATA['TINYMCE_LANG'] = $lang_short;
|
||||
|
||||
// debug data, if DEBUG flag is on, this data is print out
|
||||
$cms->DEBUG_DATA['debug_error_msg'] = $cms->running_time();
|
||||
$cms->DEBUG_DATA['debug_error_msg'] = $cms->runningTime();
|
||||
$cms->DEBUG_DATA['DEBUG'] = @$DEBUG_TMPL;
|
||||
|
||||
// create main data array
|
||||
$cms->CONTENT_DATA = array_merge($cms->HEADER, $cms->DATA, $cms->DEBUG_DATA);
|
||||
// data is 1:1 mapping (all vars, values, etc)
|
||||
while (list($key, $value) = each($cms->CONTENT_DATA)) {
|
||||
foreach ($cms->CONTENT_DATA as $key => $value) {
|
||||
$smarty->assign($key, $value);
|
||||
}
|
||||
if (is_dir(BASE.TEMPLATES_C)) {
|
||||
$smarty->setCompileDir(BASE.TEMPLATES_C);
|
||||
}
|
||||
if (is_dir(BASE.CACHE)) {
|
||||
$smarty->setCacheDir(BASE.CACHE);
|
||||
}
|
||||
$smarty->display($MASTER_TEMPLATE_NAME, $TEMPLATE.$lang, $TEMPLATE.$lang);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
/********************************************************************
|
||||
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
|
||||
* CREATED: 2003/06/10
|
||||
@@ -24,26 +24,19 @@ extract($_POST, EXTR_SKIP);
|
||||
|
||||
$table_width = 750;
|
||||
// this is for certain CMS modules that set a relative path
|
||||
define(REL_PATH, '');
|
||||
define('REL_PATH', '');
|
||||
|
||||
ob_start();
|
||||
include("config.inc");
|
||||
require 'config.php';
|
||||
// set session name here
|
||||
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
// overrride debug flags
|
||||
if (!DEBUG) {
|
||||
$DEBUG_ALL = 0;
|
||||
$PRINT_ALL = 0;
|
||||
$DB_DEBUG = 0;
|
||||
$ECHO_ALL = 0;
|
||||
// $DEBUG_TMPL = 0;
|
||||
}
|
||||
// set session name here
|
||||
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
||||
// login class
|
||||
require(LIBS."Class.Login.inc");
|
||||
// form generate for edit interface
|
||||
require(LIBS."Class.Form.Generate.inc");
|
||||
// Smarty: and the small extend for l10n calls
|
||||
require(LIBS.'Class.Smarty.Extend.inc');
|
||||
|
||||
// set default lang if not set otherwise
|
||||
if (!$lang) {
|
||||
@@ -52,17 +45,17 @@ if (!$lang) {
|
||||
// should be utf8
|
||||
header("Content-type: text/html; charset=".DEFAULT_ENCODING);
|
||||
ob_end_flush();
|
||||
$login = new login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
$login = new CoreLibs\ACL\Login($DB_CONFIG[LOGIN_DB], $lang);
|
||||
|
||||
// create form class
|
||||
$form = new form($DB_CONFIG[MAIN_DB], $lang);
|
||||
$form->db_exec("SET search_path TO ".LOGIN_DB_SCHEMA);
|
||||
$form = new CoreLibs\Output\Form\Generate($DB_CONFIG[MAIN_DB], $lang);
|
||||
$form->dbExec("SET search_path TO ".LOGIN_DB_SCHEMA);
|
||||
if ($form->mobile_phone) {
|
||||
echo "I am sorry, but this page cannot be viewed by a mobile phone";
|
||||
exit;
|
||||
}
|
||||
// smarty template engine (extended Translation version)
|
||||
$smarty = new SmartyML($lang);
|
||||
$smarty = new CoreLibs\Template\SmartyExtend($lang);
|
||||
|
||||
if (TARGET == 'live' || TARGET == 'remote') {
|
||||
// login
|
||||
@@ -98,7 +91,7 @@ function EditLog($event = '', $data = '')
|
||||
{
|
||||
$q = "INSERT INTO edit_log ";
|
||||
$q .= "(euid, event_date, ip, event, data, page) ";
|
||||
$q .= "VALUES (".$_SESSION['EUID'].", NOW(), '".$_SERVER["REMOTE_ADDR"]."', '".$GLOBALS['form']->db_escape_string($event)."', '".$GLOBALS['form']->db_escape_string($data)."', '".$GLOBALS['form']->get_page_name()."')";
|
||||
$q .= "VALUES (".$_SESSION['EUID'].", NOW(), '".$_SERVER["REMOTE_ADDR"]."', '".$GLOBALS['form']->dbEscapeString($event)."', '".$GLOBALS['form']->dbEscapeString($data)."', '".$GLOBALS['form']->getPageName()."')";
|
||||
}
|
||||
|
||||
// log backend data
|
||||
@@ -112,11 +105,11 @@ $data = array (
|
||||
// log action
|
||||
EditLog('Edit Submit', serialize($data));
|
||||
|
||||
$form->form_procedure_load(${$form->archive_pk_name});
|
||||
$form->form_procedure_new();
|
||||
$form->form_procedure_save();
|
||||
$form->form_procedure_delete();
|
||||
$form->form_procedure_delete_from_element_list($element_list, $remove_name);
|
||||
$form->formProcedureLoad(${$form->archive_pk_name});
|
||||
$form->formProcedureNew();
|
||||
$form->formProcedureSave();
|
||||
$form->formProcedureDelete();
|
||||
$form->formProcedureDeleteFromElementList($element_list, $remove_name);
|
||||
|
||||
// define all needed smarty stuff for the general HTML/page building
|
||||
$HEADER['CSS'] = CSS;
|
||||
@@ -128,7 +121,7 @@ $HEADER['JAVASCRIPT'] = $EDIT_JAVASCRIPT;
|
||||
$DATA['table_width'] = $table_width;
|
||||
|
||||
// write out error / status messages
|
||||
$messages[] = $form->form_error_msg();
|
||||
$messages[] = $form->formPrintMsg();
|
||||
$DATA['form_error_msg'] = $messages;
|
||||
|
||||
// MENU START
|
||||
@@ -144,10 +137,13 @@ $DATA['GROUP_NAME'] = $_SESSION["GROUP_NAME"];
|
||||
$DATA['GROUP_LEVEL'] = $_SESSION["GROUP_LEVEL"];
|
||||
$PAGES = $_SESSION["PAGES"];
|
||||
|
||||
//$form->debug('menu', $form->print_ar($PAGES));
|
||||
//$form->debug('menu', $form->printAr($PAGES));
|
||||
|
||||
// baue nav aus $PAGES ...
|
||||
for ($i = 0; $i < count($PAGES); $i ++) {
|
||||
// build nav from $PAGES ...
|
||||
if (!is_array($PAGES)) {
|
||||
$PAGES = array ();
|
||||
}
|
||||
for ($i = 0, $i_max = count($PAGES); $i < $i_max; $i ++) {
|
||||
if ($PAGES[$i]["menu"] && $PAGES[$i]["online"]) {
|
||||
$menuarray[] = $PAGES[$i];
|
||||
}
|
||||
@@ -172,7 +168,7 @@ for ($i = 1; $i <= count($menuarray); $i ++) {
|
||||
if ($i == 1 || !(($i - 1) % $SPLIT_FACTOR)) {
|
||||
$menu_data[$j]['splitfactor_in'] = 1;
|
||||
}
|
||||
if ($menuarray[($i - 1)]["filename"] == $form->get_page_name()) {
|
||||
if ($menuarray[($i - 1)]["filename"] == $form->getPageName()) {
|
||||
$position = $i - 1;
|
||||
$menu_data[$j]['position'] = 1;
|
||||
} else {
|
||||
@@ -197,112 +193,115 @@ $L_TITLE = $DATA['page_name'];
|
||||
$HEADER['HTML_TITLE'] = ((!$L_TITLE) ? $form->l->__($G_TITLE) : $form->l->__($L_TITLE));
|
||||
// END MENU
|
||||
// LOAD AND NEW
|
||||
$DATA['load'] = $form->form_create_load();
|
||||
$DATA['new'] = $form->form_create_new();
|
||||
$DATA['load'] = $form->formCreateLoad();
|
||||
$DATA['new'] = $form->formCreateNew();
|
||||
// SHOW DATA PART
|
||||
if ($form->yes) {
|
||||
$DATA['form_yes'] = $form->yes;
|
||||
$DATA['form_my_page_name'] = $form->my_page_name;
|
||||
|
||||
// depending on the "get_page_name()" I show different stuff
|
||||
// depending on the "getPageName()" I show different stuff
|
||||
switch ($form->my_page_name) {
|
||||
case "edit_users":
|
||||
$elements[] = $form->form_create_element("login_error_count");
|
||||
$elements[] = $form->form_create_element("login_error_date_last");
|
||||
$elements[] = $form->form_create_element("login_error_date_first");
|
||||
$elements[] = $form->form_create_element("enabled");
|
||||
$elements[] = $form->form_create_element("username");
|
||||
$elements[] = $form->form_create_element("password");
|
||||
$elements[] = $form->form_create_element("password_change_interval");
|
||||
$elements[] = $form->form_create_element("email");
|
||||
$elements[] = $form->form_create_element("last_name");
|
||||
$elements[] = $form->form_create_element("first_name");
|
||||
$elements[] = $form->form_create_element("edit_group_id");
|
||||
$elements[] = $form->form_create_element("edit_access_right_id");
|
||||
$elements[] = $form->form_create_element("strict");
|
||||
$elements[] = $form->form_create_element("locked");
|
||||
$elements[] = $form->form_create_element("admin");
|
||||
$elements[] = $form->form_create_element("debug");
|
||||
$elements[] = $form->form_create_element("db_debug");
|
||||
$elements[] = $form->form_create_element("edit_language_id");
|
||||
$elements[] = $form->form_create_element("edit_scheme_id");
|
||||
$elements[] = $form->form_show_list_table("edit_access_user");
|
||||
$elements[] = $form->formCreateElement("login_error_count");
|
||||
$elements[] = $form->formCreateElement("login_error_date_last");
|
||||
$elements[] = $form->formCreateElement("login_error_date_first");
|
||||
$elements[] = $form->formCreateElement("enabled");
|
||||
$elements[] = $form->formCreateElement("protected");
|
||||
$elements[] = $form->formCreateElement("username");
|
||||
$elements[] = $form->formCreateElement("password");
|
||||
$elements[] = $form->formCreateElement("password_change_interval");
|
||||
$elements[] = $form->formCreateElement("email");
|
||||
$elements[] = $form->formCreateElement("last_name");
|
||||
$elements[] = $form->formCreateElement("first_name");
|
||||
$elements[] = $form->formCreateElement("edit_group_id");
|
||||
$elements[] = $form->formCreateElement("edit_access_right_id");
|
||||
$elements[] = $form->formCreateElement("strict");
|
||||
$elements[] = $form->formCreateElement("locked");
|
||||
$elements[] = $form->formCreateElement("admin");
|
||||
$elements[] = $form->formCreateElement("debug");
|
||||
$elements[] = $form->formCreateElement("db_debug");
|
||||
$elements[] = $form->formCreateElement("edit_language_id");
|
||||
$elements[] = $form->formCreateElement("edit_scheme_id");
|
||||
$elements[] = $form->formCreateElementListTable("edit_access_user");
|
||||
break;
|
||||
case "edit_schemes":
|
||||
$elements[] = $form->form_create_element("enabled");
|
||||
$elements[] = $form->form_create_element("name");
|
||||
$elements[] = $form->form_create_element("header_color");
|
||||
$elements[] = $form->form_create_element("template");
|
||||
$elements[] = $form->formCreateElement("enabled");
|
||||
$elements[] = $form->formCreateElement("name");
|
||||
$elements[] = $form->formCreateElement("header_color");
|
||||
$elements[] = $form->formCreateElement("template");
|
||||
break;
|
||||
case "edit_pages":
|
||||
if (!$form->table_array["edit_page_id"]["value"]) {
|
||||
$q = "DELETE FROM temp_files";
|
||||
$form->db_exec($q);
|
||||
$form->dbExec($q);
|
||||
// gets all files in the current dir ending with .php
|
||||
$crap = exec("ls *.php", $output, $status);
|
||||
// now get all that are NOT in de DB
|
||||
$q = "INSERT INTO temp_files VALUES ";
|
||||
for ($i = 0; $i < count($output); $i ++) {
|
||||
$t_q = "('".$form->db_escape_string($output[$i])."')";
|
||||
$form->db_exec($q.$t_q, 'NULL');
|
||||
$t_q = "('".$form->dbEscapeString($output[$i])."')";
|
||||
$form->dbExec($q.$t_q, 'NULL');
|
||||
}
|
||||
$elements[] = $form->form_create_element("filename");
|
||||
$elements[] = $form->formCreateElement("filename");
|
||||
} else {
|
||||
// show file menu
|
||||
// just show name of file ...
|
||||
$DATA['filename_exist'] = 1;
|
||||
$DATA['filename'] = $form->table_array["filename"]["value"];
|
||||
} // File Name View IF
|
||||
$elements[] = $form->form_create_element("name");
|
||||
// $elements[] = $form->form_create_element("tag");
|
||||
// $elements[] = $form->form_create_element("min_acl");
|
||||
$elements[] = $form->form_create_element("order_number");
|
||||
$elements[] = $form->form_create_element("online");
|
||||
$elements[] = $form->form_create_element("menu");
|
||||
$elements[] = $form->form_show_list_table("edit_query_string");
|
||||
$elements[] = $form->form_create_element("popup");
|
||||
$elements[] = $form->form_create_element("popup_x");
|
||||
$elements[] = $form->form_create_element("popup_y");
|
||||
$elements[] = $form->form_show_reference_table("edit_visible_group");
|
||||
$elements[] = $form->form_show_reference_table("edit_menu_group");
|
||||
$elements[] = $form->formCreateElement("name");
|
||||
// $elements[] = $form->formCreateElement("tag");
|
||||
// $elements[] = $form->formCreateElement("min_acl");
|
||||
$elements[] = $form->formCreateElement("order_number");
|
||||
$elements[] = $form->formCreateElement("online");
|
||||
$elements[] = $form->formCreateElement("menu");
|
||||
$elements[] = $form->formCreateElementListTable("edit_query_string");
|
||||
$elements[] = $form->formCreateElement("popup");
|
||||
$elements[] = $form->formCreateElement("popup_x");
|
||||
$elements[] = $form->formCreateElement("popup_y");
|
||||
$elements[] = $form->formCreateElementReferenceTable("edit_visible_group");
|
||||
$elements[] = $form->formCreateElementReferenceTable("edit_menu_group");
|
||||
break;
|
||||
case "edit_languages":
|
||||
$elements[] = $form->form_create_element("enabled");
|
||||
$elements[] = $form->form_create_element("short_name");
|
||||
$elements[] = $form->form_create_element("long_name");
|
||||
$elements[] = $form->form_create_element("iso_name");
|
||||
$elements[] = $form->formCreateElement("enabled");
|
||||
$elements[] = $form->formCreateElement("short_name");
|
||||
$elements[] = $form->formCreateElement("long_name");
|
||||
$elements[] = $form->formCreateElement("iso_name");
|
||||
break;
|
||||
case "edit_groups":
|
||||
$elements[] = $form->form_create_element("enabled");
|
||||
$elements[] = $form->form_create_element("name");
|
||||
$elements[] = $form->form_create_element("edit_access_right_id");
|
||||
$elements[] = $form->form_create_element("edit_scheme_id");
|
||||
$elements[] = $form->form_show_list_table("edit_page_access");
|
||||
$elements[] = $form->formCreateElement("enabled");
|
||||
$elements[] = $form->formCreateElement("name");
|
||||
$elements[] = $form->formCreateElement("edit_access_right_id");
|
||||
$elements[] = $form->formCreateElement("edit_scheme_id");
|
||||
$elements[] = $form->formCreateElementListTable("edit_page_access");
|
||||
break;
|
||||
case "edit_visible_group":
|
||||
$elements[] = $form->form_create_element("name");
|
||||
$elements[] = $form->form_create_element("flag");
|
||||
$elements[] = $form->formCreateElement("name");
|
||||
$elements[] = $form->formCreateElement("flag");
|
||||
break;
|
||||
case "edit_menu_group":
|
||||
$elements[] = $form->form_create_element("name");
|
||||
$elements[] = $form->form_create_element("flag");
|
||||
$elements[] = $form->form_create_element("order_number");
|
||||
$elements[] = $form->formCreateElement("name");
|
||||
$elements[] = $form->formCreateElement("flag");
|
||||
$elements[] = $form->formCreateElement("order_number");
|
||||
break;
|
||||
case "edit_access":
|
||||
$elements[] = $form->form_create_element("name");
|
||||
$elements[] = $form->form_create_element("color");
|
||||
$elements[] = $form->form_create_element("description");
|
||||
$elements[] = $form->formCreateElement("name");
|
||||
$elements[] = $form->formCreateElement("enabled");
|
||||
$elements[] = $form->formCreateElement("protected");
|
||||
$elements[] = $form->formCreateElement("color");
|
||||
$elements[] = $form->formCreateElement("description");
|
||||
// add name/value list here
|
||||
$elements[] = $form->form_show_list_table("edit_access_data");
|
||||
$elements[] = $form->formCreateElementListTable("edit_access_data");
|
||||
break;
|
||||
default:
|
||||
print "[No valid page definition given]";
|
||||
break;
|
||||
}
|
||||
// $form->debug('edit', "Elements: <pre>".$form->print_ar($elements));
|
||||
// $form->debug('edit', "Elements: <pre>".$form->printAr($elements));
|
||||
$DATA['elements'] = $elements;
|
||||
$DATA['hidden'] = $form->form_create_hidden_fields();
|
||||
$DATA['save_delete'] = $form->form_create_save_delete();
|
||||
$DATA['hidden'] = $form->formCreateHiddenFields();
|
||||
$DATA['save_delete'] = $form->formCreateSaveDelete();
|
||||
}
|
||||
|
||||
// debug data, if DEBUG flag is on, this data is print out
|
||||
@@ -311,14 +310,19 @@ $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->assign('popup_page', 'mt_popup_'.$body_part.'.tpl');
|
||||
|
||||
if (is_dir(BASE.TEMPLATES_C)) {
|
||||
$smarty->setCompileDir(BASE.TEMPLATES_C);
|
||||
}
|
||||
if (is_dir(BASE.CACHE)) {
|
||||
$smarty->setCacheDir(BASE.CACHE);
|
||||
}
|
||||
$smarty->display('edit_body.tpl');
|
||||
|
||||
// debug output
|
||||
echo $login->print_error_msg();
|
||||
echo $form->print_error_msg();
|
||||
echo $login->printErrorMsg();
|
||||
echo $form->printErrorMsg();
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_access = array (
|
||||
"table_array" => array (
|
||||
"edit_access_id" => array (
|
||||
@@ -28,6 +28,26 @@ $edit_access = array (
|
||||
"error_check" => "custom",
|
||||
"error_regex" => "/[\dA-Fa-f]{6}/",
|
||||
"error_example" => "F6A544"
|
||||
),
|
||||
"enabled" => array (
|
||||
"value" => $GLOBALS["enabled"],
|
||||
"output_name" => "Enabled",
|
||||
"type" => "binary",
|
||||
"int" => 1,
|
||||
"element_list" => array (
|
||||
"1" => "Yes",
|
||||
"0" => "No"
|
||||
)
|
||||
),
|
||||
"protected" => array (
|
||||
"value" => $GLOBALS["protected"],
|
||||
"output_name" => "Protected",
|
||||
"type" => "binary",
|
||||
"int" => 1,
|
||||
"element_list" => array (
|
||||
"1" => "Yes",
|
||||
"0" => "No"
|
||||
)
|
||||
)
|
||||
),
|
||||
"table_name" => "edit_access",
|
||||
@@ -74,3 +94,5 @@ $edit_access = array (
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_groups = array (
|
||||
"table_array" => array (
|
||||
"edit_group_id" => array (
|
||||
@@ -97,3 +97,5 @@ $edit_groups = array (
|
||||
) // edit pages ggroup
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_languages=array (
|
||||
"table_array" => array (
|
||||
"edit_language_id" => array (
|
||||
@@ -70,3 +70,5 @@ $edit_languages=array (
|
||||
),
|
||||
"table_name" => "edit_language"
|
||||
);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_menu_group = array (
|
||||
"table_array" => array (
|
||||
"edit_menu_group_id" => array (
|
||||
@@ -35,3 +35,5 @@ $edit_menu_group = array (
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_pages = array (
|
||||
"table_array" => array (
|
||||
"edit_page_id" => array (
|
||||
@@ -26,7 +26,7 @@ $edit_pages = array (
|
||||
"int" => 1,
|
||||
"order" => 1
|
||||
),
|
||||
/* "flag" => array (
|
||||
/* "flag" => array (
|
||||
"value" => $GLOBALS["flag"],
|
||||
"output_name" => "Page Flag",
|
||||
"type" => "drop_down_array",
|
||||
@@ -175,3 +175,5 @@ $edit_pages = array (
|
||||
) // query_string element list
|
||||
) // element list
|
||||
);
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_schemes = array (
|
||||
"table_array" => array (
|
||||
"edit_scheme_id" => array (
|
||||
@@ -53,3 +53,4 @@ $edit_schemes = array (
|
||||
)
|
||||
); // main array
|
||||
|
||||
# __END__
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$edit_users = array (
|
||||
"table_array" => array (
|
||||
"edit_user_id" => array (
|
||||
@@ -29,6 +29,7 @@ $edit_users = array (
|
||||
)
|
||||
),
|
||||
// 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_change_interval' => array (
|
||||
'value' => $GLOBALS['password_change_interval'],
|
||||
'output_name' => 'Password change interval',
|
||||
@@ -38,7 +39,6 @@ $edit_users = array (
|
||||
'size' => 5, // make it 5 chars long
|
||||
'length' => 5
|
||||
),
|
||||
// password reset force interval, if set, user needs to reset password after X time period
|
||||
"enabled" => array (
|
||||
"value" => $GLOBALS["enabled"],
|
||||
"output_name" => "Enabled",
|
||||
@@ -163,10 +163,15 @@ $edit_users = array (
|
||||
"type" => "view",
|
||||
"empty" => "-"
|
||||
),
|
||||
// planned delete lock flag
|
||||
"protected" => array (
|
||||
"value" => $GLOBALS["protected"],
|
||||
"int" => 1
|
||||
"output_name" => "Protected",
|
||||
"type" => "binary",
|
||||
"int" => 1,
|
||||
"element_list" => array (
|
||||
"1" => "Yes",
|
||||
"0" => "No"
|
||||
)
|
||||
)
|
||||
),
|
||||
"load_query" => "SELECT edit_user_id, username, enabled, debug, db_debug, strict, locked, login_error_count FROM edit_user ORDER BY username",
|
||||
@@ -251,3 +256,5 @@ $edit_users = array (
|
||||
) // edit pages ggroup
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
32
www/includes/table_arrays/array_edit_visible_group.inc
Normal file
32
www/includes/table_arrays/array_edit_visible_group.inc
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
$edit_visible_group = array (
|
||||
"table_array" => array (
|
||||
"edit_visible_group_id" => array (
|
||||
"value" => $GLOBALS["edit_visible_group_id"],
|
||||
"type" => "hidden",
|
||||
"pk" => 1
|
||||
),
|
||||
"name" => array (
|
||||
"value" => $GLOBALS["name"],
|
||||
"output_name" => $this->l->__("Group name"),
|
||||
"mandatory" => 1,
|
||||
"type" => "text"
|
||||
),
|
||||
"flag" => array (
|
||||
"value" => $GLOBALS["flag"],
|
||||
"output_name" => $this->l->__("Flag"),
|
||||
"mandatory" => 1,
|
||||
"type" => "text",
|
||||
"error_check" => "alphanumeric|unique"
|
||||
)
|
||||
),
|
||||
"table_name" => "edit_visible_group",
|
||||
"load_query" => "SELECT edit_visible_group_id, name FROM edit_visible_group ORDER BY name",
|
||||
"show_fields" => array (
|
||||
array (
|
||||
"name" => "name"
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
# __END__
|
||||
0
www/layout/admin/default/cache/index.php
vendored
Normal file
0
www/layout/admin/default/cache/index.php
vendored
Normal file
@@ -272,7 +272,7 @@ input[type="text"]:focus, textarea:focus, select:focus {
|
||||
}
|
||||
|
||||
/* spacer for line break in float elements */
|
||||
.spacer {
|
||||
.clr, .spacer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
@@ -367,6 +367,30 @@ input[type="text"]:focus, textarea:focus, select:focus {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
/* NEW VERSION with CSS key frame animation */
|
||||
.progress {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: rgba(255, 255, 255, 0.6);
|
||||
border: 20px solid rgba(255, 255, 255 ,0.25);
|
||||
border-left-color: rgba(3, 155, 229 ,1);
|
||||
border-top-color: rgba(3, 155, 229 ,1);
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
animation: rotate 600ms infinite linear;
|
||||
/* align */
|
||||
left: 0;
|
||||
top: 0;
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
}
|
||||
/* Animation for above progress */
|
||||
@keyframes rotate {
|
||||
to {
|
||||
transform: rotate(1turn)
|
||||
}
|
||||
}
|
||||
|
||||
/* ***************************** ADMIN EDIT INTERFACE COLORS ********************************* */
|
||||
/* set all colors here and not in the config file */
|
||||
/* for edit interface */
|
||||
|
||||
88
www/layout/admin/default/css/file-uploader/fileuploader.css
Normal file
88
www/layout/admin/default/css/file-uploader/fileuploader.css
Normal file
@@ -0,0 +1,88 @@
|
||||
.qq-uploader {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.qq-upload-button {
|
||||
display: block; /* or inline-block */
|
||||
width: 105px;
|
||||
padding: 7px 0;
|
||||
text-align: center;
|
||||
background: #880000;
|
||||
border-bottom: 1px solid #ddd;
|
||||
color: #fff;
|
||||
}
|
||||
.qq-upload-button-hover {
|
||||
background: #cc0000;
|
||||
}
|
||||
.qq-upload-button-focus {
|
||||
outline: 1px dotted black;
|
||||
}
|
||||
|
||||
.qq-upload-drop-area {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: 70px;
|
||||
z-index: 2;
|
||||
background: #FF9797;
|
||||
text-align: center;
|
||||
}
|
||||
.qq-upload-drop-area span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
margin-top: -8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.qq-upload-drop-area-active {
|
||||
background:
|
||||
#FF7171;
|
||||
}
|
||||
|
||||
.qq-upload-list {
|
||||
margin:
|
||||
15px 35px;
|
||||
padding: 0;
|
||||
list-style: disc;
|
||||
}
|
||||
.qq-upload-list li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 15px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.qq-upload-file, .qq-upload-spinner, .qq-upload-size, .qq-upload-cancel, .qq-upload-failed-text {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.qq-upload-file {
|
||||
}
|
||||
.qq-upload-spinner {
|
||||
display: inline-block;
|
||||
/*background: url("loading.gif");*/
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
vertical-align: text-bottom;
|
||||
/* non gif css rotate */
|
||||
background: rgba(255, 255, 255, 0.6);
|
||||
border: 2px solid rgba(255, 255, 255, 0.25);
|
||||
border-left-color: rgba(102, 102, 102 ,1);
|
||||
border-right-color: rgba(102, 102, 102 ,1);
|
||||
border-radius: 50%;
|
||||
animation: rotate 600ms infinite linear;
|
||||
}
|
||||
|
||||
.qq-upload-size, .qq-upload-cancel {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.qq-upload-failed-text {
|
||||
display: none;
|
||||
}
|
||||
.qq-upload-fail .qq-upload-failed-text {
|
||||
display: inline;
|
||||
}
|
||||
0
www/layout/admin/default/css/index.php
Normal file
0
www/layout/admin/default/css/index.php
Normal file
0
www/layout/admin/default/images/index.php
Normal file
0
www/layout/admin/default/images/index.php
Normal file
0
www/layout/admin/default/index.php
Normal file
0
www/layout/admin/default/index.php
Normal file
@@ -2,6 +2,8 @@
|
||||
code is taken and adapted from dokuwiki
|
||||
*/
|
||||
|
||||
/* jshint esversion: 6 */
|
||||
|
||||
/**
|
||||
* Some browser detection
|
||||
*/
|
||||
@@ -207,3 +209,240 @@ function formatBytes(bytes)
|
||||
|
||||
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
||||
}
|
||||
|
||||
// *** DOM MANAGEMENT FUNCTIONS
|
||||
// METHOD: cel [create element]
|
||||
// PARAMS: tag: must set tag (div, span, etc)
|
||||
// id: optional set for id, if input, select will be used for name
|
||||
// content: text content inside, is skipped if sub elements exist
|
||||
// css: array for css tags
|
||||
// options: anything else (value, placeholder, OnClick, style)
|
||||
// RETURN: object
|
||||
// DESC : creates object for DOM element creation flow
|
||||
const cel = (tag, id = '', content = '', css = [], options = {}) =>
|
||||
element = {
|
||||
tag: tag,
|
||||
id: id,
|
||||
name: options.name, // override name if set [name gets ignored in tree build anyway]
|
||||
content: content,
|
||||
css: css,
|
||||
options: options,
|
||||
sub: []
|
||||
};
|
||||
|
||||
// METHOD: ael [attach element]
|
||||
// PARAMS: base: object where to attach/search
|
||||
// attach: the object to be attached
|
||||
// id: optional id, if given search in base for this id and attach there
|
||||
// RETURN: "none", technically there is no return needed
|
||||
// DESC : attach a cel created object to another to create a basic DOM tree
|
||||
function ael(base, attach, id = '')
|
||||
{
|
||||
if (id) {
|
||||
// base id match already
|
||||
if (base.id == id) {
|
||||
base.sub.push(attach);
|
||||
} else {
|
||||
// sub check
|
||||
if (base.sub.length > 0) {
|
||||
base.sub.each(function(t) {
|
||||
// recursive call to sub element
|
||||
ael(t, attach, id);
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
base.sub.push(attach);
|
||||
}
|
||||
return base;
|
||||
}
|
||||
|
||||
// METHOD: aelx [attach n elements]
|
||||
// PARAMS: base: object to where we attach the elements
|
||||
// attach 1..n: attach directly to the base element those attachments
|
||||
// RETURN: "none", technically there is no return needed
|
||||
// DESC : directly attach n elements to one master base element
|
||||
// this type does not support attach with optional id
|
||||
function aelx(base, ...attach)
|
||||
{
|
||||
attach.each(function(t) {
|
||||
base.sub.push(Object.assign({}, t));
|
||||
});
|
||||
return base;
|
||||
}
|
||||
|
||||
// METHOD: rel [rese element]
|
||||
// PARAMS: cel created element
|
||||
// RETURN: "none", is self change, but returns base.sub
|
||||
// DESC : resets the sub elements of the base element given
|
||||
const rel = (base) => base.sub = [];
|
||||
|
||||
// METHOD: rcssel [remove a css from the element]
|
||||
// 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)
|
||||
{
|
||||
let css_index = element.css.indexOf(css);
|
||||
if (css_index > -1) {
|
||||
element.css.splice(css_index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
let css_index = element.css.indexOf(css);
|
||||
if (css_index == -1) {
|
||||
element.css.push(css);
|
||||
}
|
||||
}
|
||||
|
||||
// METHOD: scssel
|
||||
// PARAMS: element, style to remove, style to add
|
||||
// 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)
|
||||
{
|
||||
rcssel(element, rcss);
|
||||
acssel(element, acss);
|
||||
}
|
||||
|
||||
// METHOD: phfo [produce html from object]
|
||||
// PARAMS: object tree with dom element declarations
|
||||
// RETURN: HTML string that can be used as innerHTML
|
||||
// DESC : parses the object tree created with cel/ael
|
||||
// and converts it into an HTML string that can
|
||||
// be inserted into the page
|
||||
function phfo(tree)
|
||||
{
|
||||
// holds the elements
|
||||
let content = [];
|
||||
// main part line
|
||||
let line = '<' + tree.tag;
|
||||
// first id, if set
|
||||
if (tree.id) {
|
||||
line += ' id="' + tree.id + '"';
|
||||
// if anything input (input, textarea, select then add name too)
|
||||
if (['input', 'textarea', 'select'].includes(tree.tag)) {
|
||||
line += ' name="' + (tree.name ? tree.name : tree.id) + '"';
|
||||
}
|
||||
}
|
||||
// second CSS
|
||||
if (tree.css.length > 0) {
|
||||
line += ' class="';
|
||||
tree.css.each(function(t) {
|
||||
line += t + ' ';
|
||||
});
|
||||
// strip last space
|
||||
line = line.slice(0, -1);
|
||||
line += '"';
|
||||
}
|
||||
// options is anything key = "data"
|
||||
if (tree.options) {
|
||||
// ignores id, name, class as key
|
||||
for (const [key, item] of Object.entries(tree.options)) {
|
||||
if (!['id', 'name', 'class'].includes(key)) {
|
||||
line += ' ' + key + '="' + item + '"';
|
||||
}
|
||||
}
|
||||
}
|
||||
// finish open tag
|
||||
line += '>';
|
||||
// push finished line
|
||||
content.push(line);
|
||||
// dive into sub tree to attach sub nodes
|
||||
// NOTES: we can have content (text) AND sub nodes at the same level
|
||||
// CONTENT (TEXT) takes preference over SUB NODE in order
|
||||
if (tree.sub.length > 0) {
|
||||
if (tree.content) {
|
||||
content.push(tree.content);
|
||||
}
|
||||
tree.sub.each(function(t) {
|
||||
content.push(phfo(t));
|
||||
});
|
||||
} else if (tree.content) {
|
||||
content.push(tree.content);
|
||||
}
|
||||
// if not input close
|
||||
if (tree.tag != 'input') {
|
||||
content.push('</' + tree.tag + '>');
|
||||
}
|
||||
// combine to string
|
||||
return content.join('');
|
||||
}
|
||||
|
||||
// BLOCK: html wrappers for quickly creating html data blocks
|
||||
// METHOD: html_options
|
||||
// PARAMS: name/id, array for the options, selected item uid
|
||||
// options_only [def false] if this is true, it will not print the select part
|
||||
// return_string [def false]: return as string and not as element
|
||||
// sort [def '']: if empty as is, else allowed 'keys', 'values' all others are ignored
|
||||
// RETURN: html with build options block
|
||||
// DESC : creates an select/options drop down block.
|
||||
// the array needs to be key -> value format. key is for the option id and value is for the data output
|
||||
function html_options(name, data, selected = '', options_only = false, return_string = false, sort = '')
|
||||
{
|
||||
let content = [];
|
||||
let element_select;
|
||||
let element_option;
|
||||
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);
|
||||
}
|
||||
}
|
||||
// if with select part, convert to text
|
||||
if (!options_only) {
|
||||
if (return_string) {
|
||||
content.push(phfo(element_select));
|
||||
return content.join('');
|
||||
} else {
|
||||
return element_select;
|
||||
}
|
||||
} else {
|
||||
// strip select part
|
||||
if (return_string) {
|
||||
element_select.sub.each(function(t) {
|
||||
content.push(phfo(t));
|
||||
});
|
||||
return content.join('');
|
||||
} else {
|
||||
return element_select.sub;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* END */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user