Base transfer to namespace complete

All libraries have been transformed to namespace layout
This commit is contained in:
Clemens Schwaighofer
2018-03-23 19:10:58 +09:00
parent 5474ae2dda
commit 9086196f7d
22 changed files with 2262 additions and 1858 deletions

View File

@@ -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";

View File

@@ -1,13 +1,21 @@
#!/bin/bash
OIFS=${IFS};
class_file="Class.Basic.inc";
tmp_file="../../4dev/tmp/tmp.comp";
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}";
cat "${class_file}" | grep "WAS" -B 1 | while read line;
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");
found=$(echo "${line}" | sed -e 's/^[ \t]*//' | grep "METHOD:");
if [ -n "${found}" ];
then
method=$(echo "${line}" | cut -d " " -f 3);
@@ -16,7 +24,7 @@ do
if [ -n "${method}" ];
then
# the full new call
new_function_call_full=$(grep "${method}(" Class.Basic.inc | grep "function" | sed -e 's/^[ \t]*//');
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)
@@ -37,26 +45,28 @@ do
fi;
fi;
# if this is a WAS
was=$(echo "${line}" | sed -e 's/^[ \t]*//' | grep "WAS" | tr -s " ");
was=$(echo "${line}" | sed -e 's/^[ \t]*//' | grep "WAS :" | tr -s " ");
if [ -n "${was}" ];
then
old_function_call=$(echo "${was}" | cut -d " " -f 3)
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}"\t\$this->debug('DEPRECATED CALL', __FUNCTION);\n";
new_call=${new_call}"\t\$this->${new_function_call}(${old_function_call_params});\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: {";
echo "3B RPL CALL: \$this->debug('DEPRECATED CALL', __FUNCTION);";
echo "3B RPL CALL: ${new_function_call}(${old_function_call_params});";
echo "3B RPL CALL: }";
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};
IFS=${OIFS};
# __END__

View File

@@ -28,22 +28,15 @@ define(REL_PATH, '');
ob_start();
include("config.inc");
// 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 = new CoreLibs\Output\Form\Generate($DB_CONFIG[MAIN_DB], $lang);
$form->db_exec("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->formErrorMsg();
$DATA['form_error_msg'] = $messages;
// MENU START
@@ -172,7 +165,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,42 +190,42 @@ $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("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->formShowListTable("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"]) {
@@ -243,57 +236,57 @@ if ($form->yes) {
// 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->formShowListTable("edit_query_string");
$elements[] = $form->formCreateElement("popup");
$elements[] = $form->formCreateElement("popup_x");
$elements[] = $form->formCreateElement("popup_y");
$elements[] = $form->formShowReferenceTable("edit_visible_group");
$elements[] = $form->formShowReferenceTable("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->formShowListTable("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("color");
$elements[] = $form->formCreateElement("description");
// add name/value list here
$elements[] = $form->form_show_list_table("edit_access_data");
$elements[] = $form->formShowListTable("edit_access_data");
break;
default:
print "[No valid page definition given]";
@@ -301,8 +294,8 @@ if ($form->yes) {
}
// $form->debug('edit', "Elements: <pre>".$form->print_ar($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
@@ -315,10 +308,10 @@ while (list($key, $value) = each($CONTENT_DATA)) {
$smarty->assign($key, $value);
}
// $smarty->assign('popup_page', 'mt_popup_'.$body_part.'.tpl');
$smarty->display('edit_body.tpl');
// debug output
echo $login->print_error_msg();
echo $form->print_error_msg();
echo $login->printErrorMsg();
echo $form->printErrorMsg();
# __END__

View File

@@ -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
**********************************************************************/
/********************************************************************
* 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');
include("config.inc");
// 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();
?>

View File

@@ -1,5 +1,10 @@
<?php
$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();
@@ -10,11 +15,17 @@ DEFINE('SET_SESSION_NAME', EDIT_SESSION_NAME);
echo "CONFIG: ".CONFIG."<br>ROOT: ".ROOT."<br>BASE: ".BASE."<br>";
$lang = 'en_utf8';
$base = new CoreLibs\Basic($DB_CONFIG[MAIN_DB]);
$base = new CoreLibs\Admin\Backend($DB_CONFIG[MAIN_DB], $lang);
print "ByteStringFormat: ".$base->ByteStringFormat(1234567.12)."<br>";
print "byteStringFormat: ".$base->byteStringFormat(1234567.12)."<br>";
print "get_page_name: ".$base->get_page_name()."<br>";
print "getPageName: ".$base->getPageName()."<br>";
print "DB Info: ".$base->dbInfo(1);
ob_end_flush();
print $base->printErrorMsg();
# __END__

View File

@@ -57,10 +57,9 @@
* 2000-06-01: created basic idea and functions
*********************************************************************/
// try to include file from LIBS path, or from normal path
_spl_autoload('Class.DB.IO.inc');
namespace CoreLibs\ACL;
class login extends db_io
class Login extends \CoreLibs\DB\IO
{
private $euid; // the user id var
private $permission_okay = 0; // is set to one if login okay, or EUID is set and user is okay to access this page
@@ -100,14 +99,12 @@ class login extends db_io
exit;
}
// get the language sub class & init it
_spl_autoload('Class.l10n.inc');
$this->l = new l10n($lang);
$this->l = new \CoreLibs\Language\L10n($lang);
// if we have a search path we need to set it, to use the correct DB to login
// check what schema to use. if there is a login schema use this, else check if there is a schema set in the config, or fall back to DB_SCHEMA if this exists, if this also does not exists use public schema
$SCHEMA = defined('LOGIN_DB_SCHEMA') ? LOGIN_DB_SCHEMA : ($db_config['db_schema'] ? $db_config['db_schema'] : (defined('DB_SCHEMA') ? DB_SCHEMA : 'public'));
$this->db_exec("SET search_path TO ".$SCHEMA);
$this->dbExec("SET search_path TO ".$SCHEMA);
$this->euid = array_key_exists('EUID', $_SESSION) ? $_SESSION['EUID'] : 0; // if there is none, there is none, saves me POST/GET check
// get login vars, are so, can't be changed
// prepare
@@ -174,7 +171,7 @@ class login extends db_io
$_SESSION['DEFAULT_ACL_LIST'] = array ();
// read the current edit_access_right list into an array
$q = "SELECT level, type, name FROM edit_access_right WHERE level >= 0 ORDER BY level";
while ($res = $this->db_return($q)) {
while ($res = $this->dbReturn($q)) {
// level to description format (numeric)
$this->default_acl_list[$res['level']] = array (
'type' => $res['type'],
@@ -185,19 +182,19 @@ class login extends db_io
$_SESSION['DEFAULT_ACL_LIST'] = $this->default_acl_list;
// if username & password & !$euid start login
$this->login_login_user();
$this->loginLoginUser();
// checks if $euid given check if user is okay for that side
$this->login_check_permissions();
$this->loginCheckPermissions();
// logsout user
$this->login_logout_user();
$this->loginLogoutUser();
// if the password change flag is okay, run the password change method
if ($this->password_change) {
$this->login_password_change();
$this->loginPasswordChange();
}
// if !$euid || permission not okay, print login screan
echo $this->login_print_login();
echo $this->loginPrintLogin();
// closing all connections, depending on error status, exit
if (!$this->login_close_class()) {
if (!$this->loginCloseClass()) {
// do not go anywhere, quit processing here
// do something with possible debug data?
if (TARGET == 'live' || TARGET == 'remote') {
@@ -206,14 +203,14 @@ class login extends db_io
$this->echo_output_all = 0;
$this->print_output_all = DEBUG ? 1 : 0;
}
$status_msg = $this->print_error_msg();
$status_msg = $this->printErrorMsg();
if ($this->echo_output_all) {
echo $status_msg;
}
exit;
}
// set acls for this user/group and this page
$this->login_set_acl();
$this->loginSetAcl();
}
// METHOD: _login
@@ -225,11 +222,12 @@ class login extends db_io
parent::__destruct();
}
// METHOD: login_login_user
// METHOD: loginLoginUser
// WAS : login_login_user
// PARAMS: none
// RETURN: none
// DESC : if user pressed login button this script is called, but only if there is no preview euid set
private function login_login_user()
private function loginLoginUser()
{
// have to get the global stuff here for setting it later
if (!$this->euid && $this->login) {
@@ -253,7 +251,7 @@ class login extends db_io
$q .= "eg.edit_access_right_id = eareg.edit_access_right_id AND ";
// password match is done in script, against old plain or new blowfish encypted
$q .= "(LOWER(username) = '".strtolower($this->username)."') ";
$res = $this->db_return($q);
$res = $this->dbReturn($q);
// username is wrong, but we throw for wrong username and wrong password the same error
if (!$this->cursor_ext[md5($q)]["num_rows"]) {
$this->login_error = 1010;
@@ -280,13 +278,24 @@ class login extends db_io
} elseif ($res['locked']) {
// user is locked, either set or auto set
$this->login_error = 105;
} elseif ((preg_match("/^\\$2(a|y)\\$/", $res['password']) && CRYPT_BLOWFISH != 1) || (preg_match("/^\\$1\\$/", $res['password']) && CRYPT_MD5 != 1) || (preg_match("/^\\$[0-9A-Za-z.]{12}$/", $res['password']) && CRYPT_STD_DES != 1)) {
} elseif ((preg_match("/^\\$2(a|y)\\$/", $res['password']) && CRYPT_BLOWFISH != 1) ||
(preg_match("/^\\$1\\$/", $res['password']) && CRYPT_MD5 != 1) ||
(preg_match("/^\\$[0-9A-Za-z.]{12}$/", $res['password']) && CRYPT_STD_DES != 1)
) {
// this means password cannot be decrypted because of missing crypt methods
$this->login_error = 9999;
} elseif ((preg_match("/^\\$2(a|y)\\$/", $res['password']) || preg_match("/^\\$1\\$/", $res['password']) || preg_match("/^\\$[0-9A-Za-z.]{12}$/", $res['password'])) && !$this->verifyCryptString($this->password, $res['password'])) {
} elseif ((preg_match("/^\\$2(a|y)\\$/", $res['password']) ||
preg_match("/^\\$1\\$/", $res['password']) ||
preg_match("/^\\$[0-9A-Za-z.]{12}$/", $res['password'])) &&
!$this->verifyCryptString($this->password, $res['password'])
) {
// check passwword as crypted, $2a$ or $2y$ is blowfish start, $1$ is MD5 start, $\w{12} is standard DES
$this->login_error = 1011;
} elseif (!preg_match("/^\\$2(a|y)\\$/", $res['password']) && !preg_match("/^\\$1\\$/", $res['password']) && !preg_match("/^\\$[0-9A-Za-z.]{12}$/", $res['password']) && $res['password'] != $this->password) {
} elseif (!preg_match("/^\\$2(a|y)\\$/", $res['password']) &&
!preg_match("/^\\$1\\$/", $res['password']) &&
!preg_match("/^\\$[0-9A-Za-z.]{12}$/", $res['password']) &&
$res['password'] != $this->password
) {
// check old plain password, non case sensitive
$this->login_error = 1012;
} else {
@@ -294,7 +303,7 @@ class login extends db_io
// set class var and session var
$_SESSION["EUID"] = $this->euid = $res["edit_user_id"];
// check if user is okay
$this->login_check_permissions();
$this->loginCheckPermissions();
if (!$this->login_error) {
// now set all session vars and read page permissions
$GLOBALS["DEBUG_ALL"] = $_SESSION["DEBUG_ALL"] = $res["debug"];
@@ -314,7 +323,7 @@ class login extends db_io
// reset any login error count for this user
if ($res['login_error_count'] > 0) {
$q = "UPDATE edit_user SET login_error_count = 0, login_error_date_last = NULL, login_error_date_first = NULL WHERE edit_user_id = ".$res['edit_user_id'];
$this->db_exec($q);
$this->dbExec($q);
}
$pages = array();
$edit_page_ids = array();
@@ -324,7 +333,7 @@ class login extends db_io
$q .= "WHERE ep.edit_page_id = epa.edit_page_id AND ear.edit_access_right_id = epa.edit_access_right_id ";
$q .= "AND epa.enabled = 1 AND epa.edit_group_id = ".$res["edit_group_id"]." ";
$q .= "ORDER BY ep.order_number";
while ($res = $this->db_return($q)) {
while ($res = $this->dbReturn($q)) {
// page id array for sub data readout
$edit_page_ids[] = $res['edit_page_id'];
// create the array for pages
@@ -348,22 +357,26 @@ class login extends db_io
} // for each page
// get the visible groups for all pages and write them to the pages
$_edit_page_id = 0;
$q = "SELECT epvg.edit_page_id, name, flag FROM edit_visible_group evp, edit_page_visible_group epvg WHERE evp.edit_visible_group_id = epvg.edit_visible_group_id AND epvg.edit_page_id IN (".join(', ', $edit_page_ids).") ORDER BY epvg.edit_page_id";
while ($res = $this->db_return($q)) {
$q = "SELECT epvg.edit_page_id, name, flag ";
$q .= "FROM edit_visible_group evp, edit_page_visible_group epvg ";
$q .= "WHERE evp.edit_visible_group_id = epvg.edit_visible_group_id AND epvg.edit_page_id IN (".join(', ', $edit_page_ids).") ";
$q .= "ORDER BY epvg.edit_page_id";
while ($res = $this->dbReturn($q)) {
if ($res['edit_page_id'] != $_edit_page_id) {
// search the pos in the array push
$pos = $this->array_search_recursive($res['edit_page_id'], $pages, 'edit_page_id');
$pos = $this->arraySearchRecursive($res['edit_page_id'], $pages, 'edit_page_id');
$_edit_page_id = $res['edit_page_id'];
}
$pages[$pos[0]]['visible'][$res['name']] = $res['flag'];
}
// get the same for the query strings
$_edit_page_id = 0;
$q = "SELECT eqs.edit_page_id, name, value, dynamic FROM edit_query_string eqs WHERE enabled = 1 AND edit_page_id IN (".join(', ', $edit_page_ids).") ORDER BY eqs.edit_page_id";
while ($res = $this->db_return($q)) {
$q = "SELECT eqs.edit_page_id, name, value, dynamic FROM edit_query_string eqs ";
$q .= "WHERE enabled = 1 AND edit_page_id IN (".join(', ', $edit_page_ids).") ORDER BY eqs.edit_page_id";
while ($res = $this->dbReturn($q)) {
if ($res['edit_page_id'] != $_edit_page_id) {
// search the pos in the array push
$pos = $this->array_search_recursive($res['edit_page_id'], $pages, 'edit_page_id');
$pos = $this->arraySearchRecursive($res['edit_page_id'], $pages, 'edit_page_id');
$_edit_page_id = $res['edit_page_id'];
}
$pages[$pos[0]]['query'][] = array (
@@ -378,16 +391,17 @@ class login extends db_io
// load the edit_access user rights
$q = "SELECT ea.edit_access_id, level, type, ea.name, ea.color, ea.uid, edit_default ";
$q .= "FROM edit_access_user eau, edit_access_right ear, edit_access ea ";
$q .= "WHERE eau.edit_access_id = ea.edit_access_id AND eau.edit_access_right_id = ear.edit_access_right_id AND eau.enabled = 1 AND edit_user_id = ".$this->euid." ";
$q .= "WHERE eau.edit_access_id = ea.edit_access_id AND eau.edit_access_right_id = ear.edit_access_right_id ";
$q .= "AND eau.enabled = 1 AND edit_user_id = ".$this->euid." ";
$q .= "ORDER BY ea.name";
$unit_access = array();
$eauid = array();
$unit_acl = array();
while ($res = $this->db_return($q)) {
while ($res = $this->dbReturn($q)) {
// read edit access data fields and drop them into the unit access array
$q_sub ="SELECT name, value FROM edit_access_data WHERE enabled = 1 AND edit_access_id = ".$res['edit_access_id'];
$ea_data = array ();
while ($res_sub = $this->db_return($q_sub)) {
while ($res_sub = $this->dbReturn($q_sub)) {
$ea_data[$res_sub['name']] = $res_sub['value'];
}
// build master unit array
@@ -419,8 +433,10 @@ class login extends db_io
$login_error_date_first = ', login_error_date_first = NOW()';
}
// update login error count for this user
$q = "UPDATE edit_user SET login_error_count = login_error_count + 1, login_error_date_last = NOW() $login_error_date_first WHERE edit_user_id = ".$res['edit_user_id'];
$this->db_exec($q);
$q = "UPDATE edit_user ";
$q .= "SET login_error_count = login_error_count + 1, login_error_date_last = NOW() $login_error_date_first ";
$q .= "WHERE edit_user_id = ".$res['edit_user_id'];
$this->dbExec($q);
// totally lock the user if error max is reached
if ($res['login_error_count'] + 1 > $this->max_login_error_count) {
// do some alert reporting in case this error is too big
@@ -441,18 +457,19 @@ class login extends db_io
} // if he pressed login at least and is not yet loggined in
}
// METHOD: login_check_permission
// METHOD: loginCheckPermissions
// WAS : login_check_permission
// PARAMS: none
// RETUNR none
// DESC : for every page the user access this script checks if he is allowed to do so
public function login_check_permissions()
public function loginCheckPermissions()
{
if ($this->euid && $this->login_error != 103) {
$q = "SELECT filename ";
$q .= "FROM edit_page ep, edit_page_access epa, edit_group eg, edit_user eu ";
$q .= "WHERE ep.edit_page_id = epa.edit_page_id AND eg.edit_group_id = epa.edit_group_id AND eg.edit_group_id = eu.edit_group_id ";
$q .= "AND eu.edit_user_id = ".$this->euid." AND filename = '".$this->page_name."' AND eg.enabled = 1 AND epa.enabled = 1";
$res = $this->db_return_row($q);
$res = $this->dbReturnRow($q);
// unset mem limit if debug is set to 1
// if (($GLOBALS["DEBUG_ALL"] || $GLOBALS["DB_DEBUG"] || $_SESSION["DEBUG_ALL"] || $_SESSION["DB_DEBUG"]) && ini_get('memory_limit') != -1)
// ini_set('memory_limit', -1);
@@ -467,11 +484,12 @@ class login extends db_io
return $this->permission_okay;
}
// METHOD: login_logout_user
// METHOD: loginLogoutUser
// WAS : login_logout_user
// PARAMS: none
// RETURN: none
// DESC : if a user pressed on logout, destroyes session and unsets all global vars
public function login_logout_user()
public function loginLogoutUser()
{
if ($this->logout || $this->login_error) {
// unregister and destroy session vars
@@ -495,7 +513,8 @@ class login extends db_io
}
}
// METHOD: login_set_acl
// METHOD: loginSetAcl
// WAS : login_set_acl
// PARAMS: none
// RETURN: none
// DESC : sets all the basic ACLs
@@ -512,7 +531,7 @@ class login extends db_io
// * if an account ACL is set, set this parallel, account ACL overrides user ACL if it applies
// * if edit access ACL level is set, use this, else use page
// set all base ACL levels as a list keyword -> ACL number
public function login_set_acl()
public function loginSetAcl()
{
// we start with the default acl
$this->acl['base'] = DEFAULT_ACL_LEVEL;
@@ -595,11 +614,12 @@ class login extends db_io
// $this->debug('ACL', $this->print_ar($this->acl));
}
// METHOD: login_check_edit_access
// METHOD: loginCheckEditAccess
// WAS : login_check_edit_access
// PARAMS: edit_access_id to check
// RETURN: true/false: if the edit access is not in the valid list: false
// DESC : checks if this edit access id is valid
public function login_check_edit_access($edit_access_id)
public function loginCheckEditAccess($edit_access_id)
{
if (array_key_exists($edit_access_id, $this->acl['unit'])) {
return true;
@@ -608,11 +628,12 @@ class login extends db_io
}
}
// METHOD: login_password_change
// METHOD: loginPasswordChange
// WAS : login_password_change
// PARAMS: none
// RETURN: none
// DESC : changes a user password
private function login_password_change()
private function loginPasswordChange()
{
if ($this->change_password) {
$event = 'Password Change';
@@ -624,8 +645,8 @@ class login extends db_io
}
// check user exist, if not -> error
if (!$this->login_error) {
$q = "SELECT edit_user_id FROM edit_user WHERE enabled = 1 AND username = '".$this->db_escape_string($this->pw_username)."'";
list ($edit_user_id) = $this->db_return_row($q);
$q = "SELECT edit_user_id FROM edit_user WHERE enabled = 1 AND username = '".$this->dbEscapeString($this->pw_username)."'";
list ($edit_user_id) = $this->dbReturnRow($q);
if (!$edit_user_id) {
// username wrong
$this->login_error = 201;
@@ -634,8 +655,8 @@ class login extends db_io
}
// check old passwords match -> error
if (!$this->login_error) {
$q = "SELECT edit_user_id FROM edit_user WHERE enabled = 1 AND username = '".$this->db_escape_string($this->pw_username)."' AND password = '".$this->db_escape_string($this->pw_old_password)."'";
list ($edit_user_id) = $this->db_return_row($q);
$q = "SELECT edit_user_id FROM edit_user WHERE enabled = 1 AND username = '".$this->dbEscapeString($this->pw_username)."' AND password = '".$this->dbEscapeString($this->pw_old_password)."'";
list ($edit_user_id) = $this->dbReturnRow($q);
if (!$edit_user_id) {
// old password wrong
$this->login_error = 202;
@@ -659,8 +680,8 @@ class login extends db_io
// no error change this users password
if (!$this->login_error) {
// update the user (edit_user_id) with the new password
$q = "UPDATE edit_user SET password = '".$this->db_escape_string($this->cryptString($this->pw_new_password))."' WHERE edit_user_id = ".$edit_user_id;
$this->db_exec($q);
$q = "UPDATE edit_user SET password = '".$this->dbEscapeString($this->cryptString($this->pw_new_password))."' WHERE edit_user_id = ".$edit_user_id;
$this->dbExec($q);
$data = 'Password change for user "'.$this->pw_username.'" from "'.$this->pw_old_password.'" to "'.$this->pw_new_password.'"';
}
} else {
@@ -673,15 +694,16 @@ class login extends db_io
} // button pressed
}
// METHOD: login_print_login
// METHOD: loginPrintLogin
// WAS : login_print_login
// PARAMS: none
// RETURN: none
// DESC : prints out login html part if no permission (error) is set
private function login_print_login()
private function loginPrintLogin()
{
if (!$this->permission_okay) {
// set the templates now
$this->login_set_templates();
$this->loginSetTemplates();
// if there is a global logout target ...
if (file_exists($this->logout_target) && $this->logout_target) {
$LOGOUT_TARGET = $this->logout_target;
@@ -728,11 +750,12 @@ class login extends db_io
} // if permission is 0 then print out login
}
// METHOD: login_close_class
// METHOD: loginCloseClass
// WAS : login_close_class
// PARAMS: none
// RETURN: none
// DESC : last function called, writes log and prints out error msg and exists script if permission 0
private function login_close_class()
private function loginCloseClass()
{
// write to LOG table ...
if ($this->login_error || $this->login || $this->logout) {
@@ -750,9 +773,9 @@ class login extends db_io
if ($this->euid) {
// get user from user table
$q = "SELECT username, password FROM edit_user WHERE edit_user_id = ".$this->euid;
list($username, $password) = $this->db_return_row($q);
list($username, $password) = $this->dbReturnRow($q);
} // if euid is set, get username (or try)
$this->write_log($event, '', $this->login_error, $username, $password);
$this->writeLog($event, '', $this->login_error, $username, $password);
} // write log under certain settings
// now close DB connection
// $this->error_msg = $this->_login();
@@ -763,11 +786,12 @@ class login extends db_io
}
}
// METHOD: login_set_templates
// METHOD: loginSetTemplates
// WAS : login_set_templates
// PARAMS:
// RETURN: none
// DESC : checks if there are external templates, if not uses internal fallback ones
private function login_set_templates()
private function loginSetTemplates()
{
$strings = array (
'HTML_TITLE' => $this->l->__("LOGIN"),
@@ -911,13 +935,14 @@ EOM;
}
}
// METHOD: write_log
// METHOD: writeLog
// WAS : write_log
// PARAMS: event -> string of what has been done
// data -> data information (id, etc)
// error -> if error, write error string (not enougth data, etc)
// RETURN: none
// DESC : writes detailed data into the edit user log table (keep log what user does)
private function write_log($event, $data, $error = "", $username = "", $password = "")
private function writeLog($event, $data, $error = "", $username = "", $password = "")
{
if ($this->login) {
$this->action = 'Login';
@@ -931,31 +956,32 @@ EOM;
'_FILES' => $_FILES,
'error' => $this->login_error
);
$data_binary = $this->db_escape_bytea(bzcompress(serialize($_data_binary)));
$data_binary = $this->dbEscapeBytea(bzcompress(serialize($_data_binary)));
// SQL querie for log entry
$q = "INSERT INTO edit_log ";
$q .= "(username, password, euid, event_date, event, error, data, data_binary, page, ";
$q .= "ip, user_agent, referer, script_name, query_string, server_name, http_host, http_accept, http_accept_charset, http_accept_encoding, session_id, ";
$q .= "action, action_id, action_yes, action_flag, action_menu, action_loaded, action_value, action_error) ";
$q .= "VALUES ('".$this->db_escape_string($username)."', '".$this->db_escape_string($password)."', ".(($this->euid) ? $this->euid : 'NULL').", ";
$q .= "NOW(), '".$this->db_escape_string($event)."', '".$this->db_escape_string($error)."', '".$this->db_escape_string($data)."', '".$data_binary."', '".$this->page_name."', ";
$q .= "VALUES ('".$this->dbEscapeString($username)."', '".$this->dbEscapeString($password)."', ".(($this->euid) ? $this->euid : 'NULL').", ";
$q .= "NOW(), '".$this->dbEscapeString($event)."', '".$this->dbEscapeString($error)."', '".$this->dbEscapeString($data)."', '".$data_binary."', '".$this->page_name."', ";
foreach (array('REMOTE_ADDR', 'HTTP_USER_AGENT', 'HTTP_REFERER', 'SCRIPT_FILENAME', 'QUERY_STRING', 'SERVER_NAME', 'HTTP_HOST', 'HTTP_ACCEPT', 'HTTP_ACCEPT_CHARSET', 'HTTP_ACCEPT_ENCODING') as $server_code) {
if (array_key_exists($server_code, $_SERVER)) {
$q .= "'".$this->db_escape_string($_SERVER[$server_code])."', ";
$q .= "'".$this->dbEscapeString($_SERVER[$server_code])."', ";
} else {
$q .= "NULL, ";
}
}
$q .= "'".session_id()."', ";
$q .= "'".$this->db_escape_string($this->action)."', '".$this->db_escape_string($this->username)."', NULL, '".$this->db_escape_string($this->login_error)."', NULL, NULL, '".$this->db_escape_string($this->permission_okay)."', NULL)";
$this->db_exec($q, 'NULL');
$q .= "'".$this->dbEscapeString($this->action)."', '".$this->dbEscapeString($this->username)."', NULL, '".$this->dbEscapeString($this->login_error)."', NULL, NULL, '".$this->dbEscapeString($this->permission_okay)."', NULL)";
$this->dbExec($q, 'NULL');
}
// METHOD: login_check_edit_access_id
// METHOD: loginCheckEditAccessId
// WAS : login_check_edit_access_id
// PARAMS: edit access id to check
// RETURN: same edit access id if ok, or the default edit access id if given one is not valud
// DESC : checks that the given edit access id is valid for this user
public function login_check_edit_access_id($edit_access_id)
public function loginCheckEditAccessId($edit_access_id)
{
if (!array_key_exists($edit_access_id, $_SESSION["UNIT"])) {
return $_SESSION["UNIT_DEFAULT"];
@@ -964,11 +990,12 @@ EOM;
}
}
// METHOD: login_set_edit_access_data
// METHOD: loginSetEditAccessData
// WAS : login_set_edit_access_data
// PARAMS: edit access id, key value to search for
// RETURN: false for not found or string for found data
// DESC : searchs in the data set for the unit for the data key and returns the value asociated with it
public function login_set_edit_access_data($edit_access_id, $data_key)
public function loginSetEditAccessData($edit_access_id, $data_key)
{
if (!$_SESSION['UNIT'][$edit_access_id]['data'][$data_key]) {
return false;
@@ -977,3 +1004,5 @@ EOM;
}
}
} // close class
# __END__

View File

@@ -2,7 +2,7 @@
/*********************************************************************
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2006/08/15
* VERSION: 0.1.0
* VERSION: 1.0.0
* RELEASED LICENSE: GNU GPL 3
* DESCRIPTION
* Basic Admin interface backend
@@ -22,10 +22,9 @@
*
*********************************************************************/
// try to include file from LIBS path, or from normal path
_spl_autoload('Class.DB.IO.inc');
namespace CoreLibs\Admin;
class AdminBackend extends db_io
class Backend extends \CoreLibs\DB\IO
{
// page name
public $page_name; // the name of the current page
@@ -61,9 +60,7 @@ class AdminBackend extends db_io
public function __construct($db_config, $lang, $debug = 0, $db_debug = 0, $echo = 1, $print = 0)
{
// get the language sub class & init it
_spl_autoload('Class.l10n.inc');
$this->l = new l10n($lang);
$this->l = new \CoreLibs\Language\L10n($lang);
// init the database class
// $this->db_io($db_config, $debug, $db_debug, $echo, $print);
@@ -78,7 +75,7 @@ class AdminBackend extends db_io
);
// set page name
$this->page_name = $this->get_page_name();
$this->page_name = $this->getPageName();
// set the action ids
foreach ($this->action_list as $_action) {
@@ -122,7 +119,7 @@ class AdminBackend extends db_io
// METHOD: adbEditLog()
// PARAMS: event -> any kind of event description, data -> any kind of data related to that event
// RETURN: none
// DESC: writes all action vars plus other info into edit_log table
// DESC : writes all action vars plus other info into edit_log table
public function adbEditLog($event = '', $data = '', $write_type = 'STRING')
{
if ($write_type == 'BINARY') {
@@ -162,7 +159,7 @@ class AdminBackend extends db_io
// METHOD: adbTopMenu
// PARAMS: level
// RETURN: returns an array for the top menu with all correct settings
// DESC: menu creater
// DESC : menu creater
public function adbTopMenu($flag = 0)
{
if ($this->menu_show_flag) {
@@ -174,9 +171,7 @@ class AdminBackend extends db_io
if (!is_array($pages)) {
$pages = array ();
}
//$this->debug('pages', $this->print_ar($pages));
// $this->debug('pages', $this->print_ar($pages));
// if flag is 0, then we show all, else, we show only the matching flagges array points
// array is already sorted after correct order
reset($pages);
@@ -244,7 +239,7 @@ class AdminBackend extends db_io
// METHOD: adbShowMenuPoint
// PARAMS: filename
// RETURN: returns boolean true/false
// DESC: checks if this filename is in the current situation (user id, etc) available
// DESC : checks if this filename is in the current situation (user id, etc) available
public function adbShowMenuPoint($filename)
{
$enabled = 0;
@@ -260,7 +255,7 @@ class AdminBackend extends db_io
// METHOD: adbAssocArray
// PARAMS: db array, key, value part
// RETURN: returns and associative array
// DESC: creates out of a normal db_return array an assoc array
// DESC : creates out of a normal db_return array an assoc array
public function adbAssocArray($db_array, $key, $value)
{
return $this->GenAssocArray($db_array, $key, $value);
@@ -270,7 +265,7 @@ class AdminBackend extends db_io
// METHOD: adbByteStringFormat
// PARAMS: int
// RETURN: string
// DESC: converts bytes into formated string with KB, MB, etc
// DESC : converts bytes into formated string with KB, MB, etc
public function adbByteStringFormat($number)
{
return $this->ByteStringFormat($number);
@@ -285,7 +280,7 @@ class AdminBackend extends db_io
// path -> if source start is not ROOT path, if empty ROOT is choosen
// cache -> cache path, if not given TMP is used
// RETURN: thumbnail name
// DESC: converts picture to a thumbnail with max x and max y size
// DESC : converts picture to a thumbnail with max x and max y size
public function adbCreateThumbnail($pic, $size_x, $size_y, $dummy = false, $path = "", $cache = "")
{
return $this->CreateThumbnail($pic, $size_x, $size_y, $dummy, $path, $cache);
@@ -296,7 +291,7 @@ class AdminBackend extends db_io
// msg -> string, can be printf formated
// var array -> optional data for a possible printf formated msg
// RETURN: none
// DESC: wrapper function to fill up the mssages array
// DESC : wrapper function to fill up the mssages array
public function adbMsg($level, $msg, $vars = array ())
{
if (!preg_match("/^info|warning|error$/", $level)) {
@@ -329,7 +324,7 @@ class AdminBackend extends db_io
// associate -> NULL for free, LOCK for first insert, group key for reference to first entry
// file -> string for special file copy actions; mostyle "test#live;..."
// RETURN: none
// DESC: writes live queue
// DESC : writes live queue
public function adbLiveQueue($queue_key, $type, $target, $data, $key_name, $key_value, $associate = null, $file = null)
{
$q = "INSERT INTO ".GLOBAL_DB_SCHEMA.".live_queue (";
@@ -348,7 +343,7 @@ class AdminBackend extends db_io
// suffix: additional info printed after the date time variable in the drop down, also used for ID in the on change JS call
// minute steps, can be 1 (default), 5, 10, etc, if invalid (outside 1h range, it falls back to 1min)
// RETURN: HTML formated strings for drop down lists of date and time
// DESC: print the date/time drop downs, used in any queue/send/insert at date/time place
// DESC : print the date/time drop downs, used in any queue/send/insert at date/time place
public function adbPrintDateTime($year, $month, $day, $hour, $min, $suffix = '', $min_steps = 1)
{
// if suffix given, add _ before
@@ -408,3 +403,5 @@ class AdminBackend extends db_io
return $string;
}
}
# __END__

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
* CREATED: 2002/12/17
* VERSION: 0.4.0
* RELEASED LICENSE: GNU GPL 3
* SHORT DESCRIPTION:
* SHORT DESC :RIPTION:
* DB Array IO Class:
* writes, reads or deletes a complete array (one data set) in/out a
* table from the connected DB.
@@ -14,9 +14,9 @@
*
* PRIVATE VARIABLES
*
* PUBLIC METHODS
* PUBLIC METHOD:S
*
* PRIVATE METHODS
* PRIVATE METHOD:S
*
* HISTORY:
* 2005/07/07 (cs) updated array class for postgres: set 0 & NULL if int field given, insert uses () values () syntax
@@ -36,11 +36,10 @@
// as it actually has nothing to do with this one here ? (or at least
// put into separete function in this class)
// try to include file from LIBS path, or from normal path
_spl_autoload('Class.DB.IO.inc');
namespace CoreLibs\DB\Extended;
// subclass for one array handling
class db_array_io extends db_io
class ArrayIO extends \CoreLibs\DB\IO
{
// main calss variables
public $table_array; // the array from the table to work on
@@ -48,14 +47,14 @@ class db_array_io extends db_io
public $pk_name; // the primary key from this table
public $pk_id; // the PK id
// METHOD db_array_io
// PARAMS db_config -> db_io class init vars
// table_array -> the array from the table
// table_name -> name of the table (for the array)
// db_debug -> turn on db_io debug output (DB_DEBUG as global var does the same)
// RETURN none
// DESC constructor for the array io class, set the
// primary key name automatically (from array)
// METHOD: db_array_io
// PARAMS: db_config -> db_io class init vars
// table_array -> the array from the table
// table_name -> name of the table (for the array)
// db_debug -> turn on db_io debug output (DB_DEBUG as global var does the same)
// RETURN: none
// DESC : constructor for the array io class, set the
// primary key name automatically (from array)
public function __construct($db_config, $table_array, $table_name, $debug = 0, $db_debug = 0, $echo = 1, $print = 0)
{
// instance db_io class
@@ -90,14 +89,15 @@ class db_array_io extends db_io
parent::__destruct();
}
// METHOD convert_data
// PARAMS string -> the string that should be changed
// RETURN string -> the altered string
// DESC changes all previously alterd HTML code into visible one,
// works for <b>,<i>, and <a> (thought <a> can be / or should
// be handled with the magic links functions
// used with the read function
public function convert_data($text)
// METHOD: convertData
// WAS : convert_data
// PARAMS: string -> the string that should be changed
// RETURN: string -> the altered string
// DESC : changes all previously alterd HTML code into visible one,
// works for <b>,<i>, and <a> (thought <a> can be / or should
// be handled with the magic links functions
// used with the read function
public function convertData($text)
{
$text = str_replace('&lt;b&gt;', '<b>', $text);
$text = str_replace('&lt;/b&gt;', '</b>', $text);
@@ -110,11 +110,12 @@ class db_array_io extends db_io
return $text;
}
// METHOD convert_entities
// PARAMS string -> string to be changed
// RETURN string -> altered string
// DESC changeds all HTML entities into non HTML ones
public function convert_entities($text)
// METHOD: convertEntities
// WAS : convert_entities
// PARAMS: string -> string to be changed
// RETURN: string -> altered string
// DESC : changeds all HTML entities into non HTML ones
public function convertEntities($text)
{
$text = str_replace('&lt;', '<', $text);
$text = str_replace('&gt;', '>', $text);
@@ -124,11 +125,12 @@ class db_array_io extends db_io
return $text;
}
// METHOD db_dump_array
// PARAMS none
// RETURN returns the current array
// DESC dumps the current data
public function db_dump_array($write = 0)
// METHOD: dbDumpArray
// WAS : db_dump_array
// PARAMS: none
// RETURN: returns the current array
// DESC : dumps the current data
public function dbDumpArray($write = 0)
{
reset($this->table_array);
while (list($column, $data_array) = each($this->table_array)) {
@@ -141,24 +143,12 @@ class db_array_io extends db_io
return $string;
}
// METHOD _db_error
// PARAMS none
// RETURN none
// DESC writes errors to internal error string
/* function _db_error()
{
// if error occured
if ($this->error_id)
{
$this->error_msg['db'] .= "<b>-DB_ARRAY-error-></b> ".$this->error_id.": ".$this->error_string[$this->error_id]." <br>";
}
} */
// METHOD db_check_pk_set
// PARAMS none
// RETURN none
// DESC checks if pk is set and if not, set from pk_id and if this also not set return 0
public function db_check_pk_set()
// METHOD: dbCheckPkSet
// WAS : db_check_pk_set
// PARAMS: none
// RETURN: none
// DESC : checks if pk is set and if not, set from pk_id and if this also not set return 0
public function dbCheckPkSet()
{
// if pk_id is set, overrule ...
if ($this->pk_id) {
@@ -168,18 +158,19 @@ class db_array_io extends db_io
if (!$this->table_array[$this->pk_name]["value"]) {
// if no PK found, error ...
$this->error_id = 21;
$this->_db_error();
$this->__dbError();
return 0;
} else {
return 1;
}
}
// METHOD db_reset_array
// PARAMS reset_pk -> if set reset the pk too
// RETURN none
// DESC resets the whole array
public function db_reset_array($reset_pk = 0)
// METHOD: dbResetArray
// WAS : db_reset_array
// PARAMS: reset_pk -> if set reset the pk too
// RETURN: none
// DESC : resets the whole array
public function dbResetArray($reset_pk = 0)
{
reset($this->table_array);
while (list($column, $data_array) = each($this->table_array)) {
@@ -191,16 +182,17 @@ class db_array_io extends db_io
}
}
// METHOD db_delete
// PARAMS optional the table_array, if not given uses class var
// RETURN 1 for successfull delete or 0 for error
// DESC deletes one dataset
public function db_delete($table_array = 0)
// METHOD: dbDelete
// WAS : db_delete
// PARAMS: optional the table_array, if not given uses class var
// RETURN: 1 for successfull delete or 0 for error
// DESC : deletes one dataset
public function dbDelete($table_array = 0)
{
if (is_array($table_array)) {
$this->table_array = $table_array;
}
if (!$this->db_check_pk_set()) {
if (!$this->dbCheckPkSet()) {
return $this->table_array;
}
// delete query
@@ -209,7 +201,7 @@ class db_array_io extends db_io
// delete files and build FK query
reset($this->table_array);
while (list($column, $data_array) = each($this->table_array)) {
// suchen nach bildern und löschen ...
// suchen nach bildern und lschen ...
if ($this->table_array[$column]["file"] && file_exists($this->table_array[$column]["url"].$this->table_array[$column]["value"])) {
if (file_exists($this->table_array[$column]["path"].$this->table_array[$column]["value"])) {
unlink($this->table_array[$column]["path"].$this->table_array[$column]["value"]);
@@ -227,7 +219,7 @@ class db_array_io extends db_io
}
$q_where .= $column." = ".$this->table_array[$column]["value"];
}
// allgemeines zurücksetzen des arrays
// allgemeines zurcksetzen des arrays
unset($this->table_array[$column]["value"]);
}
@@ -237,24 +229,25 @@ class db_array_io extends db_io
}
// if 0, error
unset($this->pk_id);
if (!$this->db_exec($q)) {
if (!$this->dbExec($q)) {
$this->error_id=22;
$this->_db_error();
$this->__dbError();
}
return $this->table_array;
}
// METHOD db_read
// PARAMS edit -> if 1 data will not be altered for output, optional the table_array, if not given uses class var
// RETURN true or false for reading
// DESC reads one row into the array
public function db_read($edit = 0, $table_array = 0)
// METHOD: dbRead
// WAS : db_read
// PARAMS: edit -> if 1 data will not be altered for output, optional the table_array, if not given uses class var
// RETURN: true or false for reading
// DESC : reads one row into the array
public function dbRead($edit = 0, $table_array = 0)
{
// if array give, overrules internal array
if (is_array($table_array)) {
$this->table_array = $table_array;
}
if (!$this->db_check_pk_set()) {
if (!$this->dbCheckPkSet()) {
return $this->table_array;
}
reset($this->table_array);
@@ -283,12 +276,12 @@ class db_array_io extends db_io
}
// if query was executed okay, else set error
if ($this->db_exec($q)) {
if ($res = $this->db_fetch_array()) {
if ($this->dbExec($q)) {
if ($res = $this->dbFetchArray()) {
reset($this->table_array);
while (list($column, $data_array) = each($this->table_array)) {
// wenn "edit" dann gib daten wie in DB zurück, ansonten aufbereiten für ausgabe
// ?? sollte das nicht draußen ??? man weis ja net was da drin steht --> is noch zu überlegen
// wenn "edit" dann gib daten wie in DB zurck, ansonten aufbereiten fr ausgabe
// ?? sollte das nicht drauen ??? man weis ja net was da drin steht --> is noch zu berlegen
// echo "EDIT: $edit | Spalte: $column | type: ".$this->table_array[$column]["type"]." | Res: ".$res[$column]."<br>";
if ($edit) {
$this->table_array[$column]["value"] = $res[$column];
@@ -297,25 +290,26 @@ class db_array_io extends db_io
$this->table_array[$column]["HIDDEN_value"] = $res[$column];
}
} else {
$this->table_array[$column]["value"] = $this->convert_data(nl2br($res[$column]));
$this->table_array[$column]["value"] = $this->convertData(nl2br($res[$column]));
// had to put out the htmlentities from the line above as it breaks japanese characters
}
}
}
// possible db_fetch_array errors ...
// possible dbFetchArray errors ...
$this->pk_id = $this->table_array[$this->pk_name]["value"];
} else {
$this->error_id = 22;
$this->_db_error();
$this->__dbError();
}
return $this->table_array;
}
// METHOD db_write
// PARAMS addslashes -> if 1 will make an addslashes for each array field, optional the table_array, if not given uses class var
// RETURN true or false on write
// DESC writes on set into DB or updates one set (if PK exists)
public function db_write($addslashes = 0, $table_array = 0)
// METHOD: dbWrite
// WAS : db_write
// PARAMS: addslashes -> if 1 will make an addslashes for each array field, optional the table_array, if not given uses class var
// RETURN: true or false on write
// DESC : writes on set into DB or updates one set (if PK exists)
public function dbWrite($addslashes = 0, $table_array = 0)
{
if (is_array($table_array)) {
$this->table_array = $table_array;
@@ -427,9 +421,9 @@ class db_array_io extends db_io
$q_data .= "'";
// if add slashes do convert & add slashes else write AS is
if ($addslashes) {
$q_data .= $this->db_escape_string($this->convert_entities($this->table_array[$column]["value"]));
$q_data .= $this->dbEscapeString($this->convertEntities($this->table_array[$column]["value"]));
} else {
$q_data .= $this->db_escape_string($this->table_array[$column]["value"]);
$q_data .= $this->dbEscapeString($this->table_array[$column]["value"]);
}
$q_data .= "'";
}
@@ -454,7 +448,7 @@ class db_array_io extends db_io
if (!$this->table_array[$this->pk_name]["value"]) {
// max id, falls INSERT
$q = "SELECT MAX(".$this->pk_name.") + 1 AS pk_id FROM ".$this->table_name;
$res = $this->db_return_row($q);
$res = $this->dbReturnRow($q);
if (!$res["pk_id"]) {
$res["pk_id"] = 1;
}
@@ -482,9 +476,9 @@ class db_array_io extends db_io
// $this->pk_id = $this->table_array[$this->pk_name]["value"];
}
// return success or not
if (!$this->db_exec($q)) {
if (!$this->dbExec($q)) {
$this->error_id = 22;
$this->_db_error();
$this->__dbError();
}
// set primary key
if ($insert) {
@@ -494,4 +488,60 @@ class db_array_io extends db_io
// return the table if needed
return $this->table_array;
}
// *************************************************************
// COMPATIBILITY METHODS
// those methods are deprecated function call names
// they exist for backwards compatibility only
// *************************************************************
public function convert_data($text)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->convertData($text);
}
public function convert_entities($text)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->convertEntities($text);
}
public function db_dump_array($write = 0)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->dbDumpArray($write);
}
public function db_check_pk_set()
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->dbCheckPkSet();
}
public function db_reset_array($reset_pk = 0)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->dbResetArray($reset_pk);
}
public function db_delete($table_array = 0)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->dbDelete($table_array);
}
public function db_read($edit = 0, $table_array = 0)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->dbRead($edit, $table_array);
}
public function db_write($addslashes = 0, $table_array = 0)
{
error_log('DEPRECATED CALL: '.__METHOD__.', '.__FILE__.':'.__LINE__.', '.debug_backtrace()[0]['file'].':'.debug_backtrace()[0]['line']);
return $this->dbWrite($addslashes, $table_array);
}
} // end of class
# __END__

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,12 @@
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2003/04/09
* SHORT DESCRIPTION:
* 2018/3/23, the whole class system is transformed to namespaces
* also all internal class calls are converted to camel case
*
* pgsql wrapper calls
* HISTORY:
*
* HISTORY:
* 2008/04/16 (cs) wrapper for pg escape string
* 2007/01/11 (cs) add prepare/execute for postgres
* 2006/09/12 (cs) in case db_query retuns false, save the query and run the query through the send/get procedure to get correct error data from the db
@@ -37,7 +41,9 @@
*
*/
class db_pgsql
namespace CoreLibs\DB\SQL;
class PgSQL
{
private $last_error_query;
private $dbh;
@@ -51,7 +57,12 @@ class db_pgsql
{
}
public function _db_last_error_query()
// METHOD: __dbLastErrorQuery
// WAS : _db_last_error_query
// PARAMS: none
// RETURN: true/false if last error is set
// DESC : queries last error query and returns true or false if error was set
public function __dbLastErrorQuery()
{
if ($this->last_error_query) {
return true;
@@ -60,11 +71,12 @@ class db_pgsql
}
}
// METHOD: _db_query
// METHOD: __dbQuery
// WAS : _db_query
// PARAMS: query
// RETURN: query result
// DESC : wrapper for gp_query, catches error and stores it in class var
public function _db_query($query)
public function __dbQuery($query)
{
$this->last_error_query = '';
// read out the query status and save the query if needed
@@ -75,20 +87,22 @@ class db_pgsql
return $result;
}
// METHOD: _db_send_query
// METHOD: __dbSendQuery
// WAS : _db_send_query
// PARAMS: query
// RETURN: true/false if query was sent successful
// DESC : sends an async query to the server
public function _db_send_query($query)
public function __dbSendQuery($query)
{
return pg_send_query($this->dbh, $query);
}
// METHOD: _db_get_result
// METHOD: __dbGetResult
// WAS : _db_get_result
// PARAMS: none
// RETURN: resource handler
// DESC : wrapper for pg_get_result
public function _db_get_result()
public function __dbGetResult()
{
$this->last_error_query = '';
$result = pg_get_result($this->dbh);
@@ -98,11 +112,12 @@ class db_pgsql
return $result;
}
// METHOD: _db_close
// METHOD: __dbClose
// WAS : _db_close
// PARAMS: none
// RETURN: none
// DESC : wrapper for pg_close
public function _db_close()
public function __dbClose()
{
if (is_resource($this->dbh)) {
if (pg_connection_status($this->dbh) === PGSQL_CONNECTION_OK) {
@@ -111,11 +126,12 @@ class db_pgsql
}
}
// METHOD: _db_prepare
// METHOD: __dbPrepare
// WAS : _db_prepare
// PARAMS: prepare name, query
// RETURN: prepared statement handler
// DESC : wrapper for pg_prepare
public function _db_prepare($name, $query)
public function __dbPrepare($name, $query)
{
$result = pg_prepare($this->dbh, $name, $query);
if (!$result) {
@@ -124,11 +140,12 @@ class db_pgsql
return $result;
}
// METHOD: _db_execute
// METHOD: __dbExecute
// WAS : _db_execute
// PARAMS: prepare name, data for query
// RETURN: returns status
// DESC : wrapper for pg_execute for running a prepared statement
public function _db_execute($name, $data)
public function __dbExecute($name, $data)
{
$result = pg_execute($this->dbh, $name, $data);
if (!$result) {
@@ -137,73 +154,80 @@ class db_pgsql
return $result;
}
// METHOD: _db_num_rows
// METHOD: __dbNumRows
// WAS : _db_num_rows
// PARAMS: cursor
// RETURN: rows
// DESC : wrapper for pg_num_rows
public function _db_num_rows($cursor)
public function __dbNumRows($cursor)
{
return pg_num_rows($cursor);
}
// METHOD: _db_num_fields
// METHOD: __dbNumFields
// WAS : _db_num_fields
// PARAMS: cursor
// RETURN: number for fields in query
// DESC : wrapper for pg_num_fields
public function _db_num_fields($cursor)
public function __dbNumFields($cursor)
{
return pg_num_fields($cursor);
}
// METHOD: _db_field_name
// METHOD: __dbFieldName
// WAS : _db_field_name
// PARAMS: cursor, field position
// RETURN: name of field
// DESC : wrapper for pg_field_name
public function _db_field_name($cursor, $i)
public function __dbFieldName($cursor, $i)
{
return pg_field_name($cursor, $i);
}
// METHOD: _db_fetch_array
// METHOD: __dbFetchArray
// WAS : _db_fetch_array
// PARAMS: cursor, opt result type
// RETURN: row
// DESC : wrapper for pg_fetch_array
public function _db_fetch_array($cursor, $result_type = '')
public function __dbFetchArray($cursor, $result_type = '')
{
// result type is passed on as is [should be checked]
if ($result_type) {
return pg_fetch_array($cursor, NULL, $result_type);
return pg_fetch_array($cursor, null, $result_type);
} else {
return pg_fetch_array($cursor);
}
}
// METHOD: _db_fetch_all
// METHOD: __dbFetchAll
// WAS : _db_fetch_all
// PARAMS: cursor
// RETURN: all rows as array
// DESC : wrapper for pg_fetch_array
public function _db_fetch_all($cursor)
public function __dbFetchAll($cursor)
{
return pg_fetch_all($cursor);
}
// METHOD: _db_affected_ros
// METHOD: __dbAffectedRows
// WAS : _db_affected_rows
// PARAMS: cursor
// RETURN: number for rows
// DESC : wrapper for pg_affected_rows
public function _db_affected_rows($cursor)
public function __dbAffectedRows($cursor)
{
return pg_affected_rows($cursor);
}
// METHOD: _db_insert_id
// METHOD: __dbInsertId
// WAS : _db_insert_id
// PARAMS: query, primary key name
// RETURN: last insert primary key
// DESC : reads the last inserted primary key for the query
// if ther is no pk_name tries to auto built it from the table name
// this only works if db schema is after "no plural names. and pk name is table name + _id
// detects schema prefix in table name
public function _db_insert_id($query, $pk_name)
public function __dbInsertId($query, $pk_name)
{
// only if an insert has been done
if (preg_match("/^insert /i", $query)) {
@@ -229,8 +253,8 @@ class db_pgsql
$q = "SELECT CURRVAL('$seq') AS insert_id";
// $this->currval_query = $q;
// I have to do manually or I overwrite the original insert internal vars ...
if ($q = $this->_db_query($q)) {
list($id) = $this->_db_fetch_array($q);
if ($q = $this->__dbQuery($q)) {
list($id) = $this->__dbFetchArray($q);
} else {
$id = array(-1, $q);
}
@@ -238,19 +262,20 @@ class db_pgsql
}
}
// METHOD: _db_primary_key
// METHOD: __dbPrimaryKey
// WAS : _db_primary_key
// PARAMS: table and optional schema
// RETURN: primary key name OR false if not possible
// DESC : queries database for the primary key name to this table in the selected schema
public function _db_primary_key($table, $schema = '')
public function __dbPrimaryKey($table, $schema = '')
{
if ($table) {
// check if schema set is different from schema given, only needed if schema is not empty
$table_prefix = '';
if ($schema) {
$q = "SHOW search_path";
$cursor = $this->_db_query($q);
$search_path = $this->_db_fetch_array($cursor)['search_path'];
$cursor = $this->__dbQuery($q);
$search_path = $this->__dbFetchArray($cursor)['search_path'];
if ($search_path != $schema) {
$table_prefix = $schema.'.';
}
@@ -273,9 +298,9 @@ class db_pgsql
$q .= "pg_attribute.attrelid = pg_class.oid AND ";
$q .= "pg_attribute.attnum = any(pg_index.indkey) ";
$q .= "AND indisprimary";
$cursor = $this->_db_query($q);
$cursor = $this->__dbQuery($q);
if ($cursor) {
return $this->_db_fetch_array($cursor)['column_name'];
return $this->__dbFetchArray($cursor)['column_name'];
} else {
return false;
}
@@ -284,11 +309,12 @@ class db_pgsql
}
}
// METHOD: _db_connect
// METHOD: __dbConnect
// WAS : _db_connect
// PARAMS: host name, user name, password, database name, optional port (defaults to default postgres port), optional ssl (default allow)
// RETURN: database handler
// DESC : wrapper for pg_connect, writes out failure to screen if error occurs (hidden var)
public function _db_connect($db_host, $db_user, $db_pass, $db_name, $db_port = 5432, $db_ssl = 'allow')
public function __dbConnect($db_host, $db_user, $db_pass, $db_name, $db_port = 5432, $db_ssl = 'allow')
{
// to avoid empty db_port
if (!$db_port) {
@@ -301,11 +327,12 @@ class db_pgsql
return $this->dbh;
}
// METHOD: _db_print_error
// METHOD: __dbPrintError
// WAS : _db_print_error
// PARAMS: database handler, cursor
// RETURN: error string (HTML)
// DESC : reads the last error for this cursor
public function _db_print_error($cursor = '')
public function __dbPrintError($cursor = '')
{
// run the query again for the error result here
if (!$cursor && $this->last_error_query) {
@@ -318,47 +345,52 @@ class db_pgsql
}
}
// METHOD: _db_meta_data
// METHOD: __dbMetaData
// WAS : _db_meta_data
// PARAMS: table name
// RETURN: array with table data
// DESC : wrapper for pg_emta_data
public function _db_meta_data($table)
public function __dbMetaData($table)
{
return pg_meta_data($this->dbh, $table);
}
// METHOD: _db_escape_string
// METHOD: __dbEscapeString
// WAS : _db_escape_string
// PARAMS: string
// RETURN: escaped string for postgres
// DESC : wrapper for pg_escape_string
public function _db_escape_string($string)
public function __dbEscapeString($string)
{
return pg_escape_string($this->dbh, $string);
}
// METHOD: _db_escape_bytea
// METHOD: __dbEscapeBytea
// WAS : _db_escape_bytea
// PARAMS: string
// RETURN: escape bytes for postgres
// DESC : wrapper for pg_escape_bytea
public function _db_escape_bytea($bytea)
public function __dbEscapeBytea($bytea)
{
return pg_escape_bytea($this->dbh, $bytea);
}
// METHOD: _db_connection_busy
// METHOD: __dbConnectionBusy
// WAS : _db_connection_busy
// PARAMS: none
// RETURN: true/false for busy connection
// DESC : wrapper for pg_connection_busy
public function _db_connection_busy()
public function __dbConnectionBusy()
{
return pg_connection_busy($this->dbh);
}
// METHOD: _db_version
// METHOD: __dbVersion
// WAS : _db_version
// PARAMS: none
// RETURN: databse version
// DESC : wrapper for pg_version
public function _db_version()
public function __dbVersion()
{
// array has client, protocol, server
// we just need the server
@@ -366,13 +398,14 @@ class db_pgsql
return $v['server'];
}
// METHOD: _db_array_parse
// METHOD: __dbArrayParse
// WAS : _db_array_parse
// PARAMS: input text, output array [needed]
// [internal] limit: are we at the end of the parse
// [internal] offset: shift for {}
// RETURN: array with the elements
// DESC : postgresql array to php array
public function _db_array_parse($text, &$output, $limit = false, $offset = 1)
public function __dbArrayParse($text, &$output, $limit = false, $offset = 1)
{
if (false === $limit) {
$limit = strlen($text) - 1;
@@ -395,3 +428,5 @@ class db_pgsql
return $output;
}
}
# __END__

View File

@@ -0,0 +1,48 @@
<?php
/*
Copyright (c) 2003, 2005, 2006, 2009 Danilo Segan <danilo@kvota.net>.
This file is part of PHP-gettext.
PHP-gettext is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
PHP-gettext is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with PHP-gettext; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
namespace CoreLibs\Language\Core;
// Preloads entire file in memory first, then creates a StringReader
// over it (it assumes knowledge of StringReader internals)
class CachedFileReader extends CoreLibs\Language\Core\StringReader
{
public function __construct($filename)
{
if (file_exists($filename)) {
$length = filesize($filename);
$fd = fopen($filename, 'rb');
if (!$fd) {
$this->error = 3; // Cannot read file, probably permissions
return false;
}
$this->_str = fread($fd, $length);
fclose($fd);
} else {
$this->error = 2; // File doesn't exist
return false;
}
}
}
# __END__

View File

@@ -1,5 +1,25 @@
<?php
/*
Copyright (c) 2003, 2005, 2006, 2009 Danilo Segan <danilo@kvota.net>.
This file is part of PHP-gettext.
PHP-gettext is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
PHP-gettext is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with PHP-gettext; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
namespace CoreLibs\Language\Core;
class FileReader

View File

@@ -0,0 +1,54 @@
<?php
/*
Copyright (c) 2003, 2005, 2006, 2009 Danilo Segan <danilo@kvota.net>.
This file is part of PHP-gettext.
PHP-gettext is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
PHP-gettext is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with PHP-gettext; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
namespace CoreLibs\Language\Core;
// Simple class to wrap file streams, string streams, etc.
// seek is essential, and it should be byte stream
class StreamReader
{
// should return a string [FIXME: perhaps return array of bytes?]
public function read($bytes)
{
return false;
}
// should return new position
public function seekto($position)
{
return false;
}
// returns current position
public function currentpos()
{
return false;
}
// returns length of entire stream (limit for seekto()s)
public function length()
{
return false;
}
}
# __END__

View File

@@ -0,0 +1,67 @@
<?php
/*
Copyright (c) 2003, 2005, 2006, 2009 Danilo Segan <danilo@kvota.net>.
This file is part of PHP-gettext.
PHP-gettext is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
PHP-gettext is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with PHP-gettext; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
namespace CoreLibs\Language\Core;
class StringReader
{
public $sr_pos;
public $sr_str;
public function __construct($str = '')
{
$this->sr_str = $str;
$this->sr_pos = 0;
}
public function read($bytes)
{
$data = substr($this->sr_str, $this->sr_pos, $bytes);
$this->sr_pos += $bytes;
if (strlen($this->sr_str) < $this->sr_pos) {
$this->sr_pos = strlen($this->sr_str);
}
return $data;
}
public function seekto($pos)
{
$this->sr_pos = $pos;
if (strlen($this->sr_str) < $this->sr_pos) {
$this->sr_pos = strlen($this->sr_str);
}
return $this->sr_pos;
}
public function currentpos()
{
return $this->sr_pos;
}
public function length()
{
return strlen($this->sr_str);
}
}
# __END__

View File

@@ -1,182 +0,0 @@
<?php
/*
Copyright (c) 2003, 2005, 2006, 2009 Danilo Segan <danilo@kvota.net>.
This file is part of PHP-gettext.
PHP-gettext is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
PHP-gettext is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with PHP-gettext; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Simple class to wrap file streams, string streams, etc.
// seek is essential, and it should be byte stream
class StreamReader
{
// should return a string [FIXME: perhaps return array of bytes?]
public function read($bytes)
{
return false;
}
// should return new position
public function seekto($position)
{
return false;
}
// returns current position
public function currentpos()
{
return false;
}
// returns length of entire stream (limit for seekto()s)
public function length()
{
return false;
}
}
class StringReader
{
public $_pos;
public $_str;
public function __construct($str = '')
{
$this->_str = $str;
$this->_pos = 0;
}
public function read($bytes)
{
$data = substr($this->_str, $this->_pos, $bytes);
$this->_pos += $bytes;
if (strlen($this->_str)<$this->_pos) {
$this->_pos = strlen($this->_str);
}
return $data;
}
public function seekto($pos)
{
$this->_pos = $pos;
if (strlen($this->_str)<$this->_pos) {
$this->_pos = strlen($this->_str);
}
return $this->_pos;
}
public function currentpos()
{
return $this->_pos;
}
public function length()
{
return strlen($this->_str);
}
}
class FileReader
{
public $_pos;
public $_fd;
public $_length;
public function __construct($filename)
{
if (file_exists($filename)) {
$this->_length=filesize($filename);
$this->_pos = 0;
$this->_fd = fopen($filename, 'rb');
if (!$this->_fd) {
$this->error = 3; // Cannot read file, probably permissions
return false;
}
} else {
$this->error = 2; // File doesn't exist
return false;
}
}
public function read($bytes)
{
if ($bytes) {
fseek($this->_fd, $this->_pos);
// PHP 5.1.1 does not read more than 8192 bytes in one fread()
// the discussions at PHP Bugs suggest it's the intended behaviour
$data = '';
while ($bytes > 0) {
$chunk = fread($this->_fd, $bytes);
$data .= $chunk;
$bytes -= strlen($chunk);
}
$this->_pos = ftell($this->_fd);
return $data;
} else {
return '';
}
}
public function seekto($pos)
{
fseek($this->_fd, $pos);
$this->_pos = ftell($this->_fd);
return $this->_pos;
}
public function currentpos()
{
return $this->_pos;
}
public function length()
{
return $this->_length;
}
public function close()
{
fclose($this->_fd);
}
}
// Preloads entire file in memory first, then creates a StringReader
// over it (it assumes knowledge of StringReader internals)
class CachedFileReader extends StringReader
{
public function __construct($filename)
{
if (file_exists($filename)) {
$length=filesize($filename);
$fd = fopen($filename, 'rb');
if (!$fd) {
$this->error = 3; // Cannot read file, probably permissions
return false;
}
$this->_str = fread($fd, $length);
fclose($fd);
} else {
$this->error = 2; // File doesn't exist
return false;
}
}
}

View File

@@ -2,7 +2,7 @@
/*********************************************************************
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2004/11/18
* VERSION: 0.1.1
* VERSION: 1.0.0
* RELEASED LICENSE: GNU GPL 3
* SHORT DESCRIPTION:
* init class for gettext. Original was just a function & var setting include for wordpress.
@@ -14,7 +14,7 @@
*
* PUBLIC METHODS
* __: returns string (translated or original if not found)
* _e: echos out string (translated or original if not found)
* __e: echos out string (translated or original if not found)
* __ngettext: should return plural. never tested this.
*
* PRIVATE METHODS
@@ -23,10 +23,12 @@
* 2005/10/17 (cs) made an on the fly switch method (reload of lang)
*********************************************************************/
// try to include file from LIBS path, or from normal path
_spl_autoload('Class.Basic.inc');
namespace CoreLibs\Language;
class l10n extends basic
use \CoreLibs\Language\Core\FileReader;
use \CoreLibs\Language\Core\GetTextReader;
class L10n extends \CoreLibs\Basic
{
private $lang = '';
private $mofile = '';
@@ -35,10 +37,6 @@ class l10n extends basic
public function __construct($lang = '', $path = DEFAULT_TEMPLATE)
{
foreach (array('streams.php', 'gettext.php') as $include_file) {
_spl_autoload($include_file);
}
if (!$lang) {
$this->lang = 'en';
} else {
@@ -60,7 +58,7 @@ class l10n extends basic
$this->input = false;
}
$this->l10n = new gettext_reader($this->input);
$this->l10n = new GetTextReader($this->input);
}
// reloads the mofile, if the location of the lang file changes
@@ -82,7 +80,7 @@ class l10n extends basic
// check if get a readable mofile
if (is_readable($this->mofile)) {
$this->input = new FileReader($this->mofile);
$this->l10n = new gettext_reader($this->input);
$this->l10n = new GetTextReader($this->input);
} else {
// else fall back to the old ones
$this->mofile = $old_mofile;
@@ -95,7 +93,7 @@ class l10n extends basic
return $this->l10n->translate($text);
}
public function _e($text)
public function __e($text)
{
echo $this->l10n->translate($text);
}
@@ -106,12 +104,12 @@ class l10n extends basic
return $this->l10n->ngettext($single, $plural, $number);
}
public function __get_lang()
public function __getLang()
{
return $this->lang;
}
public function __get_mofile()
public function __getMoFile()
{
return $this->mofile;
}

View File

@@ -210,10 +210,9 @@
* save data, loads data, etc
*********************************************************************/
// try to include file from LIBS path, or from normal path
_spl_autoload('Class.DB.Array.IO.inc');
namespace CoreLibs\Output\Form;
class form extends db_array_io
class Generate extends \CoreLibs\DB\Extended\ArrayIO
{
// rest
public $field_array = array (); // for the load statetment describes which elements from the load query should be shown and i which format
@@ -244,23 +243,20 @@ class form extends db_array_io
// now some default error msgs (english)
public $language_array = array ();
// METHOD constructor
// PARAMS $db_config -> connect to DB
// $lang -> language code ("en", "ja", etc)
// $table_width -> width of table
// $db_debug -> turns db_io debug on/off (DB_DEBUG as global var does the same)
// METHOD: constructor
// PARAMS: $db_config -> connect to DB
// $lang -> language code ("en", "ja", etc)
// $table_width -> width of table
// $db_debug -> turns db_io debug on/off (DB_DEBUG as global var does the same)
public function __construct($db_config, $lang, $table_width = 750, $debug = 0, $db_debug = 0, $echo = 1, $print = 0)
{
$this->my_page_name = $this->get_page_name(1);
$this->my_page_name = $this->getPageName(1);
// init the language class
_spl_autoload('Class.l10n.inc');
$this->l = new l10n($lang);
$this->l = new \CoreLibs\Language\L10n($lang);
// load config array
// get table array definitions for current page name
// WARNING: auto spl load does not work with this as it is an array and not a function/object
// $flag = _spl_autoload('array_'.$this->my_page_name.'.inc');
include(TABLE_ARRAYS."array_".$this->my_page_name.".inc");
$config_array = ${$this->my_page_name};
// start the array_io class which will start db_io ...
@@ -316,7 +312,7 @@ class form extends db_array_io
}
// dumps all values into output (for error msg)
public function form_dump_table_array()
public function formDumpTableArray()
{
if (!is_array($this->table_array)) {
$this->table_array = array ();
@@ -338,49 +334,14 @@ class form extends db_array_io
parent::__destruct();
}
/*****************************************************
Along here are wrapper functions for the former, old names
*/
public function form_load()
{
return $this->form_create_load();
}
public function form_new($hide_new_checkbox = 0)
{
return $this->form_create_new($hide_new_checkbox);
}
public function form_delete_save($hide_delete = 0, $hide_delete_checkbox = 0)
{
return $this->form_create_save_delete($hide_delete, $hide_delete_checkbox);
}
public function form_error_msg()
{
return $this->form_print_msg();
}
public function form_show_reference_table($table_name)
{
return $this->form_create_element_reference_table($table_name);
}
public function form_show_list_table($table_name)
{
return $this->form_create_element_list_table($table_name);
}
// END wrapper
// METHOD form_get_col_name_from_key
// PARAMS $want_key: the key where u want the data from
// $key_value: if set searches for special right value
// RETURN the value of the $want_key array field
// works only with fields that appear only ONCE
// if multiple gets only FIRST
public function form_get_col_name_from_key($want_key, $key_value = "")
// METHOD: formGetColNameFromKey
// WAS : form_get_col_name_from_key
// PARAMS: $want_key: the key where u want the data from
// $key_value: if set searches for special right value
// RETURN: the value of the $want_key array field
// works only with fields that appear only ONCE
// if multiple gets only FIRST
public function formGetColNameFromKey($want_key, $key_value = "")
{
if (!is_array($this->table_array)) {
$this->table_array = array ();
@@ -395,11 +356,12 @@ class form extends db_array_io
}
}
// METHOD form_get_col_name_array_from_key
// PARAMS $want_key: the key where u want the data from
// $key_value: if set searches for special right value
// RETURN array of fields
public function form_get_col_name_array_from_key($want_key, $key_value = "")
// METHOD: formGetColNameArrayFromKey
// WAS : form_get_col_name_array_from_key
// PARAMS: $want_key: the key where u want the data from
// $key_value: if set searches for special right value
// RETURN: array of fields
public function formGetColNameArrayFromKey($want_key, $key_value = "")
{
$key_array = array();
if (!is_array($this->table_array)) {
@@ -417,10 +379,11 @@ class form extends db_array_io
return $key_array;
}
// METHOD form_print_msg
// PARAMS none
// RETURN formated output for the error && warning msg
public function form_print_msg()
// METHOD: formPrintMsg
// WAS : form_print_msg
// PARAMS: none
// RETURN: formated output for the error && warning msg
public function formPrintMsg()
{
if ($this->error) {
$class = "error";
@@ -432,11 +395,12 @@ class form extends db_array_io
}
// next for functions are pre_test fkts for easier default new,load, etc handling
// METHOD form_procedure_load
// PARAMS archive_id - which ID should be loaded
// RETURN none
// DESC default load procedure
public function form_procedure_load($archive_id)
// METHOD: formProcedureLoad
// WAS : form_procedure_load
// PARAMS: archive_id - which ID should be loaded
// RETURN: none
// DESC : default load procedure
public function formProcedureLoad($archive_id)
{
if ($this->archive && $archive_id && $this->group_level_user <= $this->security_level["load"]) {
$this->form_load_table_array($archive_id);
@@ -444,11 +408,12 @@ class form extends db_array_io
}
}
// METHOD form_procedure_new
// PARAMS none
// RETURN none
// DESC default new procedure
public function form_procedure_new()
// METHOD: formProcedureNew
// WAS : form_procedure_new
// PARAMS: none
// RETURN: none
// DESC : default new procedure
public function formProcedureNew()
{
if ($this->new && $this->group_level_user <= $this->security_level["new"]) {
if ($this->really_new == "yes") {
@@ -461,11 +426,12 @@ class form extends db_array_io
}
}
// METHOD form_procedure_save
// PARAMS none
// RETURN none
// DESC default save procedure
public function form_procedure_save()
// METHOD: formProcedureSave
// WAS : form_procedure_save
// PARAMS: none
// RETURN: none
// DESC : default save procedure
public function formProcedureSave()
{
if ($this->save && $this->group_level_user <= $this->security_level["save"]) {
$this->form_error_check();
@@ -476,11 +442,12 @@ class form extends db_array_io
}
}
// METHOD form_procedure_delete
// PARAMS none
// RETURN none
// DESC default delete procedure
public function form_procedure_delete()
// METHOD: formProcedureDelete
// WAS : form_procedure_delete
// PARAMS: none
// RETURN: none
// DESC : default delete procedure
public function formProcedureDelete()
{
// delete is also by "protected"
if ($this->delete && $this->group_level_user <= $this->security_level["delete"] && !$this->table_array["protected"]["value"]) {
@@ -498,16 +465,17 @@ class form extends db_array_io
}
}
// METHOD form_procedure_delete_from_element_list
// PARAMS none
// RETURN none
// DESC default delete procedure
public function form_procedure_delete_from_element_list($element_list, $remove_name)
// METHOD: formProcedureDeleteFromElementList
// WAS : form_procedure_delete_from_element_list
// PARAMS: none
// RETURN: none
// DESC : default delete procedure
public function formProcedureDeleteFromElementList($element_list, $remove_name)
{
// only do if the user is allowed to delete
if ($this->group_level_user <= $this->security_level["delete"] && !$this->table_array["protected"]["value"] && !$this->error) {
for ($i = 0; $i < count($element_list); $i ++) {
//$this->debug('form_error', "Array: ".is_array($this->element_list[$element_list[$i]]["read_data"])." | ".$this->element_list[$element_list[$i]]["delete"]);
// $this->debug('form_error', "Array: ".is_array($this->element_list[$element_list[$i]]["read_data"])." | ".$this->element_list[$element_list[$i]]["delete"]);
// if prefix, set it
$prfx = ($this->element_list[$element_list[$i]]["prefix"]) ? $this->element_list[$element_list[$i]]["prefix"]."_" : '';
// get the primary key
@@ -540,13 +508,13 @@ class form extends db_array_io
}
}
} elseif (is_array($this->element_list[$element_list[$i]]["read_data"]) && $this->element_list[$element_list[$i]]["delete"]) {
//$this->debug('form_clean', "ID [$id] [$prfx.$pk_name]");
//$this->debug('form_clean', "ID arr: ".$this->print_ar($_POST[$id]));
//$this->debug('form_clean', "PK arr: ".$this->print_ar($_POST[$prfx.$pk_name]));
// $this->debug('form_clean', "ID [$id] [$prfx.$pk_name]");
// $this->debug('form_clean', "ID arr: ".$this->print_ar($_POST[$id]));
// $this->debug('form_clean', "PK arr: ".$this->print_ar($_POST[$prfx.$pk_name]));
for ($j = 0; $j < count($_POST[$prfx.$pk_name]); $j ++) {
if (!$_POST[$remove_name[$i]][$j] && $_POST[$prfx.$pk_name][$j]) {
$q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j];
// $this->debug('edit_db', "DEL: $q");
// $this->debug('edit_db', "DEL: $q");
$this->db_exec($q);
$this->msg .= $this->l->__("Deleted deselected entries from list<br>");
$this->warning = 1;
@@ -560,10 +528,11 @@ class form extends db_array_io
}
}
// METHOD form_create_load
// PARAMS none
// RETURN string from "load" part of form ...
public function form_create_load()
// METHOD: formCreateLoad
// WAS : form_create_load
// PARAMS: none
// RETURN: string from "load" part of form ...
public function formCreateLoad()
{
// when security leve is okay ...
if ($this->group_level_user <= $this->security_level["load"]) {
@@ -590,19 +559,17 @@ class form extends db_array_io
$t_string .= $res[$this->field_array[$i]["name"]];
}
}
/*
//<? echo $res["question"]." (Lang: ".$res["lang_name"].", Freigeschalten: ".ucfirst($res["enabled"]?"ja":"nein").")"; ?>
*/
$pk_names[] = $t_string;
}
} // show it at all
return array('t_pk_name' => $t_pk_name, 'pk_ids' => $pk_ids, 'pk_names' => $pk_names, 'pk_selected' => $pk_selected);
}
// METHOD form_create_new
// PARAMS none
// RETURN part for new
public function form_create_new($hide_new_checkbox = 0)
// METHOD: formCreateNew
// WAS : form_create_new
// PARAMS: none
// RETURN: part for new
public function formCreateNew($hide_new_checkbox = 0)
{
// when security level is okay
if ($this->group_level_user <= $this->security_level["new"]) {
@@ -619,10 +586,11 @@ class form extends db_array_io
return array('new_name' => $new_name, 'show_checkbox' => $show_checkbox);
}
// METHOD form_create_save_delete
// PARAMS none
// RETURN string for delete / save part
public function form_create_save_delete($hide_delete = 0, $hide_delete_checkbox = 0)
// METHOD: formCreateSaveDelete
// WAS : form_create_save_delete
// PARAMS: none
// RETURN: string for delete / save part
public function formCreateSaveDelete($hide_delete = 0, $hide_delete_checkbox = 0)
{
if ($this->group_level_user <= $this->security_level["save"] || $this->group_level_user <= $this->security_level["delete"]) {
$old_school_hidden = 0;
@@ -647,13 +615,14 @@ class form extends db_array_io
return array('seclevel_okay' => $seclevel_okay, 'save' => $save, 'pk_name' => $pk_name, 'pk_value' => $pk_value, 'show_delete' => $show_delete, 'hide_delete_checkbox' => $hide_delete_checkbox);
} // end of function
// METHOD form_create_element
// PARAMS $element_name: the name from the array, you want to have build
// $query: can overrule internal query data,
// for drop down, as data comes from a reference table
// for drop_down_text it has to be an array with $key->$value
// RETURN element in HTML
public function form_create_element($element_name, $query = "")
// METHOD: formCreateElement
// WAS : form_create_element
// PARAMS: $element_name: the name from the array, you want to have build
// $query: can overrule internal query data,
// for drop down, as data comes from a reference table
// for drop_down_text it has to be an array with $key->$value
// RETURN: element in HTML
public function formCreateElement($element_name, $query = "")
{
// special 2nd color for "binary" attribut
if ($this->table_array[$element_name]["type"] == "binary" && !$this->table_array[$element_name]["value"]) {
@@ -824,13 +793,14 @@ class form extends db_array_io
return array('output_name' => $output_name, 'color' => $EDIT_FGCOLOR_T, 'type' => $type, 'data' => $data);
}
// METHOD form_error_check
// PARAMS none
// RETURNS full error message string for output
// METHOD: formErrorCheck
// WAS : form_error_check
// PARAMS: none
// RETURN: full error message string for output
// should be cought like this ...
// if ($msg=$form->form_error_check())
// $error=1;
public function form_error_check()
public function formErrorCheck()
{
if (!is_array($this->table_array)) {
$this->table_array = array ();
@@ -841,7 +811,7 @@ class form extends db_array_io
// if error value set && somethign input, check if input okay
if ($value["error_check"] && $this->table_array[$key]["value"]) {
// each error check can be a piped seperated value, lets split it
//$this->debug('edit', $value["error_check"]);
// $this->debug('edit', $value["error_check"]);
foreach (explode('|', $value["error_check"]) as $error_check) {
switch ($error_check) {
case "number":
@@ -889,20 +859,20 @@ class form extends db_array_io
}
break;
case "alphanumericspace":
//$this->debug('edit', 'IN Alphanumericspace');
// $this->debug('edit', 'IN Alphanumericspace');
if (!preg_match("/^[0-9A-Za-z\ ]+$/", $this->table_array[$key]["value"])) {
$this->msg .= sprintf($this->l->__("Please enter a valid alphanumeric (Numbers and Letters, spaces allowed) value for the <b>%s</b> Field!<br>"), $this->table_array[$key]["output_name"]);
}
break;
case "alphanumeric":
//$this->debug('edit', 'IN Alphanumeric');
// $this->debug('edit', 'IN Alphanumeric');
if (!preg_match("/^[0-9A-Za-z_\-]+$/", $this->table_array[$key]["value"])) {
$this->msg .= sprintf($this->l->__("Please enter a valid alphanumeric (Numbers and Letters only also - and _, no spaces) value for the <b>%s</b> Field!<br>"), $this->table_array[$key]["output_name"]);
}
break;
// this one also allows @ and .
case "alphanumericextended":
//$this->debug('edit', 'IN Alphanumericextended');
// $this->debug('edit', 'IN Alphanumericextended');
if (!preg_match("/^[0-9A-Za-z_\-@\.]+$/", $this->table_array[$key]["value"])) {
$this->msg .= sprintf($this->l->__("Please enter a valid alphanumeric extended (Numbers, Letters, -, _, @ and . only, no spaces) value for the <b>%s</b> Field!<br>"), $this->table_array[$key]["output_name"]);
}
@@ -928,7 +898,7 @@ class form extends db_array_io
// main if end
) {
// if mandatory && no input
//$this->debug('form', "A: ".$this->table_array[$key]["type"]." -- ".$this->table_array[$key]["input_value"]." -- ".$this->table_array[$key]["value"]);
// $this->debug('form', "A: ".$this->table_array[$key]["type"]." -- ".$this->table_array[$key]["input_value"]." -- ".$this->table_array[$key]["value"]);
if (!$this->table_array[$key]["value"] && $this->table_array[$key]["type"] != "binary") {
$this->msg .= sprintf($this->l->__("Please enter something into the <b>%s</b> field!<br>"), $this->table_array[$key]["output_name"]);
}
@@ -964,7 +934,7 @@ class form extends db_array_io
}
}
}
//$this->debug('edit_error', "QS: <pre>".print_r($_POST, 1)."</pre>");
// $this->debug('edit_error', "QS: <pre>".print_r($_POST, 1)."</pre>");
if (is_array($this->element_list)) {
// check the mandatory stuff
// if mandatory, check that at least on pk exists or if at least the mandatory field is filled
@@ -988,10 +958,10 @@ class form extends db_array_io
if (count($_POST[$prfx.$key]) > $max) {
$max = count($_POST[$prfx.$key]);
}
//$this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max");
//$this->debug('edit_error_chk', "K: ".$_POST[$prfx.$key]." | ".$_POST[$prfx.$key][0]);
// $this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max");
// $this->debug('edit_error_chk', "K: ".$_POST[$prfx.$key]." | ".$_POST[$prfx.$key][0]);
}
//$this->debug('post_array', $this->print_ar($_POST));
$this->debug('post_array', $this->print_ar($_POST));
# check each row
for ($i = 0; $i < $max; $i ++) {
// either one of the post pks is set, or the mandatory
@@ -1005,18 +975,18 @@ class form extends db_array_io
}
// we found a mandatory field. check now if one is set to satisfy the main mandatory
// also check, if this field is mandatory and its not set, but any other, throw an error
//$this->debug('edit_error_chk', "RG error - Data[".$prfx.$el_name.": ".$_POST[$prfx.$el_name][$i]." | ".$_POST[$prfx.$el_name]." - ".$reference_array['enable_name']." - ".$_POST[$reference_array['enable_name']][$_POST[$prfx.$el_name][$i]]);
// $this->debug('edit_error_chk', "RG error - Data[".$prfx.$el_name.": ".$_POST[$prfx.$el_name][$i]." | ".$_POST[$prfx.$el_name]." - ".$reference_array['enable_name']." - ".$_POST[$reference_array['enable_name']][$_POST[$prfx.$el_name][$i]]);
if ($data_array["mandatory"] && $_POST[$prfx.$el_name][$i]) {
$mand_okay = 1;
$row_okay[$i] = 1;
} elseif ($data_array['type'] == 'radio_group' && !isset($_POST[$prfx.$el_name])) {
// radio group and set where one not active
//$this->debug('edit_error_chk', "RADIO GROUP");
// $this->debug('edit_error_chk', "RADIO GROUP");
$row_okay[$_POST[$prfx.$el_name][$i]] = 0;
$default_wrong[$_POST[$prfx.$el_name][$i]] = 1;
$error[$_POST[$prfx.$el_name][$i]] = 1;
} elseif ($_POST[$prfx.$el_name][$i] && !$error[$i]) {
//$this->debug('edit_error_chk', "[$i]");
// $this->debug('edit_error_chk', "[$i]");
$element_set[$i] = 1;
$row_okay[$i] = 1;
} elseif ($data_array["mandatory"] && !$_POST[$prfx.$el_name][$i]) {
@@ -1068,11 +1038,12 @@ class form extends db_array_io
}
}
// METHOD form_set_order
// PARAMS none
// RETURN the table array
// DOES sets the order to the maximum, if order flag is set in array
public function form_set_order()
// METHOD: formSetOrder
// WAS: form_set_order
// PARAMS: none
// RETURN: the table array
// DESC : sets the order to the maximum, if order flag is set in array
public function formSetOrder()
{
// get order name
$order_name = $this->form_get_col_name_from_key("order");
@@ -1095,11 +1066,12 @@ class form extends db_array_io
return $this->table_array;
}
// METHOD form_unsert_table_array
// PARAMS none
// RETURN none
// DOES resets all values in table_array and in the reference tables
public function form_unset_table_array()
// METHOD: formUnsetTableArray
// WAS : form_unsert_table_array
// PARAMS: none
// RETURN: none
// DESC : resets all values in table_array and in the reference tables
public function formUnsetTableArray()
{
unset($this->pk_id);
if (!is_array($this->table_array)) {
@@ -1127,11 +1099,12 @@ class form extends db_array_io
$this->msg = $this->l->__("Cleared for new Dataset!");
}
// METHOD form_load_table_array
// PARAMS pk_id - overrule pk_id
// RETURN none
// DESC load a table & reference
public function form_load_table_array($pk_id = 0)
// METHOD: formLoadTableArray
// WAS : form_load_table_array
// PARAMS: pk_id - overrule pk_id
// RETURN: none
// DESC : load a table & reference
public function formLoadTableArray($pk_id = 0)
{
if ($pk_id) {
$this->pk_id = $pk_id;
@@ -1165,11 +1138,12 @@ class form extends db_array_io
$this->msg = $this->l->__("Dataset has been loaded!<br>");
}
// METHOD form_save_table_array
// PARAMS addslashes - if one, passes 1 to the db_write function
// RETURN none
// DESC save a table, reference and all input fields
public function form_save_table_array($addslashes = 0)
// METHOD: formSaveTableArray
// WAS : form_save_table_array
// PARAMS: addslashes - if one, passes 1 to the db_write function
// RETURN: none
// DESC : save a table, reference and all input fields
public function formSaveTableArray($addslashes = 0)
{
// global $_FILES;
// for drop_down_db_input check if text field is filled and if, if not yet in db ...
@@ -1419,11 +1393,12 @@ class form extends db_array_io
$this->msg = $this->l->__("Dataset has been saved!<Br>");
}
// METHOD form_delete_table_array
// PARAMS none
// RETURN none
// DESC delete a table and reference fields
public function form_delete_table_array()
// METHOD: formDeleteTableArray
// WAS : form_delete_table_array
// PARAMS: none
// RETURN: none
// DESC : delete a table and reference fields
public function formDeleteTableArray()
{
// remove any reference arrays
if (is_array($this->reference_array)) {
@@ -1462,11 +1437,12 @@ class form extends db_array_io
$this->msg = $this->l->__("Dataset has been deleted!");
}
// METHOD form_create_hidden_fields
// PARAMS $hidden_array
// RETURNS the input fields (html)
// creates HTML hidden input fields out of an hash array
public function form_create_hidden_fields($hidden_array = "")
// METHOD: formCreateHiddenFields
// WAS : form_create_hidden_fields
// PARAMS: $hidden_array
// RETURN: the input fields (html)
// DESC : creates HTML hidden input fields out of an hash array
public function formCreateHiddenFields($hidden_array = "")
{
$hidden = array ();
if (!is_array($this->table_array)) {
@@ -1487,11 +1463,12 @@ class form extends db_array_io
return $hidden;
}
// METHOD form_create_element_reference_table
// PARAMS show which reference table
// RETURN array for output
// DESC creates the multiple select part for a reference_table
public function form_create_element_reference_table($table_name)
// METHOD: formCreateElementReferenceTable
// WAS : form_create_element_reference_table
// PARAMS: show which reference table
// RETURN: array for output
// DESC : creates the multiple select part for a reference_table
public function formCreateElementReferenceTable($table_name)
{
$output_name = $this->reference_array[$table_name]["output_name"];
if ($this->reference_array[$table_name]["mandatory"]) {
@@ -1508,13 +1485,14 @@ class form extends db_array_io
return array('output_name' => $output_name, 'type' => $type, 'color' => 'edit_fgcolor', 'data' => $data);
}
// METHOD form_create_element_list
// PARAMS show which element list
// RETURN array for output
// DESC create list of elements next to each other for a group of data in an input field
// this currently only works for a list that is filled from a sub table and creates only a connection to this one
// new version will allow a sub list with free input fields to directly fill a sub table to a master table
public function form_create_element_list_table($table_name)
// METHOD: formCreateElementListTable
// WAS : form_create_element_list
// PARAMS: show which element list
// RETURN: array for output
// DESC : create list of elements next to each other for a group of data in an input field
// this currently only works for a list that is filled from a sub table and creates only a connection to this one
// new version will allow a sub list with free input fields to directly fill a sub table to a master table
public function formCreateElementListTable($table_name)
{
// output name for the viewable left table td box, prefixed with * if mandatory
$output_name = $this->element_list[$table_name]["output_name"];
@@ -1547,7 +1525,7 @@ class form extends db_array_io
// generic data read in (counts for all rows)
// visible list data output
while (list($el_name, $data_array) = each($this->element_list[$table_name]["elements"])) {
// $this->debug('CFG', 'El: '.$el_name.' -> '.$this->print_ar($data_array));
$this->debug('CFG', 'El: '.$el_name.' -> '.$this->print_ar($data_array));
// if the element name matches the read array, then set the table as a name prefix
$q_select[] = $el_name; // this is for reading the data
// prefix the name for any further data parts
@@ -1566,7 +1544,7 @@ class form extends db_array_io
if ($data_array['type'] == 'drop_down_db') {
$md_q = md5($data_array['query']);
while ($res = $this->db_return($data_array['query'])) {
//$this->debug('edit', "Q[$md_q] pos: ".$this->cursor_ext[$md_q]["pos"]." | want: ".$data_array["preset"]." | set: ".$data['preset'][$el_name]);
$this->debug('edit', "Q[$md_q] pos: ".$this->cursor_ext[$md_q]["pos"]." | want: ".$data_array["preset"]." | set: ".$data['preset'][$el_name]);
// first is default for this element
if (!$data['preset'][$el_name] && ($this->cursor_ext[$md_q]["pos"] == $data_array['preset'])) {
$data['preset'][$el_name] = $res[0];
@@ -1580,11 +1558,11 @@ class form extends db_array_io
}
$proto[$el_name] = ($this->error) ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : ''; // this is for the new line
}
// $this->debug('CFG DATA', 'Data: '.$this->print_ar($data));
// $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto));
// $this->debug('CFG SELECT', 'Proto: '.$this->print_ar($q_select));
// $this->debug('CFG DATA', 'Data: '.$this->print_ar($data));
// $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto));
// $this->debug('CFG SELECT', 'Proto: '.$this->print_ar($q_select));
// query for reading in the data
//$this->debug('edit_error', "ERR: ".$this->error);
$this->debug('edit_error', "ERR: ".$this->error);
// if we got a read data, build the read select for the read, and read out the "selected" data
if ($this->element_list[$table_name]["read_data"]) {
// we need a second one for the query build only
@@ -1604,18 +1582,18 @@ class form extends db_array_io
$data['type'][$data["prefix"].$this->element_list[$table_name]["read_data"]["name"]] = 'string';
// build the read query
$q = "SELECT ";
// if (!$this->table_array[$this->int_pk_name]["value"])
// $q .= "DISTINCT ";
// if (!$this->table_array[$this->int_pk_name]["value"])
// $q .= "DISTINCT ";
// prefix join key with table name, and implode the query select part
$q .= str_replace($table_name.'.'.$this->element_list[$table_name]["read_data"]["pk_id"], $this->element_list[$table_name]["read_data"]["table_name"].'.'.$this->element_list[$table_name]["read_data"]["pk_id"], implode(', ', $_q_select)).' ';
// if (!$this->table_array[$this->int_pk_name]["value"] && $this->element_list[$table_name]["read_data"]["order"])
// $q .= ", ".$this->element_list[$table_name]["read_data"]["order"]." ";
// if (!$this->table_array[$this->int_pk_name]["value"] && $this->element_list[$table_name]["read_data"]["order"])
// $q .= ", ".$this->element_list[$table_name]["read_data"]["order"]." ";
// read from the read table as main, and left join to the sub table to read the actual data
$q .= "FROM ".$this->element_list[$table_name]["read_data"]["table_name"]." ";
$q .= "LEFT JOIN ".$table_name." ";
$q .= "ON (";
$q .= $this->element_list[$table_name]["read_data"]["table_name"].".".$this->element_list[$table_name]["read_data"]["pk_id"]." = ".$table_name.".".$this->element_list[$table_name]["read_data"]["pk_id"]." ";
// if ($this->table_array[$this->int_pk_name]["value"])
// if ($this->table_array[$this->int_pk_name]["value"])
$q .= "AND ".$table_name.".".$this->int_pk_name." = ".(($this->table_array[$this->int_pk_name]["value"]) ? $this->table_array[$this->int_pk_name]["value"] : 'NULL')." ";
$q .= ") ";
if ($this->element_list[$table_name]["read_data"]["order"]) {
@@ -1628,7 +1606,7 @@ class form extends db_array_io
$q = "SELECT ".implode(", ", $q_select)." FROM ".$table_name." WHERE ".$this->int_pk_name." = ".$this->table_array[$this->int_pk_name]["value"];
}
}
// $this->debug('CFG QUERY', 'Q: '.$q);
// $this->debug('CFG QUERY', 'Q: '.$q);
// only run if we have query strnig
if ($q) {
$pos = 0; // position in while for overwrite if needed
@@ -1640,7 +1618,7 @@ class form extends db_array_io
for ($i = 0; $i < count($q_select); $i ++) {
// query select part, set to the element name
$el_name = $q_select[$i];
//$this->debug('edit_error', "[$i] ELNAME: $el_name | POS[$prfx$el_name]: ".$_POST[$prfx.$el_name][$pos]." | RES: ".$res[$el_name]);
// $this->debug('edit_error', "[$i] ELNAME: $el_name | POS[$prfx$el_name]: ".$_POST[$prfx.$el_name][$pos]." | RES: ".$res[$el_name]);
// if we have an error, we take what we have in the vars, if not we take the data from the db
if ($this->error) {
// if we have a radio group, set a bit different
@@ -1700,8 +1678,10 @@ class form extends db_array_io
if ($data['delete_name']) {
$data['content'][] = $proto;
}
//$this->debug('edit', "A:<pre>".print_r($data, 1)."</pre>");
// $this->debug('edit', "A:<pre>".print_r($data, 1)."</pre>");
$type = 'element_list';
return array('output_name' => $output_name, 'type' => $type, 'color' => 'edit_fgcolor', 'data' => $data);
}
} // end of class
# __END__

View File

@@ -11,6 +11,8 @@
*
*/
namespace CoreLibs\Output;
class ProgressBar
{
// private vars
@@ -80,13 +82,13 @@ class ProgressBar
$this->height = $height;
}
// needs to be called twice or I do not get any output
$this->_flushCache($this->clear_buffer_size_init);
$this->_flushCache($this->clear_buffer_size_init);
$this->__flushCache($this->clear_buffer_size_init);
$this->__flushCache($this->clear_buffer_size_init);
}
// private functions
private function _flushCache($clear_buffer_size = 0)
private function __flushCache($clear_buffer_size = 0)
{
if (!$clear_buffer_size) {
$clear_buffer_size = $this->clear_buffer_size;
@@ -96,7 +98,7 @@ class ProgressBar
flush();
}
private function _calculatePercent($step)
private function __calculatePercent($step)
{
// avoid divison through 0
if ($this->max - $this->min == 0) {
@@ -109,7 +111,7 @@ class ProgressBar
return $percent;
}
private function _calculatePosition($step)
private function __calculatePosition($step)
{
switch ($this->direction) {
case 'right':
@@ -162,7 +164,7 @@ class ProgressBar
return $position;
}
private function _setStep($step)
private function __setStep($step)
{
if ($step > $this->max) {
$step = $this->max;
@@ -323,7 +325,7 @@ class ProgressBar
$output .= 'document.getElementById("plbl'.$name.$this->code.'").style.align="'.$this->label[$name]['align'].'";';
$output .= '</script>'."\n";
echo $output;
$this->_flushCache();
$this->__flushCache();
}
}
@@ -332,7 +334,7 @@ class ProgressBar
$this->label[$name]['color'] = $color;
if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("plbl'.$name.$this->code.'").style.color="'.$color.'";</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -341,7 +343,7 @@ class ProgressBar
$this->label[$name]['bgr_color'] = $color;
if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("plbl'.$name.$this->code.'").style.background="'.$color.'";</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -376,7 +378,7 @@ class ProgressBar
$output .= 'document.getElementById("plbl'.$name.$this->code.'").style.font-weight="'.$this->label[$name]['font-weight'].'";';
$output .= '</script>'."\n";
echo $output;
$this->_flushCache();
$this->__flushCache();
}
}
@@ -386,7 +388,7 @@ class ProgressBar
// print "NAME[$name], Status: ".$this->status.": ".$value."<Br>";
if ($this->status != 'new') {
echo '<script type="text/JavaScript">PBlabelText'.$this->code.'("'.$name.'","'.$this->label[$name]['value'].'");</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -395,7 +397,7 @@ class ProgressBar
$this->color = $color;
if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("pbar'.$this->code.'").style.background="'.$color.'";</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -404,7 +406,7 @@ class ProgressBar
$this->bgr_color = $color;
if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("pbrd'.$this->code.'").style.background="'.$color.'";</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -413,7 +415,7 @@ class ProgressBar
$this->direction = $direction;
if ($this->status != 'new') {
$this->position = $this->_calculatePosition($this->step);
$this->position = $this->__calculatePosition($this->step);
echo '<script type="text/JavaScript">';
echo 'PBposition'.$this->code.'("left",'.$this->position['left'].');';
@@ -421,7 +423,7 @@ class ProgressBar
echo 'PBposition'.$this->code.'("width",'.$this->position['width'].');';
echo 'PBposition'.$this->code.'("height",'.$this->position['height'].');';
echo '</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -431,8 +433,8 @@ class ProgressBar
$js = '';
$html_button = '';
$this->_setStep($this->step);
$this->position = $this->_calculatePosition($this->step);
$this->__setStep($this->step);
$this->position = $this->__calculatePosition($this->step);
if ($this->top || $this->left) {
$style_master = 'position:relative;top:'.$this->top.'px;left:'.$this->left.'px;width:'.($this->width + 10).'px;';
@@ -524,11 +526,11 @@ class ProgressBar
// only one inner percent
// print "STYLE[$name]: ".$style_lbl."<br>";
if (!$html_percent) {
$html_percent = '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'width:'.$data['width'].'px;line-height:1;text-shadow: 0 0 .2em white, 0 0 .5em white;">'.$this->_calculatePercent($this->step).'%</div>'."\n";
$html_percent = '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'width:'.$data['width'].'px;line-height:1;text-shadow: 0 0 .2em white, 0 0 .5em white;">'.$this->__calculatePercent($this->step).'%</div>'."\n";
}
break;
case 'percentlbl':
$html .= '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'width:'.$data['width'].'px;">'.$this->_calculatePercent($this->step).'%</div>'."\n";
$html .= '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'width:'.$data['width'].'px;">'.$this->__calculatePercent($this->step).'%</div>'."\n";
break;
case 'crossbar':
$html .= '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'">'.$data['value'].'</div>'."\n";
@@ -578,16 +580,16 @@ class ProgressBar
{
$this->status = 'show';
echo $this->getHtml();
$this->_flushCache();
$this->__flushCache();
}
public function moveStep($step)
{
$last_step = $this->step;
$this->_setStep($step);
$this->__setStep($step);
$js = '';
$new_position = $this->_calculatePosition($this->step);
$new_position = $this->__calculatePosition($this->step);
if ($new_position['width'] != $this->position['width'] && ($this->direction == 'right' || $this->direction == 'left')) {
if ($this->direction=='left') {
$js .= 'PBposition'.$this->code.'("left",'.$new_position['left'].');';
@@ -603,7 +605,7 @@ class ProgressBar
$this->position = $new_position;
foreach ($this->label as $name => $data) {
if (array_key_exists('type', $data)) {
switch($data['type']) {
switch ($data['type']) {
case 'step':
if ($this->step != $last_step) {
$js .= 'PBlabelText'.$this->code.'("'.$name.'","'.$this->step.'/'.$this->max.'");';
@@ -611,8 +613,8 @@ class ProgressBar
break;
case 'percentlbl':
case 'percent':
$percent = $this->_calculatePercent($this->step);
if ($percent != $this->_calculatePercent($last_step)) {
$percent = $this->__calculatePercent($this->step);
if ($percent != $this->__calculatePercent($last_step)) {
$js .= 'PBlabelText'.$this->code.'("'.$name.'","'.$percent.'%");';
}
break;
@@ -624,7 +626,7 @@ class ProgressBar
}
if ($js != '') {
echo '<script type="text/JavaScript">'.$js.'</script>'."\n";
$this->_flushCache();
$this->__flushCache();
}
}
@@ -647,7 +649,7 @@ class ProgressBar
$output .= 'document.getElementById("pbm'.$this->code.'").style.visibility="hidden";document.getElementById("pbm'.$this->code.'").style.display="none";';
$output .= '</script>'."\n";
echo $output;
$this->_flushCache();
$this->__flushCache();
}
}
@@ -660,7 +662,7 @@ class ProgressBar
$output .= 'document.getElementById("pbm'.$this->code.'").style.visibility="visible";document.getElementById("pbm'.$this->code.'").style.visibility="block";';
$output .= '</script>'."\n";
echo $output;
$this->_flushCache();
$this->__flushCache();
}
}
}

View File

@@ -8,12 +8,14 @@
* 2005/06/22 (cs) include smarty class here, so there is no need to include it in the main file
*********************************************************************/
// read in the Smarty class for definition
// use smarty BC for backwards compability
// try to include file from LIBS path, or from normal path
_spl_autoload('SmartyBC.class.php');
namespace CoreLibs\Template;
class SmartyML extends SmartyBC
// I need to manually load Smarty BC here (it is not namespaced)
require_once(BASE.LIB.SMARTY.'SmartyBC.class.php');
// So it doesn't start looking around in the wrong naemspace as smarty doesn't have one
use SmartyBC;
class SmartyExtend extends SmartyBC
{
public $l10n;
@@ -21,9 +23,10 @@ class SmartyML extends SmartyBC
public function __construct($lang)
{
SmartyBC::__construct();
_spl_autoload('Class.l10n.inc');
$this->l10n = new l10n($lang);
$this->l10n = new \CoreLibs\Language\L10n($lang);
// variable variable register
$this->register_modifier('getvar', array(&$this, 'get_template_vars'));
}
}
# __END__