X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2Fcommon.lib.php;h=747f3e016d63a09f271754e3a1c5313e5c854b78;hb=f787edd7045299de3885c052d243b446f7324ea0;hp=124b78f5887823c3d13a61370f96008d4561e21d;hpb=993450e17195b87dc406c3135ee22dafe9b825fb;p=timetracker.git diff --git a/WEB-INF/lib/common.lib.php b/WEB-INF/lib/common.lib.php index 124b78f5..747f3e01 100644 --- a/WEB-INF/lib/common.lib.php +++ b/WEB-INF/lib/common.lib.php @@ -26,17 +26,12 @@ // | https://www.anuko.com/time_tracker/credits.htm // +----------------------------------------------------------------------+ - /** - * @return unknown - * @param file unknown - * @param version = "" unknown - * @desc Loads a class - */ - function import( $class_name ) { - $libs = array( - dirname($_SERVER["SCRIPT_FILENAME"]), - LIBRARY_DIR - ); +// import() function loads a class. +function import($class_name) { + $libs = array( + dirname($_SERVER["SCRIPT_FILENAME"]), + LIBRARY_DIR + ); $pos = strpos($class_name, "."); if (!($pos === false)) { @@ -61,7 +56,7 @@ print '
load_class: error loading file "'.$filename.'"'; die(); - } +} // The mu_sort function is used to sort a multi-dimensional array. // It looks like the code example is taken from the PHP manual http://ca2.php.net/manual/en/function.sort.php @@ -127,7 +122,6 @@ die($mdb2->getMessage()); } - $mdb2->setOption('debug', true); $mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); $GLOBALS["_MDB2_CONNECTION"] = $mdb2; @@ -136,36 +130,24 @@ } - function closeConnection() { - if (isset($GLOBALS["_DB_CONNECTION"])) { - $GLOBALS["_DB_CONNECTION"]->close(); - unset($GLOBALS["_DB_CONNECTION"]); - } - } - -function time_to_decimal($a) { - $tmp = explode(":", $a); - if($tmp[1]{0}=="0") $tmp[1] = $tmp[1]{1}; +// time_to_decimal converts a time string such as 1:15 to its decimal representation such as 1.25 or 1,25. +function time_to_decimal($val) { + global $user; + $parts = explode(':', $val); // parts[0] is hours, parts[1] is minutes. - $m = round($tmp[1]*100/60); + $minutePercent = round($parts[1]*100/60); // Integer value (0-98) of percent of minutes portion in the hour. + if($minutePercent < 10) $minutePercent = '0'.$minutePercent; // Pad small values with a 0 to always have 2 digits. - if($m<10) $m = "0".$m; - $time = $tmp[0].".".$m; - return $time; -} + $decimalTime = $parts[0].$user->decimal_mark.$minutePercent; // Construct decimal representation of time value. -function sec_to_time_fmt_hm($sec) -{ - return sprintf("%d:%02d", $sec / 3600, $sec % 3600 / 60); + return $decimalTime; } function magic_quotes_off() { - // if (get_magic_quotes_gpc()) { // This check is now done before calling this function. - $_POST = array_map('stripslashes_deep', $_POST); - $_GET = array_map('stripslashes_deep', $_GET); - $_COOKIE = array_map('stripslashes_deep', $_COOKIE); - // } + $_POST = array_map('stripslashes_deep', $_POST); + $_GET = array_map('stripslashes_deep', $_GET); + $_COOKIE = array_map('stripslashes_deep', $_COOKIE); } // check_extension checks whether a required PHP extension is loaded and dies if not so. @@ -178,7 +160,7 @@ function check_extension($ext) // isTrue is a helper function to return correct false for older config.php values defined as a string 'false'. function isTrue($val) { - return ($val == false || $val === 'false') ? false : true; + return (defined($val) && constant($val) === true); } // ttValidString is used to check user input to validate a string. @@ -195,6 +177,15 @@ function ttValidString($val, $emptyValid = false) return true; } +// ttValidTemplateText is used to check template-based user input. +// When templates are used, required input parts must be filled by user. +// We identify these parts by 3 "stop sign" emojis (aka "octagonal sign" U+1F6D1). +function ttValidTemplateText($val) +{ + $valid = strpos($val, '🛑🛑🛑') === false; // no 3 "stop sign" emojis in a row. + return $valid; +} + // ttValidEmail is used to check user input to validate an email string. function ttValidEmail($val, $emptyValid = false) { @@ -239,7 +230,7 @@ function ttValidFloat($val, $emptyValid = false) return ($emptyValid ? true : false); global $user; - $decimal = $user->decimal_mark; + $decimal = $user->getDecimalMark(); if (!preg_match('/^-?[0-9'.$decimal.']+$/', $val)) return false; @@ -321,22 +312,112 @@ function ttValidCronSpec($val) return true; } -// ttAccessCheck is used to check whether user is allowed to proceed. This function is used -// as an initial check on all publicly available pages. -function ttAccessCheck($required_rights) +// ttValidCondition is used to check user input to validate a notification condition. +function ttValidCondition($val, $emptyValid = true) +{ + $val = trim($val); + if (strlen($val) == 0) + return ($emptyValid ? true : false); + + // String must not be XSS evil (to insert JavaScript). + if (stristr($val, '