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 #!/bin/bash
# create path # create path
path=`pwd`"/"$0; path=$(pwd)"/"$0;
LOCAL_BASE_DIR="<local folder>"; LOCAL_BASE_DIR="<local folder>";
LOCAL_DIR=$LOCAL_BASE_DIR""; LOCAL_DIR=$LOCAL_BASE_DIR"";
REMOTE_WEB="<remote folder>"; REMOTE_WEB="<remote folder>";
TARGET_HOST_WEB="<user>@<host> TARGET_HOST_WEB="<user>@<host>";
TMP_DIR=$LOCAL_BASE_DIR"/4dev/"; TMP_DIR=$LOCAL_BASE_DIR"/4dev/";
tmpf_web=$TMP_DIR"tmp.web"; tmpf_web=$TMP_DIR"tmp.web";

View File

@@ -1,13 +1,21 @@
#!/bin/bash #!/bin/bash
OIFS=${IFS}; OIFS=${IFS};
class_file="Class.Basic.inc"; base_dir="/home/clemens/html/developers/clemens/core_data/php_libraries/trunk/";
tmp_file="../../4dev/tmp/tmp.comp"; class_file="CoreLibs/Output/Form/Generate.inc";
tmp_file=${base_dir}"4dev/tmp/tmp.comp."$(echo "${class_file}" | tr \/. _);
rpl_file=${base_dir}"4dev/tmp/tmp.rpl."$(echo "${class_file}" | tr \/. _);
rm -f "${tmp_file}"; rm -f "${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 do
# if method grep for function call # 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}" ]; if [ -n "${found}" ];
then then
method=$(echo "${line}" | cut -d " " -f 3); method=$(echo "${line}" | cut -d " " -f 3);
@@ -16,7 +24,7 @@ do
if [ -n "${method}" ]; if [ -n "${method}" ];
then then
# the full new call # 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 # 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); 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) # 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;
fi; fi;
# if this is a WAS # 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}" ]; if [ -n "${was}" ];
then 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}]"; echo "2 OLD: ${old_function_call} => ${new_function_call} [${new_function_call_full}]";
# for return write: # for return write:
# rpl new -> old { new } # rpl new -> old { new }
rpl=$(echo "${new_function_call_full}" | sed -e "s/${new_function_call}/${old_function_call}/"); rpl=$(echo "${new_function_call_full}" | sed -e "s/${new_function_call}/${old_function_call}/");
new_call="${rpl}\n"; new_call="${rpl}\n";
new_call=${new_call}"{\n"; new_call=${new_call}"{\n";
new_call=${new_call}"\t\$this->debug('DEPRECATED CALL', __FUNCTION);\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}"\t\$this->${new_function_call}(${old_function_call_params});\n"; new_call=${new_call}"\treturn \$this->${new_function_call}(${old_function_call_params});\n";
new_call=${new_call}"}\n"; new_call=${new_call}"}\n";
echo -e "${new_call}" >> "${tmp_file}"; echo -e "${new_call}" >> "${tmp_file}";
echo "3A RPL CALL: ${rpl}"; echo "3A RPL CALL: ${rpl}";
echo "3B RPL CALL: {"; echo "3B RPL CALL: return \$this->${new_function_call}(${old_function_call_params});";
echo "3B RPL CALL: \$this->debug('DEPRECATED CALL', __FUNCTION);"; echo "4 SWT RPL : rpl '\$this->${old_function_call}' '\$this->${new_function_call}'";
echo "3B RPL CALL: ${new_function_call}(${old_function_call_params});"; # write the replace calls for old $this->old_call to $this->new_call
echo "3B RPL CALL: }"; echo "rpl '\$this->${old_function_call}' '\$this->${new_function_call}' ##TARGET_FILE##" >> "${rpl_file}";
echo "----"; echo "----";
fi; fi;
done; done;
IFS=${OIFS}; IFS=${OIFS};
# __END__

View File

@@ -28,22 +28,15 @@ define(REL_PATH, '');
ob_start(); ob_start();
include("config.inc"); include("config.inc");
// set session name here
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
// overrride debug flags // overrride debug flags
if (!DEBUG) { if (!DEBUG) {
$DEBUG_ALL = 0; $DEBUG_ALL = 0;
$PRINT_ALL = 0; $PRINT_ALL = 0;
$DB_DEBUG = 0; $DB_DEBUG = 0;
$ECHO_ALL = 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 // set default lang if not set otherwise
if (!$lang) { if (!$lang) {
@@ -52,17 +45,17 @@ if (!$lang) {
// should be utf8 // should be utf8
header("Content-type: text/html; charset=".DEFAULT_ENCODING); header("Content-type: text/html; charset=".DEFAULT_ENCODING);
ob_end_flush(); ob_end_flush();
$login = new login($DB_CONFIG[LOGIN_DB], $lang); $login = new CoreLibs\ACL\Login($DB_CONFIG[LOGIN_DB], $lang);
// create form class // 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); $form->db_exec("SET search_path TO ".LOGIN_DB_SCHEMA);
if ($form->mobile_phone) { if ($form->mobile_phone) {
echo "I am sorry, but this page cannot be viewed by a mobile phone"; echo "I am sorry, but this page cannot be viewed by a mobile phone";
exit; exit;
} }
// smarty template engine (extended Translation version) // smarty template engine (extended Translation version)
$smarty = new SmartyML($lang); $smarty = new CoreLibs\Template\SmartyExtend($lang);
if (TARGET == 'live' || TARGET == 'remote') { if (TARGET == 'live' || TARGET == 'remote') {
// login // login
@@ -98,7 +91,7 @@ function EditLog($event = '', $data = '')
{ {
$q = "INSERT INTO edit_log "; $q = "INSERT INTO edit_log ";
$q .= "(euid, event_date, ip, event, data, page) "; $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 // log backend data
@@ -112,11 +105,11 @@ $data = array (
// log action // log action
EditLog('Edit Submit', serialize($data)); EditLog('Edit Submit', serialize($data));
$form->form_procedure_load(${$form->archive_pk_name}); $form->formProcedureLoad(${$form->archive_pk_name});
$form->form_procedure_new(); $form->formProcedureNew();
$form->form_procedure_save(); $form->formProcedureSave();
$form->form_procedure_delete(); $form->formProcedureDelete();
$form->form_procedure_delete_from_element_list($element_list, $remove_name); $form->formProcedureDeleteFromElementList($element_list, $remove_name);
// define all needed smarty stuff for the general HTML/page building // define all needed smarty stuff for the general HTML/page building
$HEADER['CSS'] = CSS; $HEADER['CSS'] = CSS;
@@ -128,7 +121,7 @@ $HEADER['JAVASCRIPT'] = $EDIT_JAVASCRIPT;
$DATA['table_width'] = $table_width; $DATA['table_width'] = $table_width;
// write out error / status messages // write out error / status messages
$messages[] = $form->form_error_msg(); $messages[] = $form->formErrorMsg();
$DATA['form_error_msg'] = $messages; $DATA['form_error_msg'] = $messages;
// MENU START // MENU START
@@ -172,7 +165,7 @@ for ($i = 1; $i <= count($menuarray); $i ++) {
if ($i == 1 || !(($i - 1) % $SPLIT_FACTOR)) { if ($i == 1 || !(($i - 1) % $SPLIT_FACTOR)) {
$menu_data[$j]['splitfactor_in'] = 1; $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; $position = $i - 1;
$menu_data[$j]['position'] = 1; $menu_data[$j]['position'] = 1;
} else { } else {
@@ -197,42 +190,42 @@ $L_TITLE = $DATA['page_name'];
$HEADER['HTML_TITLE'] = ((!$L_TITLE) ? $form->l->__($G_TITLE) : $form->l->__($L_TITLE)); $HEADER['HTML_TITLE'] = ((!$L_TITLE) ? $form->l->__($G_TITLE) : $form->l->__($L_TITLE));
// END MENU // END MENU
// LOAD AND NEW // LOAD AND NEW
$DATA['load'] = $form->form_create_load(); $DATA['load'] = $form->formCreateLoad();
$DATA['new'] = $form->form_create_new(); $DATA['new'] = $form->formCreateNew();
// SHOW DATA PART // SHOW DATA PART
if ($form->yes) { if ($form->yes) {
$DATA['form_yes'] = $form->yes; $DATA['form_yes'] = $form->yes;
$DATA['form_my_page_name'] = $form->my_page_name; $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) { switch ($form->my_page_name) {
case "edit_users": case "edit_users":
$elements[] = $form->form_create_element("login_error_count"); $elements[] = $form->formCreateElement("login_error_count");
$elements[] = $form->form_create_element("login_error_date_last"); $elements[] = $form->formCreateElement("login_error_date_last");
$elements[] = $form->form_create_element("login_error_date_first"); $elements[] = $form->formCreateElement("login_error_date_first");
$elements[] = $form->form_create_element("enabled"); $elements[] = $form->formCreateElement("enabled");
$elements[] = $form->form_create_element("username"); $elements[] = $form->formCreateElement("username");
$elements[] = $form->form_create_element("password"); $elements[] = $form->formCreateElement("password");
$elements[] = $form->form_create_element("password_change_interval"); $elements[] = $form->formCreateElement("password_change_interval");
$elements[] = $form->form_create_element("email"); $elements[] = $form->formCreateElement("email");
$elements[] = $form->form_create_element("last_name"); $elements[] = $form->formCreateElement("last_name");
$elements[] = $form->form_create_element("first_name"); $elements[] = $form->formCreateElement("first_name");
$elements[] = $form->form_create_element("edit_group_id"); $elements[] = $form->formCreateElement("edit_group_id");
$elements[] = $form->form_create_element("edit_access_right_id"); $elements[] = $form->formCreateElement("edit_access_right_id");
$elements[] = $form->form_create_element("strict"); $elements[] = $form->formCreateElement("strict");
$elements[] = $form->form_create_element("locked"); $elements[] = $form->formCreateElement("locked");
$elements[] = $form->form_create_element("admin"); $elements[] = $form->formCreateElement("admin");
$elements[] = $form->form_create_element("debug"); $elements[] = $form->formCreateElement("debug");
$elements[] = $form->form_create_element("db_debug"); $elements[] = $form->formCreateElement("db_debug");
$elements[] = $form->form_create_element("edit_language_id"); $elements[] = $form->formCreateElement("edit_language_id");
$elements[] = $form->form_create_element("edit_scheme_id"); $elements[] = $form->formCreateElement("edit_scheme_id");
$elements[] = $form->form_show_list_table("edit_access_user"); $elements[] = $form->formShowListTable("edit_access_user");
break; break;
case "edit_schemes": case "edit_schemes":
$elements[] = $form->form_create_element("enabled"); $elements[] = $form->formCreateElement("enabled");
$elements[] = $form->form_create_element("name"); $elements[] = $form->formCreateElement("name");
$elements[] = $form->form_create_element("header_color"); $elements[] = $form->formCreateElement("header_color");
$elements[] = $form->form_create_element("template"); $elements[] = $form->formCreateElement("template");
break; break;
case "edit_pages": case "edit_pages":
if (!$form->table_array["edit_page_id"]["value"]) { if (!$form->table_array["edit_page_id"]["value"]) {
@@ -243,57 +236,57 @@ if ($form->yes) {
// now get all that are NOT in de DB // now get all that are NOT in de DB
$q = "INSERT INTO temp_files VALUES "; $q = "INSERT INTO temp_files VALUES ";
for ($i = 0; $i < count($output); $i ++) { for ($i = 0; $i < count($output); $i ++) {
$t_q = "('".$form->db_escape_string($output[$i])."')"; $t_q = "('".$form->dbEscapeString($output[$i])."')";
$form->db_exec($q.$t_q, 'NULL'); $form->dbExec($q.$t_q, 'NULL');
} }
$elements[] = $form->form_create_element("filename"); $elements[] = $form->formCreateElement("filename");
} else { } else {
// show file menu // show file menu
// just show name of file ... // just show name of file ...
$DATA['filename_exist'] = 1; $DATA['filename_exist'] = 1;
$DATA['filename'] = $form->table_array["filename"]["value"]; $DATA['filename'] = $form->table_array["filename"]["value"];
} // File Name View IF } // File Name View IF
$elements[] = $form->form_create_element("name"); $elements[] = $form->formCreateElement("name");
// $elements[] = $form->form_create_element("tag"); // $elements[] = $form->formCreateElement("tag");
// $elements[] = $form->form_create_element("min_acl"); // $elements[] = $form->formCreateElement("min_acl");
$elements[] = $form->form_create_element("order_number"); $elements[] = $form->formCreateElement("order_number");
$elements[] = $form->form_create_element("online"); $elements[] = $form->formCreateElement("online");
$elements[] = $form->form_create_element("menu"); $elements[] = $form->formCreateElement("menu");
$elements[] = $form->form_show_list_table("edit_query_string"); $elements[] = $form->formShowListTable("edit_query_string");
$elements[] = $form->form_create_element("popup"); $elements[] = $form->formCreateElement("popup");
$elements[] = $form->form_create_element("popup_x"); $elements[] = $form->formCreateElement("popup_x");
$elements[] = $form->form_create_element("popup_y"); $elements[] = $form->formCreateElement("popup_y");
$elements[] = $form->form_show_reference_table("edit_visible_group"); $elements[] = $form->formShowReferenceTable("edit_visible_group");
$elements[] = $form->form_show_reference_table("edit_menu_group"); $elements[] = $form->formShowReferenceTable("edit_menu_group");
break; break;
case "edit_languages": case "edit_languages":
$elements[] = $form->form_create_element("enabled"); $elements[] = $form->formCreateElement("enabled");
$elements[] = $form->form_create_element("short_name"); $elements[] = $form->formCreateElement("short_name");
$elements[] = $form->form_create_element("long_name"); $elements[] = $form->formCreateElement("long_name");
$elements[] = $form->form_create_element("iso_name"); $elements[] = $form->formCreateElement("iso_name");
break; break;
case "edit_groups": case "edit_groups":
$elements[] = $form->form_create_element("enabled"); $elements[] = $form->formCreateElement("enabled");
$elements[] = $form->form_create_element("name"); $elements[] = $form->formCreateElement("name");
$elements[] = $form->form_create_element("edit_access_right_id"); $elements[] = $form->formCreateElement("edit_access_right_id");
$elements[] = $form->form_create_element("edit_scheme_id"); $elements[] = $form->formCreateElement("edit_scheme_id");
$elements[] = $form->form_show_list_table("edit_page_access"); $elements[] = $form->formShowListTable("edit_page_access");
break; break;
case "edit_visible_group": case "edit_visible_group":
$elements[] = $form->form_create_element("name"); $elements[] = $form->formCreateElement("name");
$elements[] = $form->form_create_element("flag"); $elements[] = $form->formCreateElement("flag");
break; break;
case "edit_menu_group": case "edit_menu_group":
$elements[] = $form->form_create_element("name"); $elements[] = $form->formCreateElement("name");
$elements[] = $form->form_create_element("flag"); $elements[] = $form->formCreateElement("flag");
$elements[] = $form->form_create_element("order_number"); $elements[] = $form->formCreateElement("order_number");
break; break;
case "edit_access": case "edit_access":
$elements[] = $form->form_create_element("name"); $elements[] = $form->formCreateElement("name");
$elements[] = $form->form_create_element("color"); $elements[] = $form->formCreateElement("color");
$elements[] = $form->form_create_element("description"); $elements[] = $form->formCreateElement("description");
// add name/value list here // add name/value list here
$elements[] = $form->form_show_list_table("edit_access_data"); $elements[] = $form->formShowListTable("edit_access_data");
break; break;
default: default:
print "[No valid page definition given]"; print "[No valid page definition given]";
@@ -301,8 +294,8 @@ if ($form->yes) {
} }
// $form->debug('edit', "Elements: <pre>".$form->print_ar($elements)); // $form->debug('edit', "Elements: <pre>".$form->print_ar($elements));
$DATA['elements'] = $elements; $DATA['elements'] = $elements;
$DATA['hidden'] = $form->form_create_hidden_fields(); $DATA['hidden'] = $form->formCreateHiddenFields();
$DATA['save_delete'] = $form->form_create_save_delete(); $DATA['save_delete'] = $form->formCreateSaveDelete();
} }
// debug data, if DEBUG flag is on, this data is print out // 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($key, $value);
} }
// $smarty->assign('popup_page', 'mt_popup_'.$body_part.'.tpl');
$smarty->display('edit_body.tpl'); $smarty->display('edit_body.tpl');
// debug output // debug output
echo $login->print_error_msg(); echo $login->printErrorMsg();
echo $form->print_error_msg(); echo $form->printErrorMsg();
# __END__

View File

@@ -1,209 +1,196 @@
<? <?
/******************************************************************** /********************************************************************
* AUTHOR: Clemens Schwaighofer * AUTHOR: Clemens Schwaighofer
* CREATED: 2001/07/11 * CREATED: 2001/07/11
* SHORT DESCRIPTION: * SHORT DESCRIPTION:
* sets the order from a table (edit_) * sets the order from a table (edit_)
* HISTORY: * HISTORY:
* 2005/07/11 (cs) adept to new edit interface * 2005/07/11 (cs) adept to new edit interface
* 2002-10-18: little include changes * 2002-10-18: little include changes
* 2001-07-11: erste Version * 2001-07-11: erste Version
**********************************************************************/ **********************************************************************/
$DEBUG_ALL = 1; $DEBUG_ALL = 1;
$DB_DEBUG = 1; $DB_DEBUG = 1;
extract($_GET, EXTR_SKIP); extract($_GET, EXTR_SKIP);
extract($_POST, EXTR_SKIP); extract($_POST, EXTR_SKIP);
include("config.inc"); include("config.inc");
// overrride debug flags // set session name
if (!DEBUG) define('SET_SESSION_NAME', EDIT_SESSION_NAME);
{ // overrride debug flags
$DEBUG_ALL = 0; if (!DEBUG) {
$PRINT_ALL = 0; $DEBUG_ALL = 0;
$DB_DEBUG = 0; $PRINT_ALL = 0;
$ECHO_ALL = 0; $DB_DEBUG = 0;
// $DEBUG_TMPL = 0; $ECHO_ALL = 0;
} }
// set session name
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
require(LIBS."Class.Login.inc");
require(LIBS.'Class.Smarty.Extend.inc');
// default lang // default lang
if (!$lang) if (!$lang) {
$lang = DEFAULT_LANG; $lang = DEFAULT_LANG;
}
$table_width = 600; $table_width = 600;
if (!$table_width) if (!$table_width) {
$table_width = PAGE_WIDTH; $table_width = PAGE_WIDTH;
}
ob_end_flush(); ob_end_flush();
$login = new login($DB_CONFIG[LOGIN_DB], $lang); $login = new CoreLibs\ACL\Login($DB_CONFIG[LOGIN_DB], $lang);
$db = new db_io($DB_CONFIG[MAIN_DB]); $db = new CoreLibs\DB\IO($DB_CONFIG[MAIN_DB]);
$db->db_exec("SET search_path TO ".LOGIN_DB_SCHEMA); $db->dbExec("SET search_path TO ".LOGIN_DB_SCHEMA);
$smarty = new SmartyML($lang); $smarty = new CoreLibs\Template\SmartyExtend($lang);
if (TARGET == 'live' || TARGET == 'remote') if (TARGET == 'live' || TARGET == 'remote') {
{ // login
// login $login->debug_output_all = DEBUG ? 1 : 0;
$login->debug_output_all = DEBUG ? 1 : 0; $login->echo_output_all = 0;
$login->echo_output_all = 0; $login->print_output_all = DEBUG ? 1 : 0;
$login->print_output_all = DEBUG ? 1 : 0; // form
// form $db->debug_output_all = DEBUG ? 1 : 0;
$db->debug_output_all = DEBUG ? 1 : 0; $db->echo_output_all = 0;
$db->echo_output_all = 0; $db->print_output_all = DEBUG ? 1 : 0;
$db->print_output_all = DEBUG ? 1 : 0; }
} // set the template dir
// set the template dir if (defined('LAYOUT')) {
if (defined('LAYOUT')) $smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
{
$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
$DATA['css'] = LAYOUT.DEFAULT_TEMPLATE.CSS; $DATA['css'] = LAYOUT.DEFAULT_TEMPLATE.CSS;
$DATA['js'] = LAYOUT.DEFAULT_TEMPLATE.JS; $DATA['js'] = LAYOUT.DEFAULT_TEMPLATE.JS;
$HEADER['CSS'] = CSS; } else {
$HEADER['DEFAULT_ENCODING'] = DEFAULT_ENCODING; $smarty->setTemplateDir(TEMPLATES.DEFAULT_TEMPLATE);
$HEADER['JS'] = JS; $DATA['css'] = CSS.DEFAULT_TEMPLATE;
$HEADER['STYLESHEET'] = $EDIT_STYLESHEET; $DATA['js'] = JS.DEFAULT_TEMPLATE;
$HEADER['JAVASCRIPT'] = $EDIT_JAVASCRIPT; }
// html title
$HEADER['HTML_TITLE'] = ((!$L_TITLE) ? $smarty->l10n->__($G_TITLE) : $smarty->l10n->__($L_TITLE));
$DATA['table_width'] = $table_width; // order name is _always_ order_number for the edit interface
// error msg // follwing arrays do exist here:
if ($error) // $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,
$messages[] = array('msg' => $msg, 'class' => 'error', 'width' => $table_width); // there are the POSITION stored, that should CHANGE there order (up/down)
} // $row_data_id ... has ALL ids from the sorting part
$DATA['form_error_msg'] = $messages; // $row_data_order ... has ALL order positions from the soirting part
if (count($position)) {
$original_id = $row_data_id;
// all the row data // FIRST u have to put right sort, then read again ...
$options_id = array(); // hast to be >0 or the first one is selected and then there is no move
$options_name = array(); if ($up && $position[0] > 0) {
$options_selected = array(); for ($i = 0; $i < count($position); $i++) {
for ($i = 0; $i < count($row_data); $i ++) // change position order
{ // this gets temp, id before that, gets actual (moves one "down")
$options_id[] = $i; // this gets the old before (moves one "up")
$options_name[] = $row_data[$i]["name"]; // is done for every element in row
// list of points to order // 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 ($j = 0; $j < count($position); $j++) $temp_id = $row_data_id[$position[$i]];
{ $row_data_id[$position[$i]] = $row_data_id[$position[$i]-1];
// if matches, put into select array $row_data_id[$position[$i]-1] = $temp_id;
if ($original_id[$position[$j]] == $row_data[$i]["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>";
$options_selected[] = $i; } // 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_id'] = $options_id;
$DATA['options_selected'] = $options_selected; $DATA['options_name'] = $options_name;
$DATA['options_selected'] = $options_selected;
// hidden list for the data (id, order number) // hidden list for the data (id, order number)
$row_data_id = array(); $row_data_id = array();
$row_data_order = array(); $row_data_order = array();
for ($i = 0; $i < count($row_data); $i++) for ($i = 0; $i < count($row_data); $i++) {
{ $row_data_id[] = $row_data[$i]["id"];
$row_data_id[] = $row_data[$i]["id"]; $row_data_order[] = $row_data[$i]["order"];
$row_data_order[] = $row_data[$i]["order"]; }
} $DATA['row_data_id'] = $row_data_id;
$DATA['row_data_id'] = $row_data_id; $DATA['row_data_order'] = $row_data_order;
$DATA['row_data_order'] = $row_data_order;
// hidden names for the table & where string // hidden names for the table & where string
$DATA['table_name'] = $table_name; $DATA['table_name'] = $table_name;
$DATA['where_string'] = $where_string; $DATA['where_string'] = $where_string;
// debug data, if DEBUG flag is on, this data is print out // debug data, if DEBUG flag is on, this data is print out
$DEBUG_DATA['DEBUG'] = $DEBUG_TMPL; $DEBUG_DATA['DEBUG'] = $DEBUG_TMPL;
// create main data array // create main data array
$CONTENT_DATA = array_merge($HEADER, $DATA, $DEBUG_DATA); $CONTENT_DATA = array_merge($HEADER, $DATA, $DEBUG_DATA);
// data is 1:1 mapping (all vars, values, etc) // data is 1:1 mapping (all vars, values, etc)
while (list($key, $value) = each($CONTENT_DATA)) while (list($key, $value) = each($CONTENT_DATA)) {
{ $smarty->assign($key, $value);
$smarty->assign($key, $value); }
} $smarty->display('edit_order.tpl');
$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 <?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 // namespace test
ob_start(); ob_start();
@@ -10,11 +15,17 @@ DEFINE('SET_SESSION_NAME', EDIT_SESSION_NAME);
echo "CONFIG: ".CONFIG."<br>ROOT: ".ROOT."<br>BASE: ".BASE."<br>"; echo "CONFIG: ".CONFIG."<br>ROOT: ".ROOT."<br>BASE: ".BASE."<br>";
$lang = 'en_utf8'; $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 "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(); ob_end_flush();
print $base->printErrorMsg();
# __END__ # __END__

View File

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

View File

@@ -2,7 +2,7 @@
/********************************************************************* /*********************************************************************
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org) * AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2006/08/15 * CREATED: 2006/08/15
* VERSION: 0.1.0 * VERSION: 1.0.0
* RELEASED LICENSE: GNU GPL 3 * RELEASED LICENSE: GNU GPL 3
* DESCRIPTION * DESCRIPTION
* Basic Admin interface backend * Basic Admin interface backend
@@ -22,10 +22,9 @@
* *
*********************************************************************/ *********************************************************************/
// try to include file from LIBS path, or from normal path namespace CoreLibs\Admin;
_spl_autoload('Class.DB.IO.inc');
class AdminBackend extends db_io class Backend extends \CoreLibs\DB\IO
{ {
// page name // page name
public $page_name; // the name of the current page 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) public function __construct($db_config, $lang, $debug = 0, $db_debug = 0, $echo = 1, $print = 0)
{ {
// get the language sub class & init it // get the language sub class & init it
_spl_autoload('Class.l10n.inc'); $this->l = new \CoreLibs\Language\L10n($lang);
$this->l = new l10n($lang);
// init the database class // init the database class
// $this->db_io($db_config, $debug, $db_debug, $echo, $print); // $this->db_io($db_config, $debug, $db_debug, $echo, $print);
@@ -78,7 +75,7 @@ class AdminBackend extends db_io
); );
// set page name // set page name
$this->page_name = $this->get_page_name(); $this->page_name = $this->getPageName();
// set the action ids // set the action ids
foreach ($this->action_list as $_action) { foreach ($this->action_list as $_action) {
@@ -122,7 +119,7 @@ class AdminBackend extends db_io
// METHOD: adbEditLog() // METHOD: adbEditLog()
// PARAMS: event -> any kind of event description, data -> any kind of data related to that event // PARAMS: event -> any kind of event description, data -> any kind of data related to that event
// RETURN: none // 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') public function adbEditLog($event = '', $data = '', $write_type = 'STRING')
{ {
if ($write_type == 'BINARY') { if ($write_type == 'BINARY') {
@@ -162,7 +159,7 @@ class AdminBackend extends db_io
// METHOD: adbTopMenu // METHOD: adbTopMenu
// PARAMS: level // PARAMS: level
// RETURN: returns an array for the top menu with all correct settings // RETURN: returns an array for the top menu with all correct settings
// DESC: menu creater // DESC : menu creater
public function adbTopMenu($flag = 0) public function adbTopMenu($flag = 0)
{ {
if ($this->menu_show_flag) { if ($this->menu_show_flag) {
@@ -174,9 +171,7 @@ class AdminBackend extends db_io
if (!is_array($pages)) { if (!is_array($pages)) {
$pages = array (); $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 // if flag is 0, then we show all, else, we show only the matching flagges array points
// array is already sorted after correct order // array is already sorted after correct order
reset($pages); reset($pages);
@@ -244,7 +239,7 @@ class AdminBackend extends db_io
// METHOD: adbShowMenuPoint // METHOD: adbShowMenuPoint
// PARAMS: filename // PARAMS: filename
// RETURN: returns boolean true/false // 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) public function adbShowMenuPoint($filename)
{ {
$enabled = 0; $enabled = 0;
@@ -260,7 +255,7 @@ class AdminBackend extends db_io
// METHOD: adbAssocArray // METHOD: adbAssocArray
// PARAMS: db array, key, value part // PARAMS: db array, key, value part
// RETURN: returns and associative array // 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) public function adbAssocArray($db_array, $key, $value)
{ {
return $this->GenAssocArray($db_array, $key, $value); return $this->GenAssocArray($db_array, $key, $value);
@@ -270,7 +265,7 @@ class AdminBackend extends db_io
// METHOD: adbByteStringFormat // METHOD: adbByteStringFormat
// PARAMS: int // PARAMS: int
// RETURN: string // 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) public function adbByteStringFormat($number)
{ {
return $this->ByteStringFormat($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 // path -> if source start is not ROOT path, if empty ROOT is choosen
// cache -> cache path, if not given TMP is used // cache -> cache path, if not given TMP is used
// RETURN: thumbnail name // 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 = "") public function adbCreateThumbnail($pic, $size_x, $size_y, $dummy = false, $path = "", $cache = "")
{ {
return $this->CreateThumbnail($pic, $size_x, $size_y, $dummy, $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 // msg -> string, can be printf formated
// var array -> optional data for a possible printf formated msg // var array -> optional data for a possible printf formated msg
// RETURN: none // 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 ()) public function adbMsg($level, $msg, $vars = array ())
{ {
if (!preg_match("/^info|warning|error$/", $level)) { 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 // 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;..." // file -> string for special file copy actions; mostyle "test#live;..."
// RETURN: none // 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) public function adbLiveQueue($queue_key, $type, $target, $data, $key_name, $key_value, $associate = null, $file = null)
{ {
$q = "INSERT INTO ".GLOBAL_DB_SCHEMA.".live_queue ("; $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 // 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) // 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 // 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) public function adbPrintDateTime($year, $month, $day, $hour, $min, $suffix = '', $min_steps = 1)
{ {
// if suffix given, add _ before // if suffix given, add _ before
@@ -408,3 +403,5 @@ class AdminBackend extends db_io
return $string; return $string;
} }
} }
# __END__

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
* CREATED: 2002/12/17 * CREATED: 2002/12/17
* VERSION: 0.4.0 * VERSION: 0.4.0
* RELEASED LICENSE: GNU GPL 3 * RELEASED LICENSE: GNU GPL 3
* SHORT DESCRIPTION: * SHORT DESC :RIPTION:
* DB Array IO Class: * DB Array IO Class:
* writes, reads or deletes a complete array (one data set) in/out a * writes, reads or deletes a complete array (one data set) in/out a
* table from the connected DB. * table from the connected DB.
@@ -14,9 +14,9 @@
* *
* PRIVATE VARIABLES * PRIVATE VARIABLES
* *
* PUBLIC METHODS * PUBLIC METHOD:S
* *
* PRIVATE METHODS * PRIVATE METHOD:S
* *
* HISTORY: * HISTORY:
* 2005/07/07 (cs) updated array class for postgres: set 0 & NULL if int field given, insert uses () values () syntax * 2005/07/07 (cs) updated array class for postgres: set 0 & NULL if int field given, insert uses () values () syntax
@@ -36,11 +36,10 @@
// as it actually has nothing to do with this one here ? (or at least // as it actually has nothing to do with this one here ? (or at least
// put into separete function in this class) // put into separete function in this class)
// try to include file from LIBS path, or from normal path namespace CoreLibs\DB\Extended;
_spl_autoload('Class.DB.IO.inc');
// subclass for one array handling // subclass for one array handling
class db_array_io extends db_io class ArrayIO extends \CoreLibs\DB\IO
{ {
// main calss variables // main calss variables
public $table_array; // the array from the table to work on 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_name; // the primary key from this table
public $pk_id; // the PK id public $pk_id; // the PK id
// METHOD db_array_io // METHOD: db_array_io
// PARAMS db_config -> db_io class init vars // PARAMS: db_config -> db_io class init vars
// table_array -> the array from the table // table_array -> the array from the table
// table_name -> name of the table (for the array) // 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) // db_debug -> turn on db_io debug output (DB_DEBUG as global var does the same)
// RETURN none // RETURN: none
// DESC constructor for the array io class, set the // DESC : constructor for the array io class, set the
// primary key name automatically (from array) // primary key name automatically (from array)
public function __construct($db_config, $table_array, $table_name, $debug = 0, $db_debug = 0, $echo = 1, $print = 0) public function __construct($db_config, $table_array, $table_name, $debug = 0, $db_debug = 0, $echo = 1, $print = 0)
{ {
// instance db_io class // instance db_io class
@@ -90,14 +89,15 @@ class db_array_io extends db_io
parent::__destruct(); parent::__destruct();
} }
// METHOD convert_data // METHOD: convertData
// PARAMS string -> the string that should be changed // WAS : convert_data
// RETURN string -> the altered string // PARAMS: string -> the string that should be changed
// DESC changes all previously alterd HTML code into visible one, // RETURN: string -> the altered string
// works for <b>,<i>, and <a> (thought <a> can be / or should // DESC : changes all previously alterd HTML code into visible one,
// be handled with the magic links functions // works for <b>,<i>, and <a> (thought <a> can be / or should
// used with the read function // be handled with the magic links functions
public function convert_data($text) // 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);
$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; return $text;
} }
// METHOD convert_entities // METHOD: convertEntities
// PARAMS string -> string to be changed // WAS : convert_entities
// RETURN string -> altered string // PARAMS: string -> string to be changed
// DESC changeds all HTML entities into non HTML ones // RETURN: string -> altered string
public function convert_entities($text) // DESC : changeds all HTML entities into non HTML ones
public function convertEntities($text)
{ {
$text = str_replace('&lt;', '<', $text); $text = str_replace('&lt;', '<', $text);
$text = str_replace('&gt;', '>', $text); $text = str_replace('&gt;', '>', $text);
@@ -124,11 +125,12 @@ class db_array_io extends db_io
return $text; return $text;
} }
// METHOD db_dump_array // METHOD: dbDumpArray
// PARAMS none // WAS : db_dump_array
// RETURN returns the current array // PARAMS: none
// DESC dumps the current data // RETURN: returns the current array
public function db_dump_array($write = 0) // DESC : dumps the current data
public function dbDumpArray($write = 0)
{ {
reset($this->table_array); reset($this->table_array);
while (list($column, $data_array) = each($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; return $string;
} }
// METHOD _db_error // METHOD: dbCheckPkSet
// PARAMS none // WAS : db_check_pk_set
// RETURN none // PARAMS: none
// DESC writes errors to internal error string // RETURN: none
/* function _db_error() // 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 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()
{ {
// if pk_id is set, overrule ... // if pk_id is set, overrule ...
if ($this->pk_id) { if ($this->pk_id) {
@@ -168,18 +158,19 @@ class db_array_io extends db_io
if (!$this->table_array[$this->pk_name]["value"]) { if (!$this->table_array[$this->pk_name]["value"]) {
// if no PK found, error ... // if no PK found, error ...
$this->error_id = 21; $this->error_id = 21;
$this->_db_error(); $this->__dbError();
return 0; return 0;
} else { } else {
return 1; return 1;
} }
} }
// METHOD db_reset_array // METHOD: dbResetArray
// PARAMS reset_pk -> if set reset the pk too // WAS : db_reset_array
// RETURN none // PARAMS: reset_pk -> if set reset the pk too
// DESC resets the whole array // RETURN: none
public function db_reset_array($reset_pk = 0) // DESC : resets the whole array
public function dbResetArray($reset_pk = 0)
{ {
reset($this->table_array); reset($this->table_array);
while (list($column, $data_array) = each($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 // METHOD: dbDelete
// PARAMS optional the table_array, if not given uses class var // WAS : db_delete
// RETURN 1 for successfull delete or 0 for error // PARAMS: optional the table_array, if not given uses class var
// DESC deletes one dataset // RETURN: 1 for successfull delete or 0 for error
public function db_delete($table_array = 0) // DESC : deletes one dataset
public function dbDelete($table_array = 0)
{ {
if (is_array($table_array)) { if (is_array($table_array)) {
$this->table_array = $table_array; $this->table_array = $table_array;
} }
if (!$this->db_check_pk_set()) { if (!$this->dbCheckPkSet()) {
return $this->table_array; return $this->table_array;
} }
// delete query // delete query
@@ -209,7 +201,7 @@ class db_array_io extends db_io
// delete files and build FK query // delete files and build FK query
reset($this->table_array); reset($this->table_array);
while (list($column, $data_array) = each($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 ($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"])) { if (file_exists($this->table_array[$column]["path"].$this->table_array[$column]["value"])) {
unlink($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"]; $q_where .= $column." = ".$this->table_array[$column]["value"];
} }
// allgemeines zurücksetzen des arrays // allgemeines zurcksetzen des arrays
unset($this->table_array[$column]["value"]); unset($this->table_array[$column]["value"]);
} }
@@ -237,24 +229,25 @@ class db_array_io extends db_io
} }
// if 0, error // if 0, error
unset($this->pk_id); unset($this->pk_id);
if (!$this->db_exec($q)) { if (!$this->dbExec($q)) {
$this->error_id=22; $this->error_id=22;
$this->_db_error(); $this->__dbError();
} }
return $this->table_array; return $this->table_array;
} }
// METHOD db_read // METHOD: dbRead
// PARAMS edit -> if 1 data will not be altered for output, optional the table_array, if not given uses class var // WAS : db_read
// RETURN true or false for reading // PARAMS: edit -> if 1 data will not be altered for output, optional the table_array, if not given uses class var
// DESC reads one row into the array // RETURN: true or false for reading
public function db_read($edit = 0, $table_array = 0) // DESC : reads one row into the array
public function dbRead($edit = 0, $table_array = 0)
{ {
// if array give, overrules internal array // if array give, overrules internal array
if (is_array($table_array)) { if (is_array($table_array)) {
$this->table_array = $table_array; $this->table_array = $table_array;
} }
if (!$this->db_check_pk_set()) { if (!$this->dbCheckPkSet()) {
return $this->table_array; return $this->table_array;
} }
reset($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 query was executed okay, else set error
if ($this->db_exec($q)) { if ($this->dbExec($q)) {
if ($res = $this->db_fetch_array()) { if ($res = $this->dbFetchArray()) {
reset($this->table_array); reset($this->table_array);
while (list($column, $data_array) = each($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 // wenn "edit" dann gib daten wie in DB zurck, ansonten aufbereiten fr ausgabe
// ?? sollte das nicht draußen ??? man weis ja net was da drin steht --> is noch zu überlegen // ?? 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>"; // echo "EDIT: $edit | Spalte: $column | type: ".$this->table_array[$column]["type"]." | Res: ".$res[$column]."<br>";
if ($edit) { if ($edit) {
$this->table_array[$column]["value"] = $res[$column]; $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]; $this->table_array[$column]["HIDDEN_value"] = $res[$column];
} }
} else { } 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 // 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"]; $this->pk_id = $this->table_array[$this->pk_name]["value"];
} else { } else {
$this->error_id = 22; $this->error_id = 22;
$this->_db_error(); $this->__dbError();
} }
return $this->table_array; return $this->table_array;
} }
// METHOD db_write // METHOD: dbWrite
// PARAMS addslashes -> if 1 will make an addslashes for each array field, optional the table_array, if not given uses class var // WAS : db_write
// RETURN true or false on write // PARAMS: addslashes -> if 1 will make an addslashes for each array field, optional the table_array, if not given uses class var
// DESC writes on set into DB or updates one set (if PK exists) // RETURN: true or false on write
public function db_write($addslashes = 0, $table_array = 0) // 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)) { if (is_array($table_array)) {
$this->table_array = $table_array; $this->table_array = $table_array;
@@ -427,9 +421,9 @@ class db_array_io extends db_io
$q_data .= "'"; $q_data .= "'";
// if add slashes do convert & add slashes else write AS is // if add slashes do convert & add slashes else write AS is
if ($addslashes) { 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 { } else {
$q_data .= $this->db_escape_string($this->table_array[$column]["value"]); $q_data .= $this->dbEscapeString($this->table_array[$column]["value"]);
} }
$q_data .= "'"; $q_data .= "'";
} }
@@ -454,7 +448,7 @@ class db_array_io extends db_io
if (!$this->table_array[$this->pk_name]["value"]) { if (!$this->table_array[$this->pk_name]["value"]) {
// max id, falls INSERT // max id, falls INSERT
$q = "SELECT MAX(".$this->pk_name.") + 1 AS pk_id FROM ".$this->table_name; $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"]) { if (!$res["pk_id"]) {
$res["pk_id"] = 1; $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"]; // $this->pk_id = $this->table_array[$this->pk_name]["value"];
} }
// return success or not // return success or not
if (!$this->db_exec($q)) { if (!$this->dbExec($q)) {
$this->error_id = 22; $this->error_id = 22;
$this->_db_error(); $this->__dbError();
} }
// set primary key // set primary key
if ($insert) { if ($insert) {
@@ -494,4 +488,60 @@ class db_array_io extends db_io
// return the table if needed // return the table if needed
return $this->table_array; 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 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) * AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2003/04/09 * CREATED: 2003/04/09
* SHORT DESCRIPTION: * 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 * pgsql wrapper calls
* HISTORY: *
* HISTORY:
* 2008/04/16 (cs) wrapper for pg escape string * 2008/04/16 (cs) wrapper for pg escape string
* 2007/01/11 (cs) add prepare/execute for postgres * 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 * 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 $last_error_query;
private $dbh; 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) { if ($this->last_error_query) {
return true; return true;
@@ -60,11 +71,12 @@ class db_pgsql
} }
} }
// METHOD: _db_query // METHOD: __dbQuery
// WAS : _db_query
// PARAMS: query // PARAMS: query
// RETURN: query result // RETURN: query result
// DESC : wrapper for gp_query, catches error and stores it in class var // 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 = ''; $this->last_error_query = '';
// read out the query status and save the query if needed // read out the query status and save the query if needed
@@ -75,20 +87,22 @@ class db_pgsql
return $result; return $result;
} }
// METHOD: _db_send_query // METHOD: __dbSendQuery
// WAS : _db_send_query
// PARAMS: query // PARAMS: query
// RETURN: true/false if query was sent successful // RETURN: true/false if query was sent successful
// DESC : sends an async query to the server // 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); return pg_send_query($this->dbh, $query);
} }
// METHOD: _db_get_result // METHOD: __dbGetResult
// WAS : _db_get_result
// PARAMS: none // PARAMS: none
// RETURN: resource handler // RETURN: resource handler
// DESC : wrapper for pg_get_result // DESC : wrapper for pg_get_result
public function _db_get_result() public function __dbGetResult()
{ {
$this->last_error_query = ''; $this->last_error_query = '';
$result = pg_get_result($this->dbh); $result = pg_get_result($this->dbh);
@@ -98,11 +112,12 @@ class db_pgsql
return $result; return $result;
} }
// METHOD: _db_close // METHOD: __dbClose
// WAS : _db_close
// PARAMS: none // PARAMS: none
// RETURN: none // RETURN: none
// DESC : wrapper for pg_close // DESC : wrapper for pg_close
public function _db_close() public function __dbClose()
{ {
if (is_resource($this->dbh)) { if (is_resource($this->dbh)) {
if (pg_connection_status($this->dbh) === PGSQL_CONNECTION_OK) { 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 // PARAMS: prepare name, query
// RETURN: prepared statement handler // RETURN: prepared statement handler
// DESC : wrapper for pg_prepare // DESC : wrapper for pg_prepare
public function _db_prepare($name, $query) public function __dbPrepare($name, $query)
{ {
$result = pg_prepare($this->dbh, $name, $query); $result = pg_prepare($this->dbh, $name, $query);
if (!$result) { if (!$result) {
@@ -124,11 +140,12 @@ class db_pgsql
return $result; return $result;
} }
// METHOD: _db_execute // METHOD: __dbExecute
// WAS : _db_execute
// PARAMS: prepare name, data for query // PARAMS: prepare name, data for query
// RETURN: returns status // RETURN: returns status
// DESC : wrapper for pg_execute for running a prepared statement // 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); $result = pg_execute($this->dbh, $name, $data);
if (!$result) { if (!$result) {
@@ -137,73 +154,80 @@ class db_pgsql
return $result; return $result;
} }
// METHOD: _db_num_rows // METHOD: __dbNumRows
// WAS : _db_num_rows
// PARAMS: cursor // PARAMS: cursor
// RETURN: rows // RETURN: rows
// DESC : wrapper for pg_num_rows // DESC : wrapper for pg_num_rows
public function _db_num_rows($cursor) public function __dbNumRows($cursor)
{ {
return pg_num_rows($cursor); return pg_num_rows($cursor);
} }
// METHOD: _db_num_fields // METHOD: __dbNumFields
// WAS : _db_num_fields
// PARAMS: cursor // PARAMS: cursor
// RETURN: number for fields in query // RETURN: number for fields in query
// DESC : wrapper for pg_num_fields // DESC : wrapper for pg_num_fields
public function _db_num_fields($cursor) public function __dbNumFields($cursor)
{ {
return pg_num_fields($cursor); return pg_num_fields($cursor);
} }
// METHOD: _db_field_name // METHOD: __dbFieldName
// WAS : _db_field_name
// PARAMS: cursor, field position // PARAMS: cursor, field position
// RETURN: name of field // RETURN: name of field
// DESC : wrapper for pg_field_name // DESC : wrapper for pg_field_name
public function _db_field_name($cursor, $i) public function __dbFieldName($cursor, $i)
{ {
return pg_field_name($cursor, $i); return pg_field_name($cursor, $i);
} }
// METHOD: _db_fetch_array // METHOD: __dbFetchArray
// WAS : _db_fetch_array
// PARAMS: cursor, opt result type // PARAMS: cursor, opt result type
// RETURN: row // RETURN: row
// DESC : wrapper for pg_fetch_array // 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] // result type is passed on as is [should be checked]
if ($result_type) { if ($result_type) {
return pg_fetch_array($cursor, NULL, $result_type); return pg_fetch_array($cursor, null, $result_type);
} else { } else {
return pg_fetch_array($cursor); return pg_fetch_array($cursor);
} }
} }
// METHOD: _db_fetch_all // METHOD: __dbFetchAll
// WAS : _db_fetch_all
// PARAMS: cursor // PARAMS: cursor
// RETURN: all rows as array // RETURN: all rows as array
// DESC : wrapper for pg_fetch_array // DESC : wrapper for pg_fetch_array
public function _db_fetch_all($cursor) public function __dbFetchAll($cursor)
{ {
return pg_fetch_all($cursor); return pg_fetch_all($cursor);
} }
// METHOD: _db_affected_ros // METHOD: __dbAffectedRows
// WAS : _db_affected_rows
// PARAMS: cursor // PARAMS: cursor
// RETURN: number for rows // RETURN: number for rows
// DESC : wrapper for pg_affected_rows // DESC : wrapper for pg_affected_rows
public function _db_affected_rows($cursor) public function __dbAffectedRows($cursor)
{ {
return pg_affected_rows($cursor); return pg_affected_rows($cursor);
} }
// METHOD: _db_insert_id // METHOD: __dbInsertId
// WAS : _db_insert_id
// PARAMS: query, primary key name // PARAMS: query, primary key name
// RETURN: last insert primary key // RETURN: last insert primary key
// DESC : reads the last inserted primary key for the query // 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 // 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 // this only works if db schema is after "no plural names. and pk name is table name + _id
// detects schema prefix in table name // 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 // only if an insert has been done
if (preg_match("/^insert /i", $query)) { if (preg_match("/^insert /i", $query)) {
@@ -229,8 +253,8 @@ class db_pgsql
$q = "SELECT CURRVAL('$seq') AS insert_id"; $q = "SELECT CURRVAL('$seq') AS insert_id";
// $this->currval_query = $q; // $this->currval_query = $q;
// I have to do manually or I overwrite the original insert internal vars ... // I have to do manually or I overwrite the original insert internal vars ...
if ($q = $this->_db_query($q)) { if ($q = $this->__dbQuery($q)) {
list($id) = $this->_db_fetch_array($q); list($id) = $this->__dbFetchArray($q);
} else { } else {
$id = array(-1, $q); $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 // PARAMS: table and optional schema
// RETURN: primary key name OR false if not possible // RETURN: primary key name OR false if not possible
// DESC : queries database for the primary key name to this table in the selected schema // 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) { if ($table) {
// check if schema set is different from schema given, only needed if schema is not empty // check if schema set is different from schema given, only needed if schema is not empty
$table_prefix = ''; $table_prefix = '';
if ($schema) { if ($schema) {
$q = "SHOW search_path"; $q = "SHOW search_path";
$cursor = $this->_db_query($q); $cursor = $this->__dbQuery($q);
$search_path = $this->_db_fetch_array($cursor)['search_path']; $search_path = $this->__dbFetchArray($cursor)['search_path'];
if ($search_path != $schema) { if ($search_path != $schema) {
$table_prefix = $schema.'.'; $table_prefix = $schema.'.';
} }
@@ -273,9 +298,9 @@ class db_pgsql
$q .= "pg_attribute.attrelid = pg_class.oid AND "; $q .= "pg_attribute.attrelid = pg_class.oid AND ";
$q .= "pg_attribute.attnum = any(pg_index.indkey) "; $q .= "pg_attribute.attnum = any(pg_index.indkey) ";
$q .= "AND indisprimary"; $q .= "AND indisprimary";
$cursor = $this->_db_query($q); $cursor = $this->__dbQuery($q);
if ($cursor) { if ($cursor) {
return $this->_db_fetch_array($cursor)['column_name']; return $this->__dbFetchArray($cursor)['column_name'];
} else { } else {
return false; 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) // PARAMS: host name, user name, password, database name, optional port (defaults to default postgres port), optional ssl (default allow)
// RETURN: database handler // RETURN: database handler
// DESC : wrapper for pg_connect, writes out failure to screen if error occurs (hidden var) // 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 // to avoid empty db_port
if (!$db_port) { if (!$db_port) {
@@ -301,11 +327,12 @@ class db_pgsql
return $this->dbh; return $this->dbh;
} }
// METHOD: _db_print_error // METHOD: __dbPrintError
// WAS : _db_print_error
// PARAMS: database handler, cursor // PARAMS: database handler, cursor
// RETURN: error string (HTML) // RETURN: error string (HTML)
// DESC : reads the last error for this cursor // 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 // run the query again for the error result here
if (!$cursor && $this->last_error_query) { 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 // PARAMS: table name
// RETURN: array with table data // RETURN: array with table data
// DESC : wrapper for pg_emta_data // DESC : wrapper for pg_emta_data
public function _db_meta_data($table) public function __dbMetaData($table)
{ {
return pg_meta_data($this->dbh, $table); return pg_meta_data($this->dbh, $table);
} }
// METHOD: _db_escape_string // METHOD: __dbEscapeString
// WAS : _db_escape_string
// PARAMS: string // PARAMS: string
// RETURN: escaped string for postgres // RETURN: escaped string for postgres
// DESC : wrapper for pg_escape_string // DESC : wrapper for pg_escape_string
public function _db_escape_string($string) public function __dbEscapeString($string)
{ {
return pg_escape_string($this->dbh, $string); return pg_escape_string($this->dbh, $string);
} }
// METHOD: _db_escape_bytea // METHOD: __dbEscapeBytea
// WAS : _db_escape_bytea
// PARAMS: string // PARAMS: string
// RETURN: escape bytes for postgres // RETURN: escape bytes for postgres
// DESC : wrapper for pg_escape_bytea // DESC : wrapper for pg_escape_bytea
public function _db_escape_bytea($bytea) public function __dbEscapeBytea($bytea)
{ {
return pg_escape_bytea($this->dbh, $bytea); return pg_escape_bytea($this->dbh, $bytea);
} }
// METHOD: _db_connection_busy // METHOD: __dbConnectionBusy
// WAS : _db_connection_busy
// PARAMS: none // PARAMS: none
// RETURN: true/false for busy connection // RETURN: true/false for busy connection
// DESC : wrapper for pg_connection_busy // DESC : wrapper for pg_connection_busy
public function _db_connection_busy() public function __dbConnectionBusy()
{ {
return pg_connection_busy($this->dbh); return pg_connection_busy($this->dbh);
} }
// METHOD: _db_version // METHOD: __dbVersion
// WAS : _db_version
// PARAMS: none // PARAMS: none
// RETURN: databse version // RETURN: databse version
// DESC : wrapper for pg_version // DESC : wrapper for pg_version
public function _db_version() public function __dbVersion()
{ {
// array has client, protocol, server // array has client, protocol, server
// we just need the server // we just need the server
@@ -366,13 +398,14 @@ class db_pgsql
return $v['server']; return $v['server'];
} }
// METHOD: _db_array_parse // METHOD: __dbArrayParse
// WAS : _db_array_parse
// PARAMS: input text, output array [needed] // PARAMS: input text, output array [needed]
// [internal] limit: are we at the end of the parse // [internal] limit: are we at the end of the parse
// [internal] offset: shift for {} // [internal] offset: shift for {}
// RETURN: array with the elements // RETURN: array with the elements
// DESC : postgresql array to php array // 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) { if (false === $limit) {
$limit = strlen($text) - 1; $limit = strlen($text) - 1;
@@ -395,3 +428,5 @@ class db_pgsql
return $output; 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 <?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; namespace CoreLibs\Language\Core;
class FileReader 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) * AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2004/11/18 * CREATED: 2004/11/18
* VERSION: 0.1.1 * VERSION: 1.0.0
* RELEASED LICENSE: GNU GPL 3 * RELEASED LICENSE: GNU GPL 3
* SHORT DESCRIPTION: * SHORT DESCRIPTION:
* init class for gettext. Original was just a function & var setting include for wordpress. * init class for gettext. Original was just a function & var setting include for wordpress.
@@ -14,7 +14,7 @@
* *
* PUBLIC METHODS * PUBLIC METHODS
* __: returns string (translated or original if not found) * __: 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. * __ngettext: should return plural. never tested this.
* *
* PRIVATE METHODS * PRIVATE METHODS
@@ -23,10 +23,12 @@
* 2005/10/17 (cs) made an on the fly switch method (reload of lang) * 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 namespace CoreLibs\Language;
_spl_autoload('Class.Basic.inc');
class l10n extends basic use \CoreLibs\Language\Core\FileReader;
use \CoreLibs\Language\Core\GetTextReader;
class L10n extends \CoreLibs\Basic
{ {
private $lang = ''; private $lang = '';
private $mofile = ''; private $mofile = '';
@@ -35,10 +37,6 @@ class l10n extends basic
public function __construct($lang = '', $path = DEFAULT_TEMPLATE) public function __construct($lang = '', $path = DEFAULT_TEMPLATE)
{ {
foreach (array('streams.php', 'gettext.php') as $include_file) {
_spl_autoload($include_file);
}
if (!$lang) { if (!$lang) {
$this->lang = 'en'; $this->lang = 'en';
} else { } else {
@@ -60,7 +58,7 @@ class l10n extends basic
$this->input = false; $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 // 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 // check if get a readable mofile
if (is_readable($this->mofile)) { if (is_readable($this->mofile)) {
$this->input = new FileReader($this->mofile); $this->input = new FileReader($this->mofile);
$this->l10n = new gettext_reader($this->input); $this->l10n = new GetTextReader($this->input);
} else { } else {
// else fall back to the old ones // else fall back to the old ones
$this->mofile = $old_mofile; $this->mofile = $old_mofile;
@@ -95,7 +93,7 @@ class l10n extends basic
return $this->l10n->translate($text); return $this->l10n->translate($text);
} }
public function _e($text) public function __e($text)
{ {
echo $this->l10n->translate($text); echo $this->l10n->translate($text);
} }
@@ -106,12 +104,12 @@ class l10n extends basic
return $this->l10n->ngettext($single, $plural, $number); return $this->l10n->ngettext($single, $plural, $number);
} }
public function __get_lang() public function __getLang()
{ {
return $this->lang; return $this->lang;
} }
public function __get_mofile() public function __getMoFile()
{ {
return $this->mofile; return $this->mofile;
} }

View File

@@ -210,10 +210,9 @@
* save data, loads data, etc * save data, loads data, etc
*********************************************************************/ *********************************************************************/
// try to include file from LIBS path, or from normal path namespace CoreLibs\Output\Form;
_spl_autoload('Class.DB.Array.IO.inc');
class form extends db_array_io class Generate extends \CoreLibs\DB\Extended\ArrayIO
{ {
// rest // rest
public $field_array = array (); // for the load statetment describes which elements from the load query should be shown and i which format 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) // now some default error msgs (english)
public $language_array = array (); public $language_array = array ();
// METHOD constructor // METHOD: constructor
// PARAMS $db_config -> connect to DB // PARAMS: $db_config -> connect to DB
// $lang -> language code ("en", "ja", etc) // $lang -> language code ("en", "ja", etc)
// $table_width -> width of table // $table_width -> width of table
// $db_debug -> turns db_io debug on/off (DB_DEBUG as global var does the same) // $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) 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 // init the language class
_spl_autoload('Class.l10n.inc'); $this->l = new \CoreLibs\Language\L10n($lang);
$this->l = new l10n($lang);
// load config array // load config array
// get table array definitions for current page name // 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 // 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"); include(TABLE_ARRAYS."array_".$this->my_page_name.".inc");
$config_array = ${$this->my_page_name}; $config_array = ${$this->my_page_name};
// start the array_io class which will start db_io ... // 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) // dumps all values into output (for error msg)
public function form_dump_table_array() public function formDumpTableArray()
{ {
if (!is_array($this->table_array)) { if (!is_array($this->table_array)) {
$this->table_array = array (); $this->table_array = array ();
@@ -338,49 +334,14 @@ class form extends db_array_io
parent::__destruct(); parent::__destruct();
} }
/***************************************************** // METHOD: formGetColNameFromKey
Along here are wrapper functions for the former, old names // 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
public function form_load() // RETURN: the value of the $want_key array field
{ // works only with fields that appear only ONCE
return $this->form_create_load(); // if multiple gets only FIRST
} public function formGetColNameFromKey($want_key, $key_value = "")
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 = "")
{ {
if (!is_array($this->table_array)) { if (!is_array($this->table_array)) {
$this->table_array = array (); $this->table_array = array ();
@@ -395,11 +356,12 @@ class form extends db_array_io
} }
} }
// METHOD form_get_col_name_array_from_key // METHOD: formGetColNameArrayFromKey
// PARAMS $want_key: the key where u want the data from // WAS : form_get_col_name_array_from_key
// $key_value: if set searches for special right value // PARAMS: $want_key: the key where u want the data from
// RETURN array of fields // $key_value: if set searches for special right value
public function form_get_col_name_array_from_key($want_key, $key_value = "") // RETURN: array of fields
public function formGetColNameArrayFromKey($want_key, $key_value = "")
{ {
$key_array = array(); $key_array = array();
if (!is_array($this->table_array)) { if (!is_array($this->table_array)) {
@@ -417,10 +379,11 @@ class form extends db_array_io
return $key_array; return $key_array;
} }
// METHOD form_print_msg // METHOD: formPrintMsg
// PARAMS none // WAS : form_print_msg
// RETURN formated output for the error && warning msg // PARAMS: none
public function form_print_msg() // RETURN: formated output for the error && warning msg
public function formPrintMsg()
{ {
if ($this->error) { if ($this->error) {
$class = "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 // next for functions are pre_test fkts for easier default new,load, etc handling
// METHOD form_procedure_load // METHOD: formProcedureLoad
// PARAMS archive_id - which ID should be loaded // WAS : form_procedure_load
// RETURN none // PARAMS: archive_id - which ID should be loaded
// DESC default load procedure // RETURN: none
public function form_procedure_load($archive_id) // DESC : default load procedure
public function formProcedureLoad($archive_id)
{ {
if ($this->archive && $archive_id && $this->group_level_user <= $this->security_level["load"]) { if ($this->archive && $archive_id && $this->group_level_user <= $this->security_level["load"]) {
$this->form_load_table_array($archive_id); $this->form_load_table_array($archive_id);
@@ -444,11 +408,12 @@ class form extends db_array_io
} }
} }
// METHOD form_procedure_new // METHOD: formProcedureNew
// PARAMS none // WAS : form_procedure_new
// RETURN none // PARAMS: none
// DESC default new procedure // RETURN: none
public function form_procedure_new() // DESC : default new procedure
public function formProcedureNew()
{ {
if ($this->new && $this->group_level_user <= $this->security_level["new"]) { if ($this->new && $this->group_level_user <= $this->security_level["new"]) {
if ($this->really_new == "yes") { if ($this->really_new == "yes") {
@@ -461,11 +426,12 @@ class form extends db_array_io
} }
} }
// METHOD form_procedure_save // METHOD: formProcedureSave
// PARAMS none // WAS : form_procedure_save
// RETURN none // PARAMS: none
// DESC default save procedure // RETURN: none
public function form_procedure_save() // DESC : default save procedure
public function formProcedureSave()
{ {
if ($this->save && $this->group_level_user <= $this->security_level["save"]) { if ($this->save && $this->group_level_user <= $this->security_level["save"]) {
$this->form_error_check(); $this->form_error_check();
@@ -476,11 +442,12 @@ class form extends db_array_io
} }
} }
// METHOD form_procedure_delete // METHOD: formProcedureDelete
// PARAMS none // WAS : form_procedure_delete
// RETURN none // PARAMS: none
// DESC default delete procedure // RETURN: none
public function form_procedure_delete() // DESC : default delete procedure
public function formProcedureDelete()
{ {
// delete is also by "protected" // delete is also by "protected"
if ($this->delete && $this->group_level_user <= $this->security_level["delete"] && !$this->table_array["protected"]["value"]) { 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 // METHOD: formProcedureDeleteFromElementList
// PARAMS none // WAS : form_procedure_delete_from_element_list
// RETURN none // PARAMS: none
// DESC default delete procedure // RETURN: none
public function form_procedure_delete_from_element_list($element_list, $remove_name) // DESC : default delete procedure
public function formProcedureDeleteFromElementList($element_list, $remove_name)
{ {
// only do if the user is allowed to delete // 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) { if ($this->group_level_user <= $this->security_level["delete"] && !$this->table_array["protected"]["value"] && !$this->error) {
for ($i = 0; $i < count($element_list); $i ++) { 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 // if prefix, set it
$prfx = ($this->element_list[$element_list[$i]]["prefix"]) ? $this->element_list[$element_list[$i]]["prefix"]."_" : ''; $prfx = ($this->element_list[$element_list[$i]]["prefix"]) ? $this->element_list[$element_list[$i]]["prefix"]."_" : '';
// get the primary key // 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"]) { } 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 [$id] [$prfx.$pk_name]");
//$this->debug('form_clean', "ID arr: ".$this->print_ar($_POST[$id])); // $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', "PK arr: ".$this->print_ar($_POST[$prfx.$pk_name]));
for ($j = 0; $j < count($_POST[$prfx.$pk_name]); $j ++) { for ($j = 0; $j < count($_POST[$prfx.$pk_name]); $j ++) {
if (!$_POST[$remove_name[$i]][$j] && $_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]; $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->db_exec($q);
$this->msg .= $this->l->__("Deleted deselected entries from list<br>"); $this->msg .= $this->l->__("Deleted deselected entries from list<br>");
$this->warning = 1; $this->warning = 1;
@@ -560,10 +528,11 @@ class form extends db_array_io
} }
} }
// METHOD form_create_load // METHOD: formCreateLoad
// PARAMS none // WAS : form_create_load
// RETURN string from "load" part of form ... // PARAMS: none
public function form_create_load() // RETURN: string from "load" part of form ...
public function formCreateLoad()
{ {
// when security leve is okay ... // when security leve is okay ...
if ($this->group_level_user <= $this->security_level["load"]) { 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"]]; $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; $pk_names[] = $t_string;
} }
} // show it at all } // show it at all
return array('t_pk_name' => $t_pk_name, 'pk_ids' => $pk_ids, 'pk_names' => $pk_names, 'pk_selected' => $pk_selected); return array('t_pk_name' => $t_pk_name, 'pk_ids' => $pk_ids, 'pk_names' => $pk_names, 'pk_selected' => $pk_selected);
} }
// METHOD form_create_new // METHOD: formCreateNew
// PARAMS none // WAS : form_create_new
// RETURN part for new // PARAMS: none
public function form_create_new($hide_new_checkbox = 0) // RETURN: part for new
public function formCreateNew($hide_new_checkbox = 0)
{ {
// when security level is okay // when security level is okay
if ($this->group_level_user <= $this->security_level["new"]) { 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); return array('new_name' => $new_name, 'show_checkbox' => $show_checkbox);
} }
// METHOD form_create_save_delete // METHOD: formCreateSaveDelete
// PARAMS none // WAS : form_create_save_delete
// RETURN string for delete / save part // PARAMS: none
public function form_create_save_delete($hide_delete = 0, $hide_delete_checkbox = 0) // 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"]) { if ($this->group_level_user <= $this->security_level["save"] || $this->group_level_user <= $this->security_level["delete"]) {
$old_school_hidden = 0; $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); 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 } // end of function
// METHOD form_create_element // METHOD: formCreateElement
// PARAMS $element_name: the name from the array, you want to have build // WAS : form_create_element
// $query: can overrule internal query data, // PARAMS: $element_name: the name from the array, you want to have build
// for drop down, as data comes from a reference table // $query: can overrule internal query data,
// for drop_down_text it has to be an array with $key->$value // for drop down, as data comes from a reference table
// RETURN element in HTML // for drop_down_text it has to be an array with $key->$value
public function form_create_element($element_name, $query = "") // RETURN: element in HTML
public function formCreateElement($element_name, $query = "")
{ {
// special 2nd color for "binary" attribut // special 2nd color for "binary" attribut
if ($this->table_array[$element_name]["type"] == "binary" && !$this->table_array[$element_name]["value"]) { 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); return array('output_name' => $output_name, 'color' => $EDIT_FGCOLOR_T, 'type' => $type, 'data' => $data);
} }
// METHOD form_error_check // METHOD: formErrorCheck
// PARAMS none // WAS : form_error_check
// RETURNS full error message string for output // PARAMS: none
// RETURN: full error message string for output
// should be cought like this ... // should be cought like this ...
// if ($msg=$form->form_error_check()) // if ($msg=$form->form_error_check())
// $error=1; // $error=1;
public function form_error_check() public function formErrorCheck()
{ {
if (!is_array($this->table_array)) { if (!is_array($this->table_array)) {
$this->table_array = 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 error value set && somethign input, check if input okay
if ($value["error_check"] && $this->table_array[$key]["value"]) { if ($value["error_check"] && $this->table_array[$key]["value"]) {
// each error check can be a piped seperated value, lets split it // 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) { foreach (explode('|', $value["error_check"]) as $error_check) {
switch ($error_check) { switch ($error_check) {
case "number": case "number":
@@ -889,20 +859,20 @@ class form extends db_array_io
} }
break; break;
case "alphanumericspace": case "alphanumericspace":
//$this->debug('edit', 'IN Alphanumericspace'); // $this->debug('edit', 'IN Alphanumericspace');
if (!preg_match("/^[0-9A-Za-z\ ]+$/", $this->table_array[$key]["value"])) { 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"]); $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; break;
case "alphanumeric": case "alphanumeric":
//$this->debug('edit', 'IN Alphanumeric'); // $this->debug('edit', 'IN Alphanumeric');
if (!preg_match("/^[0-9A-Za-z_\-]+$/", $this->table_array[$key]["value"])) { 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"]); $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; break;
// this one also allows @ and . // this one also allows @ and .
case "alphanumericextended": case "alphanumericextended":
//$this->debug('edit', 'IN Alphanumericextended'); // $this->debug('edit', 'IN Alphanumericextended');
if (!preg_match("/^[0-9A-Za-z_\-@\.]+$/", $this->table_array[$key]["value"])) { 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"]); $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 // main if end
) { ) {
// if mandatory && no input // 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") { 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"]); $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)) { if (is_array($this->element_list)) {
// check the mandatory stuff // check the mandatory stuff
// if mandatory, check that at least on pk exists or if at least the mandatory field is filled // if mandatory, check that at least on pk exists or if at least the mandatory field is filled
@@ -988,10 +958,10 @@ class form extends db_array_io
if (count($_POST[$prfx.$key]) > $max) { if (count($_POST[$prfx.$key]) > $max) {
$max = count($_POST[$prfx.$key]); $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', "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', "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 # check each row
for ($i = 0; $i < $max; $i ++) { for ($i = 0; $i < $max; $i ++) {
// either one of the post pks is set, or the mandatory // either one of the post pks is set, or the mandatory
@@ -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 // 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 // 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]) { if ($data_array["mandatory"] && $_POST[$prfx.$el_name][$i]) {
$mand_okay = 1; $mand_okay = 1;
$row_okay[$i] = 1; $row_okay[$i] = 1;
} elseif ($data_array['type'] == 'radio_group' && !isset($_POST[$prfx.$el_name])) { } elseif ($data_array['type'] == 'radio_group' && !isset($_POST[$prfx.$el_name])) {
// radio group and set where one not active // 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; $row_okay[$_POST[$prfx.$el_name][$i]] = 0;
$default_wrong[$_POST[$prfx.$el_name][$i]] = 1; $default_wrong[$_POST[$prfx.$el_name][$i]] = 1;
$error[$_POST[$prfx.$el_name][$i]] = 1; $error[$_POST[$prfx.$el_name][$i]] = 1;
} elseif ($_POST[$prfx.$el_name][$i] && !$error[$i]) { } elseif ($_POST[$prfx.$el_name][$i] && !$error[$i]) {
//$this->debug('edit_error_chk', "[$i]"); // $this->debug('edit_error_chk', "[$i]");
$element_set[$i] = 1; $element_set[$i] = 1;
$row_okay[$i] = 1; $row_okay[$i] = 1;
} elseif ($data_array["mandatory"] && !$_POST[$prfx.$el_name][$i]) { } elseif ($data_array["mandatory"] && !$_POST[$prfx.$el_name][$i]) {
@@ -1068,11 +1038,12 @@ class form extends db_array_io
} }
} }
// METHOD form_set_order // METHOD: formSetOrder
// PARAMS none // WAS: form_set_order
// RETURN the table array // PARAMS: none
// DOES sets the order to the maximum, if order flag is set in array // RETURN: the table array
public function form_set_order() // DESC : sets the order to the maximum, if order flag is set in array
public function formSetOrder()
{ {
// get order name // get order name
$order_name = $this->form_get_col_name_from_key("order"); $order_name = $this->form_get_col_name_from_key("order");
@@ -1095,11 +1066,12 @@ class form extends db_array_io
return $this->table_array; return $this->table_array;
} }
// METHOD form_unsert_table_array // METHOD: formUnsetTableArray
// PARAMS none // WAS : form_unsert_table_array
// RETURN none // PARAMS: none
// DOES resets all values in table_array and in the reference tables // RETURN: none
public function form_unset_table_array() // DESC : resets all values in table_array and in the reference tables
public function formUnsetTableArray()
{ {
unset($this->pk_id); unset($this->pk_id);
if (!is_array($this->table_array)) { if (!is_array($this->table_array)) {
@@ -1127,11 +1099,12 @@ class form extends db_array_io
$this->msg = $this->l->__("Cleared for new Dataset!"); $this->msg = $this->l->__("Cleared for new Dataset!");
} }
// METHOD form_load_table_array // METHOD: formLoadTableArray
// PARAMS pk_id - overrule pk_id // WAS : form_load_table_array
// RETURN none // PARAMS: pk_id - overrule pk_id
// DESC load a table & reference // RETURN: none
public function form_load_table_array($pk_id = 0) // DESC : load a table & reference
public function formLoadTableArray($pk_id = 0)
{ {
if ($pk_id) { if ($pk_id) {
$this->pk_id = $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>"); $this->msg = $this->l->__("Dataset has been loaded!<br>");
} }
// METHOD form_save_table_array // METHOD: formSaveTableArray
// PARAMS addslashes - if one, passes 1 to the db_write function // WAS : form_save_table_array
// RETURN none // PARAMS: addslashes - if one, passes 1 to the db_write function
// DESC save a table, reference and all input fields // RETURN: none
public function form_save_table_array($addslashes = 0) // DESC : save a table, reference and all input fields
public function formSaveTableArray($addslashes = 0)
{ {
// global $_FILES; // global $_FILES;
// for drop_down_db_input check if text field is filled and if, if not yet in db ... // 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>"); $this->msg = $this->l->__("Dataset has been saved!<Br>");
} }
// METHOD form_delete_table_array // METHOD: formDeleteTableArray
// PARAMS none // WAS : form_delete_table_array
// RETURN none // PARAMS: none
// DESC delete a table and reference fields // RETURN: none
public function form_delete_table_array() // DESC : delete a table and reference fields
public function formDeleteTableArray()
{ {
// remove any reference arrays // remove any reference arrays
if (is_array($this->reference_array)) { if (is_array($this->reference_array)) {
@@ -1462,11 +1437,12 @@ class form extends db_array_io
$this->msg = $this->l->__("Dataset has been deleted!"); $this->msg = $this->l->__("Dataset has been deleted!");
} }
// METHOD form_create_hidden_fields // METHOD: formCreateHiddenFields
// PARAMS $hidden_array // WAS : form_create_hidden_fields
// RETURNS the input fields (html) // PARAMS: $hidden_array
// creates HTML hidden input fields out of an hash array // RETURN: the input fields (html)
public function form_create_hidden_fields($hidden_array = "") // DESC : creates HTML hidden input fields out of an hash array
public function formCreateHiddenFields($hidden_array = "")
{ {
$hidden = array (); $hidden = array ();
if (!is_array($this->table_array)) { if (!is_array($this->table_array)) {
@@ -1487,11 +1463,12 @@ class form extends db_array_io
return $hidden; return $hidden;
} }
// METHOD form_create_element_reference_table // METHOD: formCreateElementReferenceTable
// PARAMS show which reference table // WAS : form_create_element_reference_table
// RETURN array for output // PARAMS: show which reference table
// DESC creates the multiple select part for a reference_table // RETURN: array for output
public function form_create_element_reference_table($table_name) // DESC : creates the multiple select part for a reference_table
public function formCreateElementReferenceTable($table_name)
{ {
$output_name = $this->reference_array[$table_name]["output_name"]; $output_name = $this->reference_array[$table_name]["output_name"];
if ($this->reference_array[$table_name]["mandatory"]) { 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); return array('output_name' => $output_name, 'type' => $type, 'color' => 'edit_fgcolor', 'data' => $data);
} }
// METHOD form_create_element_list // METHOD: formCreateElementListTable
// PARAMS show which element list // WAS : form_create_element_list
// RETURN array for output // PARAMS: show which element list
// DESC create list of elements next to each other for a group of data in an input field // RETURN: array for output
// this currently only works for a list that is filled from a sub table and creates only a connection to this one // DESC : create list of elements next to each other for a group of data in an input field
// new version will allow a sub list with free input fields to directly fill a sub table to a master table // this currently only works for a list that is filled from a sub table and creates only a connection to this one
public function form_create_element_list_table($table_name) // 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 for the viewable left table td box, prefixed with * if mandatory
$output_name = $this->element_list[$table_name]["output_name"]; $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) // generic data read in (counts for all rows)
// visible list data output // visible list data output
while (list($el_name, $data_array) = each($this->element_list[$table_name]["elements"])) { 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 // 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 $q_select[] = $el_name; // this is for reading the data
// prefix the name for any further data parts // 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') { if ($data_array['type'] == 'drop_down_db') {
$md_q = md5($data_array['query']); $md_q = md5($data_array['query']);
while ($res = $this->db_return($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 // first is default for this element
if (!$data['preset'][$el_name] && ($this->cursor_ext[$md_q]["pos"] == $data_array['preset'])) { if (!$data['preset'][$el_name] && ($this->cursor_ext[$md_q]["pos"] == $data_array['preset'])) {
$data['preset'][$el_name] = $res[0]; $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 $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 DATA', 'Data: '.$this->print_ar($data));
// $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto)); // $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto));
// $this->debug('CFG SELECT', 'Proto: '.$this->print_ar($q_select)); // $this->debug('CFG SELECT', 'Proto: '.$this->print_ar($q_select));
// query for reading in the data // 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 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"]) { if ($this->element_list[$table_name]["read_data"]) {
// we need a second one for the query build only // 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'; $data['type'][$data["prefix"].$this->element_list[$table_name]["read_data"]["name"]] = 'string';
// build the read query // build the read query
$q = "SELECT "; $q = "SELECT ";
// if (!$this->table_array[$this->int_pk_name]["value"]) // if (!$this->table_array[$this->int_pk_name]["value"])
// $q .= "DISTINCT "; // $q .= "DISTINCT ";
// prefix join key with table name, and implode the query select part // 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)).' '; $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"]) // 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"]." "; // $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 // 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 .= "FROM ".$this->element_list[$table_name]["read_data"]["table_name"]." ";
$q .= "LEFT JOIN ".$table_name." "; $q .= "LEFT JOIN ".$table_name." ";
$q .= "ON ("; $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"]." "; $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 .= "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 .= ") "; $q .= ") ";
if ($this->element_list[$table_name]["read_data"]["order"]) { 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"]; $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 // only run if we have query strnig
if ($q) { if ($q) {
$pos = 0; // position in while for overwrite if needed $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 ++) { for ($i = 0; $i < count($q_select); $i ++) {
// query select part, set to the element name // query select part, set to the element name
$el_name = $q_select[$i]; $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 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 ($this->error) {
// if we have a radio group, set a bit different // if we have a radio group, set a bit different
@@ -1700,8 +1678,10 @@ class form extends db_array_io
if ($data['delete_name']) { if ($data['delete_name']) {
$data['content'][] = $proto; $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'; $type = 'element_list';
return array('output_name' => $output_name, 'type' => $type, 'color' => 'edit_fgcolor', 'data' => $data); return array('output_name' => $output_name, 'type' => $type, 'color' => 'edit_fgcolor', 'data' => $data);
} }
} // end of class } // end of class
# __END__

View File

@@ -11,6 +11,8 @@
* *
*/ */
namespace CoreLibs\Output;
class ProgressBar class ProgressBar
{ {
// private vars // private vars
@@ -80,13 +82,13 @@ class ProgressBar
$this->height = $height; $this->height = $height;
} }
// needs to be called twice or I do not get any output // 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 functions
private function _flushCache($clear_buffer_size = 0) private function __flushCache($clear_buffer_size = 0)
{ {
if (!$clear_buffer_size) { if (!$clear_buffer_size) {
$clear_buffer_size = $this->clear_buffer_size; $clear_buffer_size = $this->clear_buffer_size;
@@ -96,7 +98,7 @@ class ProgressBar
flush(); flush();
} }
private function _calculatePercent($step) private function __calculatePercent($step)
{ {
// avoid divison through 0 // avoid divison through 0
if ($this->max - $this->min == 0) { if ($this->max - $this->min == 0) {
@@ -109,7 +111,7 @@ class ProgressBar
return $percent; return $percent;
} }
private function _calculatePosition($step) private function __calculatePosition($step)
{ {
switch ($this->direction) { switch ($this->direction) {
case 'right': case 'right':
@@ -162,7 +164,7 @@ class ProgressBar
return $position; return $position;
} }
private function _setStep($step) private function __setStep($step)
{ {
if ($step > $this->max) { if ($step > $this->max) {
$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 .= 'document.getElementById("plbl'.$name.$this->code.'").style.align="'.$this->label[$name]['align'].'";';
$output .= '</script>'."\n"; $output .= '</script>'."\n";
echo $output; echo $output;
$this->_flushCache(); $this->__flushCache();
} }
} }
@@ -332,7 +334,7 @@ class ProgressBar
$this->label[$name]['color'] = $color; $this->label[$name]['color'] = $color;
if ($this->status != 'new') { if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("plbl'.$name.$this->code.'").style.color="'.$color.'";</script>'."\n"; 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; $this->label[$name]['bgr_color'] = $color;
if ($this->status != 'new') { if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("plbl'.$name.$this->code.'").style.background="'.$color.'";</script>'."\n"; 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 .= 'document.getElementById("plbl'.$name.$this->code.'").style.font-weight="'.$this->label[$name]['font-weight'].'";';
$output .= '</script>'."\n"; $output .= '</script>'."\n";
echo $output; echo $output;
$this->_flushCache(); $this->__flushCache();
} }
} }
@@ -386,7 +388,7 @@ class ProgressBar
// print "NAME[$name], Status: ".$this->status.": ".$value."<Br>"; // print "NAME[$name], Status: ".$this->status.": ".$value."<Br>";
if ($this->status != 'new') { if ($this->status != 'new') {
echo '<script type="text/JavaScript">PBlabelText'.$this->code.'("'.$name.'","'.$this->label[$name]['value'].'");</script>'."\n"; 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; $this->color = $color;
if ($this->status != 'new') { if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("pbar'.$this->code.'").style.background="'.$color.'";</script>'."\n"; 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; $this->bgr_color = $color;
if ($this->status != 'new') { if ($this->status != 'new') {
echo '<script type="text/JavaScript">document.getElementById("pbrd'.$this->code.'").style.background="'.$color.'";</script>'."\n"; 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; $this->direction = $direction;
if ($this->status != 'new') { if ($this->status != 'new') {
$this->position = $this->_calculatePosition($this->step); $this->position = $this->__calculatePosition($this->step);
echo '<script type="text/JavaScript">'; echo '<script type="text/JavaScript">';
echo 'PBposition'.$this->code.'("left",'.$this->position['left'].');'; 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.'("width",'.$this->position['width'].');';
echo 'PBposition'.$this->code.'("height",'.$this->position['height'].');'; echo 'PBposition'.$this->code.'("height",'.$this->position['height'].');';
echo '</script>'."\n"; echo '</script>'."\n";
$this->_flushCache(); $this->__flushCache();
} }
} }
@@ -431,8 +433,8 @@ class ProgressBar
$js = ''; $js = '';
$html_button = ''; $html_button = '';
$this->_setStep($this->step); $this->__setStep($this->step);
$this->position = $this->_calculatePosition($this->step); $this->position = $this->__calculatePosition($this->step);
if ($this->top || $this->left) { if ($this->top || $this->left) {
$style_master = 'position:relative;top:'.$this->top.'px;left:'.$this->left.'px;width:'.($this->width + 10).'px;'; $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 // only one inner percent
// print "STYLE[$name]: ".$style_lbl."<br>"; // print "STYLE[$name]: ".$style_lbl."<br>";
if (!$html_percent) { 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; break;
case 'percentlbl': 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; break;
case 'crossbar': case 'crossbar':
$html .= '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'">'.$data['value'].'</div>'."\n"; $html .= '<div id="plbl'.$name.$this->code.'" style="'.$style_lbl.'">'.$data['value'].'</div>'."\n";
@@ -578,16 +580,16 @@ class ProgressBar
{ {
$this->status = 'show'; $this->status = 'show';
echo $this->getHtml(); echo $this->getHtml();
$this->_flushCache(); $this->__flushCache();
} }
public function moveStep($step) public function moveStep($step)
{ {
$last_step = $this->step; $last_step = $this->step;
$this->_setStep($step); $this->__setStep($step);
$js = ''; $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 ($new_position['width'] != $this->position['width'] && ($this->direction == 'right' || $this->direction == 'left')) {
if ($this->direction=='left') { if ($this->direction=='left') {
$js .= 'PBposition'.$this->code.'("left",'.$new_position['left'].');'; $js .= 'PBposition'.$this->code.'("left",'.$new_position['left'].');';
@@ -603,7 +605,7 @@ class ProgressBar
$this->position = $new_position; $this->position = $new_position;
foreach ($this->label as $name => $data) { foreach ($this->label as $name => $data) {
if (array_key_exists('type', $data)) { if (array_key_exists('type', $data)) {
switch($data['type']) { switch ($data['type']) {
case 'step': case 'step':
if ($this->step != $last_step) { if ($this->step != $last_step) {
$js .= 'PBlabelText'.$this->code.'("'.$name.'","'.$this->step.'/'.$this->max.'");'; $js .= 'PBlabelText'.$this->code.'("'.$name.'","'.$this->step.'/'.$this->max.'");';
@@ -611,8 +613,8 @@ class ProgressBar
break; break;
case 'percentlbl': case 'percentlbl':
case 'percent': case 'percent':
$percent = $this->_calculatePercent($this->step); $percent = $this->__calculatePercent($this->step);
if ($percent != $this->_calculatePercent($last_step)) { if ($percent != $this->__calculatePercent($last_step)) {
$js .= 'PBlabelText'.$this->code.'("'.$name.'","'.$percent.'%");'; $js .= 'PBlabelText'.$this->code.'("'.$name.'","'.$percent.'%");';
} }
break; break;
@@ -624,7 +626,7 @@ class ProgressBar
} }
if ($js != '') { if ($js != '') {
echo '<script type="text/JavaScript">'.$js.'</script>'."\n"; 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 .= 'document.getElementById("pbm'.$this->code.'").style.visibility="hidden";document.getElementById("pbm'.$this->code.'").style.display="none";';
$output .= '</script>'."\n"; $output .= '</script>'."\n";
echo $output; 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 .= 'document.getElementById("pbm'.$this->code.'").style.visibility="visible";document.getElementById("pbm'.$this->code.'").style.visibility="block";';
$output .= '</script>'."\n"; $output .= '</script>'."\n";
echo $output; 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 * 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 namespace CoreLibs\Template;
// use smarty BC for backwards compability
// try to include file from LIBS path, or from normal path
_spl_autoload('SmartyBC.class.php');
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; public $l10n;
@@ -21,9 +23,10 @@ class SmartyML extends SmartyBC
public function __construct($lang) public function __construct($lang)
{ {
SmartyBC::__construct(); SmartyBC::__construct();
_spl_autoload('Class.l10n.inc'); $this->l10n = new \CoreLibs\Language\L10n($lang);
$this->l10n = new l10n($lang);
// variable variable register // variable variable register
$this->register_modifier('getvar', array(&$this, 'get_template_vars')); $this->register_modifier('getvar', array(&$this, 'get_template_vars'));
} }
} }
# __END__