debug($text, $level); } /** * Convert a htmlentities-encoded string back to normal */ function it_htmlentities_decode($string) { return strtr($string, array_flip(get_html_translation_table(HTML_ENTITIES))); } /** * Clone an object and return copy, works for all PHP versions */ function &it_clone(&$object) { $result = (is_object($object) && version_compare(zend_version(), 2, '>=')) ? clone($object) : $object; return $result; # PHP internals need a tmp var to return by ref } /** * Return string containing names and values of all arguments */ function D() { $args = func_get_args(); return it_debug::dump($args); } /** * Echo string containing names and values of all arguments */ function ED() { $args = func_get_args(); echo it_debug::dump($args); return $args[0]; } /** * Same as ED(), but if first argument is foo then $GLOBALS['debug_foo'] must be set for output * @return boolean indicating whether $GLOBALS['debug_foo'] was set */ function EDC() { $args = func_get_args(); $var = array_shift($args); $GLOBALS['ULTRADEBUGVARS'][$var] = 1; if (($result = $GLOBALS["debug_$var"]) && $args) echo it_debug::dump($args); if (!$result || $result === true) # Compatibility with old map relying on 0|1 $result = intval($result); return $result; } /** * Echo string containing names and values of all arguments, then exit */ function EDX() { $args = func_get_args(); exit(it_debug::dump($args)); } /** * Return a text in the selected language * @param $label Label of text to return * @param $language Optional language to return text in * @return Localized text string */ function T($label, $language = null, $dummy = false) { it_text::init(); return $GLOBALS['it_text']->text($label, $language, $dummy); } /** * Return a text in the selected language * Replaces variables of the form {var} with value from argument $values * @param $label Label of text to return * @param $values Associative array containing values to fill in * @param $language Optional language to return text in. * @return Localized text string with variables replaced by their values */ function ET($label, $values = null, $language = null) { it_text::init(); return $GLOBALS['it_text']->etext($label, $values, $language); } /** * Change language * @param $language New language to set * @param $setcookie Optional flag if a cookie is to be set (default: true) */ function T_set_language($language, $setcookie = true) { it_text::init(); return $GLOBALS['it_text']->set_language($language, $setcookie); } /** * Get active language * @return currently active language */ function T_lang() { it_text::init(); return $GLOBALS['it_text']->get_language(); } /** * Check if a text entry for a specific label exists * @param $label Label to check * @return true if text exists in actual (or supplied) language, false otherwise. */ function T_exists($label, $language = null) { it_text::init(); return $GLOBALS['it_text']->text_exists($label, $language); } /** * Return "db4" or "db2" depending on availability */ function db_version() { return in_array("db4", dba_handlers()) ? "db4" : "db2"; } /** * Experimental PHP taint support, see ftp://ftp.porcupine.org/pub/php/ */ if (function_exists("taint")) { function it_untaint(&$value, $marks = TC_HTML) { untaint($value, $marks); return $value; } function it_taintcheck(&$value, $marks = TC_HTML) { if (istainted($value) & $marks) { untaint($value, $marks); it::error("it_taintcheck($value, $marks) failed"); } return $value; } } else { function it_untaint(&$value, $marks = 0) { return $value; } function it_taintcheck(&$value, $marks = 0) { } } ?>