etext($label, array_map(array("it_html", "Q"), (array)$values), $language, false); } /** * 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 (no quoting) * @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 */ function T_set_language($language) { it_text::init(); return $GLOBALS['it_text']->set_language($language); } /** * Get active language * @return currently active language */ function T_lang() { it_text::init(); return $GLOBALS['it_text']->get_language(); } /** * Get active language * @return default language of browser */ function T_defaultlang() { it_text::init(); return $GLOBALS['it_text']->get_defaultlanguage(); } /** * Get available languages * @return available languages as langcode => langname */ function T_languages() { it_text::init(); return $GLOBALS['it_text']->languages; } /** * Check if a text entry for a specific label exists * @param $label Label to check * @return label name if text exists in current (or supplied) language, false otherwise. */ function T_exists($label, $language = null) { it_text::init(); return $GLOBALS['it_text']->text_exists($label, $language); } /****************** functions for class it_text **********************/ /** * Build an url */ function U(...$args) { return is_a($obj = $GLOBALS['it_html'], 'it_html') ? $obj->U(...$args) : it_html::U(...$args); } /************************** other functions ***************************/ /** * Print an error message and end page */ function fail($text) { it::fatal($text); } /** * Global shortcut for $it_debug::debug() * @see it_debug::debug() */ function debug($text, $level=0) { if (isset($GLOBALS['it_debug'])) $GLOBALS['it_debug']->debug($text, $level); } /** * 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 } /** * 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_untaint("it_taintcheck($value, $marks) failed")); } return $value; } } else { define('TC_HTML', 0); define('TC_SHELL', 0); define('TC_MYSQL', 0); define('TC_MYSQLI', 0); define('TC_SELF', 0); define('TC_ALL', 0); define('TC_NONE', 0); function it_untaint($value, $dummy_marks = 0) { return $value; } function it_taintcheck($value, $dummy_marks = 0) { return $value; } } # ULTRAHOME is generated in a safe way $GLOBALS['ULTRAHOME'] = it_untaint($GLOBALS['ULTRAHOME'], TC_ALL); ?>