Compare commits

...

18 Commits

Author SHA1 Message Date
Clemens Schwaighofer
799cff4e00 Update config base files 2016-07-12 17:55:10 +09:00
Clemens Schwaighofer
72ef4a24c5 Check in neutral config.inc file before we set it to update ignore 2016-07-12 17:42:54 +09:00
Clemens Schwaighofer
0f44aaf3e4 Update config.inc file 2016-07-12 17:37:58 +09:00
Clemens Schwaighofer
795f69050a Update edit user base, config template, class basic
Class.Basic
add general 8 char hash wrapper function (for adler32, fnv, jooa)

Edit Users
add first/last name to the basic user info

Config template
Update config template from current working template
2016-07-12 10:44:53 +09:00
Clemens Schwaighofer
1c5bb8aebe Make db debug var public 2016-06-14 13:22:08 +09:00
Clemens Schwaighofer
36f19e64d0 Add new correct mobile email detect 2016-05-17 12:22:36 +09:00
Clemens Schwaighofer
19a1081197 Add missing mobile domains, fixup pc naming
PC type is now pc_html
pc is only for simple
2016-05-16 15:46:26 +09:00
Clemens Schwaighofer
45974a9e30 Set detailed japanese mobile phone carrier types 2016-05-12 14:20:51 +09:00
Clemens Schwaighofer
f1247efd34 Fix class declarations
old class declarations for constructors replaced with correct
"__construct" part.
2016-03-14 11:59:42 +09:00
Clemens Schwaighofer
c38346b97c Comment update 2016-02-22 11:03:09 +09:00
Clemens Schwaighofer
3c26adb493 Smarty 3.1 fix for options html 2016-01-25 16:16:36 +09:00
Clemens Schwaighofer
4458f366f9 Bug fixes for data insert with interval fields in form generate
- if interval is emtpy set NULL
- do some clean up for pk return data from the form/db array io part
2016-01-07 13:06:47 +09:00
Clemens Schwaighofer
805330638a Bug fix in DB IO for setting _db_error public
_db_error method was private, but was called in DB.Array.IO, so it had
to be set public again.

removed debug message from Form Generate class
2016-01-07 12:44:05 +09:00
Clemens Schwaighofer
86cd04f862 Fix bug in regex check in form generate 2016-01-07 12:40:05 +09:00
Clemens Schwaighofer
a182834985 Remove old SVN $id from edit new template 2016-01-06 11:19:05 +09:00
Clemens Schwaighofer
0ce1432513 Bug fix for spl autoload table array part
arrays cannot be loaded with the auto load method, fallback to old load
method
2016-01-05 18:36:26 +09:00
Clemens Schwaighofer
a447fc2ef6 Update auto set for HTML title, PHP 7.0 class fixes
Auto append current page file name to the HTML auto title.

Fix class declaration in gettext reader for PHP 7.0
2015-12-16 11:08:51 +09:00
Clemens Schwaighofer
8160d05d25 Add HTML print date+time method
Function prints out HTML date time method with auto javacsript adjust
for leap years, month day length, etc.
2015-11-16 10:17:55 +09:00
14 changed files with 358 additions and 112 deletions

View File

@@ -230,6 +230,8 @@
$elements[] = $form->form_create_element("password");
$elements[] = $form->form_create_element("password_change_interval");
$elements[] = $form->form_create_element("email");
$elements[] = $form->form_create_element("last_name");
$elements[] = $form->form_create_element("first_name");
$elements[] = $form->form_create_element("edit_group_id");
$elements[] = $form->form_create_element("edit_access_right_id");
$elements[] = $form->form_create_element("strict");

View File

@@ -36,6 +36,8 @@
// set include & template names
$CONTENT_INCLUDE = str_replace(".php", ".tpl", $cms->page_name);
$FORM_NAME = !isset($FORM_NAME) || !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
// set local page title
$L_TITLE = ucfirst(str_replace('_', ' ', $cms->get_page_name(1))).' - '.$G_TITLE;
// strip tpl and replace it with inc
// php include file per page
$cms->INC_TEMPLATE_NAME = str_replace(".tpl", ".inc", $CONTENT_INCLUDE);

View File

@@ -2,24 +2,24 @@
$edit_users = array (
"table_array" => array (
"edit_user_id" => array (
"value" => $GLOBALS["edit_user_id"],
"value" => $GLOBALS["edit_user_id"],
"type" => "hidden",
"pk" => 1,
"int" => 1
),
"username" => array (
"value" => $GLOBALS["username"],
"output_name" => "Username",
"mandatory" => 1,
"value" => $GLOBALS["username"],
"output_name" => "Username",
"mandatory" => 1,
"error_check" => "unique|alphanumericextended",
"type" => "text"
),
"password" => array (
"value" => $GLOBALS["password"],
"value" => $GLOBALS["password"],
"HIDDEN_value" => $GLOBALS["HIDDEN_password"],
"CONFIRM_value" => $GLOBALS["CONFIRM_password"],
"output_name" => "Password",
"mandatory" => 1,
"output_name" => "Password",
"mandatory" => 1,
"type" => "password", // later has to be password for encryption in database
'update' => array ( // connected field updates, and update data
'password_change_date' => array ( // db row to update
@@ -34,17 +34,18 @@
'output_name' => 'Password change interval',
'error_check' => 'intervalshort', // can be any date length format. n Y/M/D [not H/M/S], only one set, no combination
'type' => 'text',
'interval' => 1, // interval needs NULL write for empty
'size' => 5, // make it 5 chars long
'length' => 5
),
// password reset force interval, if set, user needs to reset password after X time period
"enabled" => array (
"value" => $GLOBALS["enabled"],
"output_name" => "Enabled",
"type" => "binary",
"value" => $GLOBALS["enabled"],
"output_name" => "Enabled",
"type" => "binary",
"int" => 1,
"element_list" => array (
"1" => "Yes",
"1" => "Yes",
"0" => "No"
)
),
@@ -79,28 +80,38 @@
)
),
"debug" => array (
"value" => $GLOBALS["debug"],
"output_name" => "Debug",
"type" => "binary",
"value" => $GLOBALS["debug"],
"output_name" => "Debug",
"type" => "binary",
"int" => 1,
"element_list" => array (
"1" => "Yes",
"1" => "Yes",
"0" => "No"
)
),
"db_debug" => array (
"value" => $GLOBALS["db_debug"],
"output_name" => "DB Debug",
"type" => "binary",
"value" => $GLOBALS["db_debug"],
"output_name" => "DB Debug",
"type" => "binary",
"int" => 1,
"element_list" => array (
"1" => "Yes",
"1" => "Yes",
"0" => "No"
)
),
"email" => array (
"value" => $GLOBALS["email"],
"output_name" => "E-Mail",
"value" => $GLOBALS["email"],
"output_name" => "E-Mail",
"type" => "text"
),
"last_name" => array (
"value" => $GLOBALS["last_name"],
"output_name" => "Last Name",
"type" => "text"
),
"first_name" => array (
"value" => $GLOBALS["first_name"],
"output_name" => "First Name",
"type" => "text"
),
"edit_language_id" => array (

View File

@@ -9,9 +9,9 @@
/************* SESSION NAMES *************/
// backend
DEFINE('EDIT_SESSION_NAME', "ADMIN_SESSION_NAME");
DEFINE('EDIT_SESSION_NAME', "<ADMIN SESSION NAME>");
// frontend
DEFINE('SESSION_NAME', "SESSION_NAME");
DEFINE('SESSION_NAME', "<SESSION NAME>");
/************* LANGUAGE / ENCODING *******/
DEFINE('DEFAULT_LANG', "en_utf8");
@@ -34,7 +34,7 @@
DEFINE('ROOT', getcwd()."/");
// libs path
DEFINE('LIBS', "libs/");
// includes (strings, arrays for stati, etc)
// includes (strings, arrays for static, etc)
DEFINE('INCLUDES', "includes/");
// layout base path
DEFINE('LAYOUT', 'layout/');
@@ -85,7 +85,7 @@
/************* HASH / ACL DEFAULT / ERROR SETTINGS / SMARTY *************/
// default hash type
DEFINE('DEFAULT_HASH', 'ripemd160');
DEFINE('DEFAULT_HASH', 'sha256');
// default acl level
DEFINE('DEFAULT_ACL_LEVEL', 80);
// default levels for certain actions
@@ -97,7 +97,7 @@
DEFINE('DEFAULT_ACL_DEL', 80);
DEFINE('DEFAULT_ACL_ADMIN', 100); */
// SSL host name
// DEFINE('SSL_HOST', "www4.adidas.co.jp");
// DEFINE('SSL_HOST', "ssl.host.name");
// error page strictness, Default is 3
// 1: only show error page as the last mesure if really no mid & aid can be loaded and found at all
// 2: if template not found, do not search, show error template
@@ -106,7 +106,7 @@
// DEFINE('ERROR_STRICT', 3);
// allow page caching in general, set to "FALSE" if you do debugging or development!
// DEFINE('ALLOW_SMARTY_CACHE', FALSE);
// cache life time, in second', default here is 2 days (172800s)
// cache life time, in seconds, default here is 2 days (172800s)
// -1 is never expire cache
// DEFINE('SMARTY_CACHE_LIFETIME', -1);
@@ -135,17 +135,23 @@
// live_queue is a global queue system
// DEFINE('QUEUE', 'live_queue');
/************* DB PATHS (PostgreSQL) *****************/
// schema names, can also be defined per <DB INFO>
DEFINE('PUBLIC_SCHEMA', 'public');
DEFINE('DEV_SCHEMA', 'public');
DEFINE('TEST_SCHEMA', 'public');
// non constant part
/************* DB ACCESS *****************/
// please be VERY carefull only to change the right side
$DB_CONFIG = array(
"test" => array (
"db_name" => "gullevek",
"db_user" => "gullevek",
"db_pass" => "gullevek",
"db_host" => "db.tokyo.tequila.jp",
"<db id>" => array (
"db_name" => "<database>",
"db_user" => "<user>",
"db_pass" => "<password>",
"db_host" => "<host>",
"db_port" => "5432",
"db_schema" => "public",
"db_schema" => "public", // if not set, uses public
"db_type" => "pgsql",
"db_encoding" => '',
"db_ssl" => 'disable' // allow, disable, require, prefer
@@ -160,27 +166,19 @@
// each host has a different db_host
// development host
$DB_HOST['soba'] = "test";
$DB_HOST['soba.tokyo.tequila.jp'] = "test";
$DB_HOST['<host>'] = "<db id>";
// target host (live)
// $DB_TARGET_HOST['soba'] = "<DB ID>";
// $DB_TARGET_HOST['<host>'] = "<DB ID>";
// url redirect database
// $DB_URL_REDIRECT_HOST['soba'] = "<DB ID>";
// $DB_URL_REDIRECT_HOST['<host>'] = "<DB ID>";
// location flagging
// test/dev/live
$LOCATION['soba'] = 'test';
$LOCATION['soba.tokyo.tequila.jp'] = 'test';
$LOCATION['<host>'] = '<test|live|remote|etc>';
// show DEBUG override
// true/false
$DEBUG_FLAG['soba'] = true;
$DEBUG_FLAG['soba.tokyo.tequila.jp'] = true;
// schema names, can also be defined per <DB INFO>
DEFINE('PUBLIC_SCHEMA', 'public');
DEFINE('DEV_SCHEMA', 'public');
DEFINE('TEST_SCHEMA', 'public');
// and set to domain
$DB_PATH['soba'] = PUBLIC_SCHEMA;
$DB_PATH['soba.tokyo.tequila.jp'] = PUBLIC_SCHEMA;
$DEBUG_FLAG['<host>'] = true;
// set postgresql paths (schemas)
$DB_PATH['<host>'] = PUBLIC_SCHEMA;
// set the USE_DATABASE var, if there is nothing set, we assume TRUE
$USE_DATABASE = defined('USE_DATABASE') ? USE_DATABASE : true;
@@ -206,7 +204,7 @@
// DEFINE('TEST_SCHEMA', $DB_CONFIG[MAIN_DB]['db_schema']);
// DEFINE('PUBLIC_SCHEMA', $DB_CONFIG[TARGET_DB]['db_schema']);
DEFINE('LOGIN_DB_SCHEMA', 'public'); // where the edit* tables are
DEFINE('GLOBAL_DB_SCHEMA', 'public'); // where global tables are that are used by all schemas (eg queue tables for online', etc)
DEFINE('GLOBAL_DB_SCHEMA', 'public'); // where global tables are that are used by all schemas (eg queue tables for online, etc)
DEFINE('TARGET', $LOCATION[$HOST_NAME]);
// DEFINE('CSV_PATH', $PATHS[TARGET]['csv_path']);
// DEFINE('EXPORT_SCRIPT', $PATHS[TARGET]['perl_bin']);
@@ -258,12 +256,13 @@
{
// where to search for the files to include
$dirs = array (
LIBDIR,
LIBDIR,
SMARTYDIR,
TABLEARRAYDIR,
'',
LIBS,
SMARTY,
LIBS,
SMARTY,
TABLE_ARRAYS,
__DIR__.'/'.LIBS,
__DIR__.'/'.SMARTY
);
@@ -273,9 +272,9 @@
if (file_exists($folder.$include_file))
{
require_once($folder.$include_file);
return;
return true;
}
}
return false;
}
?>

View File

@@ -1,10 +1,5 @@
<?
/********************************************************************
* $HeadURL: svn://svn/development/core_data/php/www/configs/config.template.inc $
* $LastChangedBy: gullevek $
* $LastChangedDate: 2013-02-18 16:27:24 +0900 (Mon, 18 Feb 2013) $
* $LastChangedRevision: 4382 $
*********************************************************************
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
* CREATED: 2003/06/10
* SHORT DESCRIPTION:
@@ -24,11 +19,22 @@
DEFINE('DEFAULT_ENCODING', "UTF-8");
/************* PATHS *********************/
// path to document root
// ** NEW/BETTER DIR DECLARATIONS **
// path to original file (if symlink)
DEFINE('DIR', __DIR__."/");
// libs base path based on DIR
DEFINE('LIBDIR', DIR.'libs/');
// SMARTY path based on DIR
DEFINE('SMARTYDIR', DIR.'Smarty/');
// table arrays for Class Form
DEFINE('TABLEARRAYDIR', DIR.'table_arrays/');
// ** OLD DIR DECLARATIONS **
// path to document root of file called
DEFINE('ROOT', getcwd()."/");
// libs path
DEFINE('LIBS', "libs/");
// includes (strings', arrays for stati, etc)
// includes (strings, arrays for static, etc)
DEFINE('INCLUDES', "includes/");
// layout base path
DEFINE('LAYOUT', 'layout/');
@@ -79,7 +85,7 @@
/************* HASH / ACL DEFAULT / ERROR SETTINGS / SMARTY *************/
// default hash type
DEFINE('DEFAULT_HASH', 'ripemd160');
DEFINE('DEFAULT_HASH', 'sha256');
// default acl level
DEFINE('DEFAULT_ACL_LEVEL', 80);
// default levels for certain actions
@@ -91,7 +97,7 @@
DEFINE('DEFAULT_ACL_DEL', 80);
DEFINE('DEFAULT_ACL_ADMIN', 100); */
// SSL host name
// DEFINE('SSL_HOST', "www4.adidas.co.jp");
// DEFINE('SSL_HOST', "ssl.host.name");
// error page strictness, Default is 3
// 1: only show error page as the last mesure if really no mid & aid can be loaded and found at all
// 2: if template not found, do not search, show error template
@@ -129,6 +135,12 @@
// live_queue is a global queue system
// DEFINE('QUEUE', 'live_queue');
/************* DB PATHS (PostgreSQL) *****************/
// schema names, can also be defined per <DB INFO>
DEFINE('PUBLIC_SCHEMA', 'public');
DEFINE('DEV_SCHEMA', 'public');
DEFINE('TEST_SCHEMA', 'public');
// non constant part
/************* DB ACCESS *****************/
// please be VERY carefull only to change the right side
@@ -139,8 +151,9 @@
"db_pass" => "<DB PASSWORD>",
"db_host" => "<DB HOST>",
"db_port" => "5432",
"db_schema" => "<DB SCHEMA>",
"db_schema" => "<DB SCHEMA>", // if not set, uses public
"db_type" => "pgsql",
"db_encoding" => '',
"db_ssl" => 'disable' // allow, disable, require, prefer
)
);
@@ -160,15 +173,11 @@
// $DB_URL_REDIRECT_HOST['<HOST NAME>'] = "<DB ID>";
// location flagging
// test/dev/live
$LOCATION['<HOST NAME>'] = 'test';
$LOCATION['<HOST NAME>'] = '<test|live|remote|etc>';
// show DEBUG override
// true/false
$DEBUG_FLAG['<HOST NAME>'] = true;
// schema names, can also be defined per <DB INFO>
DEFINE('PUBLIC_SCHEMA', 'public');
DEFINE('DEV_SCHEMA', 'public');
DEFINE('TEST_SCHEMA', 'public');
// and set to domain
// set postgresql paths (schemas)
$DB_PATH['<HOST NAME>'] = PUBLIC_SCHEMA;
// set the USE_DATABASE var, if there is nothing set, we assume TRUE
@@ -201,6 +210,7 @@
// DEFINE('EXPORT_SCRIPT', $PATHS[TARGET]['perl_bin']);
// DEFINE('REDIRECT_URL', $PATHS[TARGET]['redirect_url']);
DEFINE('DEBUG', $DEBUG_FLAG[$HOST_NAME]);
DEFINE('SHOW_ALL_ERRORS', false); // show all errors if debug_all & show_error_handling are enabled
/************* GENERAL PAGE TITLE ********/
$G_TITLE = '<OVERALL PAGE TITLE>';
@@ -228,8 +238,43 @@
}
}
// turn off debug if debug flag is OFF
if (DEBUG == false)
{
$ECHO_ALL = 0;
$DEBUG_ALL = 0;
$PRINT_ALL = 0;
$DB_DEBUG = 0;
$ENABLE_ERROR_HANDLING = 0;
}
// any other global definitons here
// DEFINE('SOME_ID', <SOME VALUE>);
// $Id: config.template.inc 4382 2013-02-18 07:27:24Z gullevek $
// function that will be called on top of each class include to load the class
function _spl_autoload($include_file)
{
// where to search for the files to include
$dirs = array (
LIBDIR,
SMARTYDIR,
TABLEARRAYDIR,
'',
LIBS,
SMARTY,
TABLE_ARRAYS,
__DIR__.'/'.LIBS,
__DIR__.'/'.SMARTY
);
// try to find and load the class ifle
foreach ($dirs as $folder)
{
if (file_exists($folder.$include_file))
{
require_once($folder.$include_file);
return true;
}
}
return false;
}
?>

View File

@@ -21,5 +21,3 @@
<input type="submit" name="new" value="{$new.new_name}">
</td>
</tr>
{* $Id: edit_new.tpl 4897 2014-02-06 08:16:56Z gullevek $ *}

View File

@@ -335,5 +335,71 @@
$this->db_exec($q);
}
// METHOD: adbPrintDateTime
// PARAMS: year, month, day, hour, min: the date and time values
// suffix: additional info printed after the date time variable in the drop down, also used for ID in the on change JS call
// minute steps, can be 1 (default), 5, 10, etc, if invalid (outside 1h range, it falls back to 1min)
// RETURN: HTML formated strings for drop down lists of date and time
// DESC: print the date/time drop downs, used in any queue/send/insert at date/time place
public function adbPrintDateTime($year, $month, $day, $hour, $min, $suffix = '', $min_steps = 1)
{
// if suffix given, add _ before
if ($suffix)
$suffix = '_'.$suffix;
if ($min_steps < 1 || $min_steps > 59)
$min_steps = 1;
$on_change_call = 'dt_list(\''.$suffix.'\');';
// always be 1h ahead (for safety)
$timestamp = time() + 3600; // in seconds
// the max year is this year + 1;
$max_year = date("Y", $timestamp) + 1;
// preset year, month, ...
$year = (!$year) ? date("Y", $timestamp) : $year;
$month = (!$month) ? date("m", $timestamp) : $month;
$day = (!$day) ? date("d", $timestamp) : $day;
$hour = (!$hour) ? date("H", $timestamp) : $hour;
$min = (!$min) ? date("i", $timestamp) : $min; // add to five min?
// max days in selected month
$days_in_month = date("t", strtotime($year."-".$month."-".$day." ".$hour.":".$min.":0"));
// from now to ?
$string = $this->l->__('Year').' ';
$string .= '<select id="year'.$suffix.'" name="year'.$suffix.'" onChange="'.$on_change_call.'">';
for ($i = date("Y"); $i <= $max_year; $i ++)
{ $string .= '<option value="'.$i.'" '.(($year == $i) ? 'selected' : '').'>'.$i.'</option>';
}
$string .= '</select> '.$this->l->__('Month').' ';
$string .= '<select id="month'.$suffix.'" name="month'.$suffix.'" onChange="'.$on_change_call.'">';
for ($i = 1; $i <= 12; $i ++)
{
$string .= '<option value="'.(($i < 10) ? '0'.$i : $i).'" '.(($month == $i) ? 'selected' : '').'>'.$i.'</option>';
}
$string .= '</select> '.$this->l->__('Day').' ';
$string .= '<select id="day'.$suffix.'" name="day'.$suffix.'" onChange="'.$on_change_call.'">';
for ($i = 1; $i <= $days_in_month; $i ++)
{
// set weekday text based on current month ($month) and year ($year)
$string .= '<option value="'.(($i < 10) ? '0'.$i : $i).'" '.(($day == $i) ? 'selected' : '').'>'.$i.' ('.$this->l->__(date('D', mktime(0, 0, 0, $month, $i, $year))).')</option>';
}
$string .= '</select> '.$this->l->__('Hour').' ';
$string .= '<select id="hour'.$suffix.'" name="hour'.$suffix.'" onChange="'.$on_change_call.'">';
for ($i = 0; $i <= 23; $i ++)
{
$string .= '<option value="'.(($i < 10) ? '0'.$i : $i).'" '.(($hour == $i) ? 'selected' : '').'>'.$i.'</option>';
}
$string .= '</select> '.$this->l->__('Minute').' ';
$string .= '<select id="min'.$suffix.'" name="min'.$suffix.'" onChange="'.$on_change_call.'">';
for ( $i = 0; $i <= 59; $i += $min_steps)
{
$string .= '<option value="'.(( $i < 10) ? '0'.$i : $i).'" '.(($min == $i) ? 'selected' : '').'>'.$i.'</option>';
}
$string .= '</select>';
// return the datetime select string
return $string;
}
}
?>

View File

@@ -247,23 +247,68 @@
);
// the array with the mobile types that are valid
$this->mobile_email_type = array (
'.*@docomo\.ne\.jp$' => 'docomo',
'.*@([a-z0-9]{2}\.)?ezweb\.ne\.jp$' => 'kddi_ezweb', # correct are a[2-4], b2, c[1-9], e[2-9], h[2-4], t[1-9]
'.*@(ez[a-j]{1}\.)?ido\.ne\.jp$' => 'kddi', # ez[a-j] or nothing
'.*@([a-z]{2}\.)?sky\.tu-ka\.ne\.jp$' => 'kddi_tu-ka', # (sky group)
'.*@([a-z]{2}\.)?sky\.tk[kc]{1}\.ne\.jp$' => 'kddi_sky', # (sky group) [tkk,tkc only]
'.*@([a-z]{2}\.)?sky\.dtg\.ne\.jp$' => 'kddi', # dtg (sky group)
'.*@[tkdhcrnsq]{1}\.vodafone\.ne\.jp$' => 'softbank', # old vodafone [t,k,d,h,c,r,n,s,q]
'.*@jp-[dhtkrsnqc]{1}\.ne\.jp$' => 'softbank', # very old j-phone (pre vodafone) [d,h,t,k,r,s,n,q,c]
'.*@([dhtcrknsq]{1}\.)?softbank\.ne\.jp$' => 'softbank', # add i for iphone also as keitai, others similar to the vodafone group
'.*@i{1}\.softbank(\.ne)?\.jp$' => 'softbank_iphone', # add iPhone also as keitai and not as pc
'.*@disney\.ne\.jp$' => 'softbank_disney', # (kids)
'.*@willcom\.ne\.jp$' => 'willcom',
'.*@willcom\.com$' => 'willcom', # new for pdx.ne.jp address
'.*@pdx\.ne\.jp$' => 'willcom', # old pdx address for willcom
'.*@bandai\.jp$' => 'willcom', # willcom paipo! (kids)
'.*@pipopa\.ne\.jp$' => 'willcom', # willcom paipo! (kids)
'.*@([a-z0-9]{2,4}\.)?pdx\.ne\.jp$' => 'willcom' # actually only di,dj,dk,wm -> all others are "wrong", but none also allowed?
'.*@docomo\.ne\.jp$' => 'keitai_docomo',
'.*@([a-z0-9]{2}\.)?ezweb\.ne\.jp$' => 'keitai_kddi_ezweb', # correct are a[2-4], b2, c[1-9], e[2-9], h[2-4], t[1-9]
'.*@(ez[a-j]{1}\.)?ido\.ne\.jp$' => 'keitai_kddi_ido', # ez[a-j] or nothing
'.*@([a-z]{2}\.)?sky\.tu-ka\.ne\.jp$' => 'keitai_kddi_tu-ka', # (sky group)
'.*@([a-z]{2}\.)?sky\.tk[kc]{1}\.ne\.jp$' => 'keitai_kddi_sky', # (sky group) [tkk,tkc only]
'.*@([a-z]{2}\.)?sky\.dtg\.ne\.jp$' => 'keitai_kddi_dtg', # dtg (sky group)
'.*@[tkdhcrnsq]{1}\.vodafone\.ne\.jp$' => 'keitai_softbank_vodafone', # old vodafone [t,k,d,h,c,r,n,s,q]
'.*@jp-[dhtkrsnqc]{1}\.ne\.jp$' => 'keitai_softbank_j-phone', # very old j-phone (pre vodafone) [d,h,t,k,r,s,n,q,c]
'.*@([dhtcrknsq]{1}\.)?softbank\.ne\.jp$' => 'keitai_softbank', # add i for iphone also as keitai, others similar to the vodafone group
'.*@i{1}\.softbank(\.ne)?\.jp$' => 'smartphone_softbank_iphone', # add iPhone also as keitai and not as pc
'.*@disney\.ne\.jp$' => 'keitai_softbank_disney', # (kids)
'.*@willcom\.ne\.jp$' => 'keitai_willcom',
'.*@willcom\.com$' => 'keitai_willcom', # new for pdx.ne.jp address
'.*@wcm\.ne\.jp$' => 'keitai_willcom', # old willcom wcm.ne.jp
'.*@pdx\.ne\.jp$' => 'keitai_willcom_pdx', # old pdx address for willcom
'.*@bandai\.jp$' => 'keitai_willcom_bandai', # willcom paipo! (kids)
'.*@pipopa\.ne\.jp$' => 'keitai_willcom_pipopa', # willcom paipo! (kids)
'.*@([a-z0-9]{2,4}\.)?pdx\.ne\.jp$' => 'keitai_willcom_pdx', # actually only di,dj,dk,wm -> all others are "wrong", but none also allowed?
'.*@ymobile([1]{1})?\.ne\.jp$' => 'keitai_willcom_ymobile', # ymobile, ymobile1 techincally not willcom, but I group them there
'.*@y-mobile\.ne\.jp$' => 'keitai_willcom_ymobile', # y-mobile techincally not willcom, but I group them there
'.*@emnet\.ne\.jp$' => 'keitai_willcom_emnet', # e-mobile, group will willcom
'.*@emobile\.ne\.jp$' => 'keitai_willcom_emnet', # e-mobile, group will willcom
'.*@emobile-s\.ne\.jp$' => 'keitai_willcom_emnet' # e-mobile, group will willcom
);
// short list for mobile email types
$this->mobile_email_type_short = array (
'keitai_docomo' => 'docomo',
'keitai_kddi_ezweb' => 'kddi',
'keitai_kddi' => 'kddi',
'keitai_kddi_tu-ka' => 'kddi',
'keitai_kddi_sky' => 'kddi',
'keitai_softbank' => 'softbank',
'smartphone_softbank_iphone' => 'iphone',
'keitai_softbank_disney' => 'softbank',
'keitai_softbank_vodafone' => 'softbank',
'keitai_softbank_j-phone' => 'softbank',
'keitai_willcom' => 'willcom',
'keitai_willcom_pdx' => 'willcom',
'keitai_willcom_bandai' => 'willcom',
'keitai_willcom_pipopa' => 'willcom',
'keitai_willcom_ymobile' => 'willcom',
'keitai_willcom_emnet' => 'willcom',
'pc_html' => 'pc',
// old sets -> to be removed later
'docomo' => 'docomo',
'kddi_ezweb' => 'kddi',
'kddi' => 'kddi',
'kddi_tu-ka' => 'kddi',
'kddi_sky' => 'kddi',
'softbank' => 'softbank',
'keitai_softbank_iphone' => 'iphone',
'softbank_iphone' => 'iphone',
'softbank_disney' => 'softbank',
'softbank_vodafone' => 'softbank',
'softbank_j-phone' => 'softbank',
'willcom' => 'willcom',
'willcom_pdx' => 'willcom',
'willcom_bandai' => 'willcom',
'willcom_pipopa' => 'willcom',
'willcom_ymobile' => 'willcom',
'willcom_emnet' => 'willcom',
'pc' => 'pc'
);
// initial the session if there is no session running already
@@ -1397,6 +1442,19 @@
return $this->_crc32b($string);
}
// METHOD: _hash
// PARAMS: string, type of hash to use
// RETURN: hashed string
// DESC : replacemend for _crc32b call (alternate)
// defaults to adler 32, fnv132, fnv1a32, joaat
// all that create 8 char long hashes
public function _hash($string, $hash_type = 'adler32')
{
if (!in_array($hash_type, array('adler32', 'fnv132', 'fnv1a32', 'joaat')))
$hash_type = 'adler32';
return hash($hash_type, $string);
}
// METHOD: checkPHPVersion
// PARAMS: $min_version: minimum version. in format x, x.y or x.y.z
// $max_version: default empty, else in same format as min version
@@ -1792,10 +1850,11 @@
}
// METHOD: getEmailType
// PARAMS: email
// PARAMS: email, short == false
// RETURN: string for email type, eg "pc", "docomo", etc
// DESC: guesses the email type (mostly for mobile) from the domain
public function getEmailType($email)
// if second is set to true, it will return short naming scheme (only provider)
public function getEmailType($email, $short = false)
{
// trip if there is no email address
if (!$email)
@@ -1804,10 +1863,27 @@
foreach ($this->mobile_email_type as $email_regex => $email_type)
{
if (preg_match("/$email_regex/", $email))
return $email_type;
{
if ($short)
return $this->getShortEmailType($email_type);
else
return $email_type;
}
}
// if no previous return we assume this is a pc address
return "pc";
if ($short)
return "pc";
else
return "pc_html";
}
// METHOD: getShortEmailType
// PARAMS: long email type (not email)
// RETURN: short email type
// DESC : gets the short email type from a long email type
public function getShortEmailType($email_type)
{
return $this->mobile_email_type_short[$email_type];
}
// METHOD: printDateTime

View File

@@ -429,6 +429,13 @@ $this->debug('write_check', "[$column][".$this->table_array[$column]["value"]."]
$_value = $this->table_array[$column]["value"];
$q_data .= $_value;
}
elseif ($this->table_array[$column]["interval"])
{
// for interval we check if no value, then we set null
if (!$this->table_array[$column]["value"])
$_value = 'NULL';
$q_data .= $_value;
}
else
// normal string
{
@@ -500,7 +507,10 @@ $this->debug('write_check', "[$column][".$this->table_array[$column]["value"]."]
}
// set primary key
if ($insert)
$this->ok = $this->table_array[$this->pk_name]["value"] = $this->insert_id;
{
$this->table_array[$this->pk_name]["value"] = $this->insert_id;
$this->ok = $this->insert_id;
}
// return the table if needed
return $this->table_array;
}

View File

@@ -253,7 +253,7 @@
// only inside
// basic vars
private $dbh; // the dbh handler
private $db_debug; // DB_DEBUG ... (if set prints out debug msgs)
public $db_debug; // DB_DEBUG ... (if set prints out debug msgs)
private $db_name; // the DB connected to
private $db_user; // the username used
private $db_pwd; // the password used
@@ -523,7 +523,8 @@
// msg -> optional message
// RETURN none
// DESC if error_id set, writes long error string into error_msg
private function _db_error($cursor = '', $msg = '')
// MARK: needed to make public so it can be called from DB.Array.IO too
public function _db_error($cursor = '', $msg = '')
{
$where_called = $this->get_caller_method();
if ($cursor)

View File

@@ -259,7 +259,9 @@
$this->l = new l10n($lang);
// load config array
// get table array definitions for current page name
_spl_autoload('array_'.$this->my_page_name.'.inc');
// WARNING: auto spl load does not work with this as it is an array and not a function/object
// $flag = _spl_autoload('array_'.$this->my_page_name.'.inc');
include(TABLE_ARRAYS."array_".$this->my_page_name.".inc");
$config_array = ${$this->my_page_name};
@@ -321,6 +323,8 @@
// dumps all values into output (for error msg)
public function form_dump_table_array()
{
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
$string .= "<b>TABLE ARRAY DUMP:</b> ".$this->table_name."<br>";
while (list($key, $value) = each($this->table_array))
@@ -383,6 +387,8 @@
// if multiple gets only FIRST
public function form_get_col_name_from_key($want_key, $key_value = "")
{
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
@@ -400,6 +406,8 @@
public function form_get_col_name_array_from_key($want_key, $key_value = "")
{
$key_array = array();
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
@@ -680,7 +688,7 @@
// for drop down, as data comes from a reference table
// for drop_down_text it has to be an array with $key->$value
// RETURN element in HTML
public function form_create_element ($element_name, $query = "")
public function form_create_element($element_name, $query = "")
{
// special 2nd color for "binary" attribut
if ($this->table_array[$element_name]["type"] == "binary" && !$this->table_array[$element_name]["value"])
@@ -867,6 +875,8 @@
// $error=1;
public function form_error_check()
{
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
@@ -917,13 +927,13 @@
break;
case "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"]);
break;
// this one also allows @ and .
case "alphanumericextended":
//$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 extended (Numbers, Letters, -, _, @ and . only, no spaces) value for the <b>%s</b> Field!<br>"), $this->table_array[$key]["output_name"]);
break;
case "password":
@@ -972,6 +982,8 @@
if (is_array($this->reference_array))
{
// do check for reference tables
if (!is_array($this->reference_array))
$this->reference_array = array ();
reset($this->reference_array);
while (list($key, $value) = each($this->reference_array))
{
@@ -1106,6 +1118,8 @@
public function form_unset_table_array()
{
unset($this->pk_id);
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
@@ -1117,6 +1131,8 @@
}
if (is_array($this->reference_array))
{
if (!is_array($this->reference_array))
$this->reference_array = array ();
reset($this->reference_array);
while (list($key, $value) = each($this->reference_array))
{
@@ -1138,6 +1154,8 @@
$this->table_array = $this->db_read(1);
// reset all temp fields
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
unset($this->table_array[$key]["input_value"]);
@@ -1145,6 +1163,8 @@
if (is_array($this->reference_array))
{
// load each reference_table
if (!is_array($this->reference_array))
$this->reference_array = array ();
reset($this->reference_array);
while (list($key, $value) = each($this->reference_array))
{
@@ -1167,6 +1187,8 @@
// global $_FILES;
// for drop_down_db_input check if text field is filled and if, if not yet in db ...
// and upload files
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
@@ -1189,7 +1211,7 @@
{
// if a where was given, set this key also [dangerous!]
// posgres compatible insert
// postgreSQL compatible insert
$q = "INSERT INTO ".$this->table_array[$key]["table_name"]." (".$this->table_array[$key]["input_name"].") VALUES ('".addslashes($this->table_array[$key]["input_value"])."')";
$this->db_exec($q);
if ($this->table_array[$key]["where"])
@@ -1292,6 +1314,8 @@
// write reference array(s) if necessary
if (is_array($this->reference_array))
{
if (!is_array($this->reference_array))
$this->reference_array = array ();
reset($this->reference_array);
foreach ($this->reference_array AS $reference_array)
{
@@ -1308,8 +1332,9 @@
// write element list
if (is_array($this->element_list))
{
if (!is_array($this->element_list))
$this->element_list = array ();
reset($this->element_list);
while (list($table_name, $reference_array) = each($this->element_list))
{
// get the number of keys from the elements array
@@ -1431,6 +1456,8 @@ $this->debug('edit_error', "I: $i | EL Name: $prfx$el_name | Data: ".$_POST[$prf
// remove any reference arrays
if (is_array($this->reference_array))
{
if (!is_array($this->reference_array))
$this->reference_array = array ();
reset($this->reference_array);
foreach ($this->reference_array AS $reference_array)
{
@@ -1441,6 +1468,8 @@ $this->debug('edit_error', "I: $i | EL Name: $prfx$el_name | Data: ".$_POST[$prf
// remove any element list references
if (is_array($this->element_list))
{
if (!is_array($this->element_list))
$this->element_list = array ();
reset($this->element_list);
while (list($table_name, $data_array) = each($this->element_list))
{
@@ -1449,6 +1478,8 @@ $this->debug('edit_error', "I: $i | EL Name: $prfx$el_name | Data: ".$_POST[$prf
}
}
// unlink ALL files
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
@@ -1466,7 +1497,10 @@ $this->debug('edit_error', "I: $i | EL Name: $prfx$el_name | Data: ".$_POST[$prf
// creates HTML hidden input fields out of an hash array
public function form_create_hidden_fields($hidden_array = "")
{
reset ($this->table_array);
$hidden = array ();
if (!is_array($this->table_array))
$this->table_array = array ();
reset($this->table_array);
while (list($key, $value) = each($this->table_array))
{
if ($this->table_array[$key]["type"] == "hidden")
@@ -1474,9 +1508,9 @@ $this->debug('edit_error', "I: $i | EL Name: $prfx$el_name | Data: ".$_POST[$prf
$hidden_array[$key] = $this->table_array[$key]["value"];
}
}
if ($hidden_array)
if (is_array($hidden_array))
{
reset ($hidden_array);
reset($hidden_array);
while (list($key, $value) = each($hidden_array))
{
$hidden[] = array('key' => $key, 'value' => $value);
@@ -1530,6 +1564,8 @@ $this->debug('edit_error', "I: $i | EL Name: $prfx$el_name | Data: ".$_POST[$prf
$data['table_name'] = $table_name;
$pos = 0; // position in while for overwrite if needed
// build the select part
if (!is_array($this->element_list[$table_name]["elements"]))
$this->element_list[$table_name]["elements"] = array ();
reset($this->element_list[$table_name]["elements"]);
// generic data read in (counts for all rows)
while (list($el_name, $data_array) = each($this->element_list[$table_name]["elements"]))

View File

@@ -98,7 +98,7 @@ class gettext_reader {
* @param object Reader the StreamReader object
* @param boolean enable_cache Enable or disable caching of strings (default on)
*/
function gettext_reader($Reader, $enable_cache = true) {
function __construct($Reader, $enable_cache = true) {
// If there isn't a StreamReader, turn on short circuit mode.
if (! $Reader || isset($Reader->error) ) {
$this->short_circuit = true;

View File

@@ -49,7 +49,7 @@ class StringReader {
var $_pos;
var $_str;
function StringReader($str='') {
function __construct($str='') {
$this->_str = $str;
$this->_pos = 0;
}
@@ -86,7 +86,7 @@ class FileReader {
var $_fd;
var $_length;
function FileReader($filename) {
function __construct($filename) {
if (file_exists($filename)) {
$this->_length=filesize($filename);
@@ -143,7 +143,7 @@ class FileReader {
// Preloads entire file in memory first, then creates a StringReader
// over it (it assumes knowledge of StringReader internals)
class CachedFileReader extends StringReader {
function CachedFileReader($filename) {
function __construct($filename) {
if (file_exists($filename)) {
$length=filesize($filename);

View File

@@ -183,7 +183,7 @@ function smarty_function_html_options_optoutput($key, $value, $selected, $id, $c
$idx ++;
} else {
$_idx = 0;
$_html_result = smarty_function_html_options_optgroup($key, $value, $selected, !empty($id) ? ($id . '-' . $idx) : null, $class, $_idx);
$_html_result = smarty_function_html_options_optgroup($key, $value, $selected, !empty($id) ? ($id . '-' . $idx) : null, $class, $label, $_idx);
$idx ++;
}