diff --git a/src/messenger/webim/libs/common.php b/src/messenger/webim/libs/common.php index 2278c7d8..98addfc5 100644 --- a/src/messenger/webim/libs/common.php +++ b/src/messenger/webim/libs/common.php @@ -17,14 +17,23 @@ session_start(); -require_once(dirname(__FILE__) . '/converter.php'); require_once(dirname(__FILE__) . '/config.php'); require_once(dirname(__FILE__) . '/plugins.php'); require_once(dirname(__FILE__) . '/classes/database.php'); require_once(dirname(__FILE__) . '/classes/settings.php'); -$version = '1.6.5'; -$jsver = "165"; +// Include common libs +require_once(dirname(__FILE__) . '/common/constants.php'); +require_once(dirname(__FILE__) . '/common/csrf.php'); +require_once(dirname(__FILE__) . '/common/datetime.php'); +require_once(dirname(__FILE__) . '/common/forms.php'); +require_once(dirname(__FILE__) . '/common/verification.php'); +require_once(dirname(__FILE__) . '/common/locale.php'); +require_once(dirname(__FILE__) . '/common/misc.php'); +require_once(dirname(__FILE__) . '/common/request.php'); +require_once(dirname(__FILE__) . '/common/response.php'); +require_once(dirname(__FILE__) . '/common/string.php'); + // Initialize the database Database::initialize( @@ -38,602 +47,10 @@ Database::initialize( $dbencoding ); -function myiconv($in_enc, $out_enc, $string) -{ - global $_utf8win1251, $_win1251utf8; - if ($in_enc == $out_enc) { - return $string; - } - if (function_exists('iconv')) { - $converted = @iconv($in_enc, $out_enc, $string); - if ($converted !== FALSE) { - return $converted; - } - } - if ($in_enc == "cp1251" && $out_enc == "utf-8") - return strtr($string, $_win1251utf8); - if ($in_enc == "utf-8" && $out_enc == "cp1251") - return strtr($string, $_utf8win1251); - - return $string; // do not know how to convert -} - -function verifyparam($name, $regexp, $default = null) -{ - if (isset($_GET[$name])) { - $val = $_GET[$name]; - if (preg_match($regexp, $val)) - return $val; - - } else if (isset($_POST[$name])) { - $val = $_POST[$name]; - if (preg_match($regexp, $val)) - return $val; - - } else { - if (isset($default)) - return $default; - } - echo "
Wrong parameter used or absent: " . $name . ""; - exit; -} - -function debugexit_print($var) -{ - echo ""; - print_r($var); - echo ""; - exit; -} - -$locale_pattern = "/^[\w-]{2,5}$/"; - -function locale_exists($locale) -{ - return file_exists(dirname(__FILE__) . "/../locales/$locale/properties"); -} - -function get_available_locales() -{ - global $locale_pattern; - $list = array(); - $folder = dirname(__FILE__) . "/../locales"; - if ($handle = opendir($folder)) { - while (false !== ($file = readdir($handle))) { - if (preg_match($locale_pattern, $file) && $file != 'names' && is_dir("$folder/$file")) { - $list[] = $file; - } - } - closedir($handle); - } - sort($list); - return $list; -} - -function get_user_locale() -{ - global $default_locale; - - if (isset($_COOKIE['webim_locale'])) { - $requested_lang = $_COOKIE['webim_locale']; - if (locale_exists($requested_lang)) - return $requested_lang; - } - - if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - $requested_langs = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']); - foreach ($requested_langs as $requested_lang) { - if (strlen($requested_lang) > 2) - $requested_lang = substr($requested_lang, 0, 2); - - if (locale_exists($requested_lang)) - return $requested_lang; - } - } - - if (locale_exists($default_locale)) - return $default_locale; - - return 'en'; -} - -function get_locale() -{ - global $webimroot, $locale_pattern; - - $locale = verifyparam("locale", $locale_pattern, ""); - - if ($locale && locale_exists($locale)) { - $_SESSION['locale'] = $locale; - setcookie('webim_locale', $locale, time() + 60 * 60 * 24 * 1000, "$webimroot/"); - } else if (isset($_SESSION['locale'])) { - $locale = $_SESSION['locale']; - } - - if (!$locale || !locale_exists($locale)) - $locale = get_user_locale(); - return $locale; -} - -$current_locale = get_locale(); -$messages = array(); -$output_encoding = array(); - if (function_exists("date_default_timezone_set")) { // TODO try to get timezone from config.php/session etc. // autodetect timezone @date_default_timezone_set(function_exists("date_default_timezone_get") ? @date_default_timezone_get() : "GMT"); } -function get_locale_links($href) -{ - global $current_locale; - $localeLinks = array(); - $allLocales = get_available_locales(); - if (count($allLocales) < 2) { - return null; - } - foreach ($allLocales as $k) { - $localeLinks[$k] = getlocal_($k, "names"); - } - return $localeLinks; -} - -function load_messages($locale) -{ - global $messages, $webim_encoding, $output_encoding; - $hash = array(); - $current_encoding = $webim_encoding; - $fp = fopen(dirname(__FILE__) . "/../locales/$locale/properties", "r"); - while (!feof($fp)) { - $line = fgets($fp, 4096); - $keyval = preg_split("/=/", $line, 2); - if (isset($keyval[1])) { - if ($keyval[0] == 'encoding') { - $current_encoding = trim($keyval[1]); - } else if ($keyval[0] == 'output_encoding') { - $output_encoding[$locale] = trim($keyval[1]); - } else if ($current_encoding == $webim_encoding) { - $hash[$keyval[0]] = str_replace("\\n", "\n", trim($keyval[1])); - } else { - $hash[$keyval[0]] = myiconv($current_encoding, $webim_encoding, str_replace("\\n", "\n", trim($keyval[1]))); - } - } - } - fclose($fp); - $messages[$locale] = $hash; -} - -function getoutputenc() -{ - global $current_locale, $output_encoding, $webim_encoding, $messages; - if (!isset($messages[$current_locale])) - load_messages($current_locale); - return isset($output_encoding[$current_locale]) ? $output_encoding[$current_locale] : $webim_encoding; -} - -function getstring_($text, $locale) -{ - global $messages; - if (!isset($messages[$locale])) - load_messages($locale); - - $localized = $messages[$locale]; - if (isset($localized[$text])) - return $localized[$text]; - if ($locale != 'en') { - return getstring_($text, 'en'); - } - - return "!" . $text; -} - -function getstring($text) -{ - global $current_locale; - return getstring_($text, $current_locale); -} - -function getlocal($text) -{ - global $current_locale, $webim_encoding; - return myiconv($webim_encoding, getoutputenc(), getstring_($text, $current_locale)); -} - -function getlocal_($text, $locale) -{ - global $webim_encoding; - return myiconv($webim_encoding, getoutputenc(), getstring_($text, $locale)); -} - -function topage($text) -{ - global $webim_encoding; - return myiconv($webim_encoding, getoutputenc(), $text); -} - -function getstring2_($text, $params, $locale) -{ - $string = getstring_($text, $locale); - for ($i = 0; $i < count($params); $i++) { - $string = str_replace("{" . $i . "}", $params[$i], $string); - } - return $string; -} - -function getstring2($text, $params) -{ - global $current_locale; - return getstring2_($text, $params, $current_locale); -} - -function getlocal2($text, $params) -{ - global $current_locale, $webim_encoding; - $string = myiconv($webim_encoding, getoutputenc(), getstring_($text, $current_locale)); - for ($i = 0; $i < count($params); $i++) { - $string = str_replace("{" . $i . "}", $params[$i], $string); - } - return $string; -} - -/* prepares for Javascript string */ -function getlocalforJS($text, $params) -{ - global $current_locale, $webim_encoding; - $string = myiconv($webim_encoding, getoutputenc(), getstring_($text, $current_locale)); - $string = str_replace("\"", "\\\"", str_replace("\n", "\\n", $string)); - for ($i = 0; $i < count($params); $i++) { - $string = str_replace("{" . $i . "}", $params[$i], $string); - } - return $string; -} - -/* ajax server actions use utf-8 */ -function getrawparam($name) -{ - global $webim_encoding; - if (isset($_POST[$name])) { - $value = myiconv("utf-8", $webim_encoding, $_POST[$name]); - if (get_magic_quotes_gpc()) { - $value = stripslashes($value); - } - return $value; - } - die("no " . $name . " parameter"); -} - -/* form processors use current Output encoding */ -function getparam($name) -{ - global $webim_encoding; - if (isset($_POST[$name])) { - $value = myiconv(getoutputenc(), $webim_encoding, $_POST[$name]); - if (get_magic_quotes_gpc()) { - $value = stripslashes($value); - } - return $value; - } - die("no " . $name . " parameter"); -} - -function unicode_urldecode($url) -{ - preg_match_all('/%u([[:alnum:]]{4})/', $url, $a); - - foreach ($a[1] as $uniord) { - $dec = hexdec($uniord); - $utf = ''; - - if ($dec < 128) { - $utf = chr($dec); - } else if ($dec < 2048) { - $utf = chr(192 + (($dec - ($dec % 64)) / 64)); - $utf .= chr(128 + ($dec % 64)); - } else { - $utf = chr(224 + (($dec - ($dec % 4096)) / 4096)); - $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64)); - $utf .= chr(128 + ($dec % 64)); - } - $url = str_replace('%u' . $uniord, $utf, $url); - } - return urldecode($url); -} - -function getgetparam($name, $default = '') -{ - global $webim_encoding; - if (!isset($_GET[$name]) || !$_GET[$name]) { - return $default; - } - $value = myiconv("utf-8", $webim_encoding, unicode_urldecode($_GET[$name])); - if (get_magic_quotes_gpc()) { - $value = stripslashes($value); - } - return $value; -} - -function cutstring($string, $length = 75, $ellipsis = '') -{ - $result = ''; - if (strlen($string) > $length) { - $splitstring = explode("[__cut__]", wordwrap($string, $length, "[__cut__]", true)); - $result = $splitstring[0] . $ellipsis; - }else{ - $result = $string; - } - return $result; -} - -function start_xml_output() -{ - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); - header("Cache-Control: no-store, no-cache, must-revalidate"); - header("Pragma: no-cache"); - header("Content-type: text/xml; charset=utf-8"); - echo ""; -} - -function start_html_output() -{ - $charset = getstring("output_charset"); - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); - header("Cache-Control: no-store, no-cache, must-revalidate"); - header("Pragma: no-cache"); - header("Content-type: text/html" . (isset($charset) ? "; charset=" . $charset : "")); -} - -function start_js_output(){ - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); - header("Cache-Control: no-store, no-cache, must-revalidate"); - header("Pragma: no-cache"); - header("Content-type: application/javascript; charset=utf-8"); - header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); -} - -function escape_with_cdata($text) -{ - return "", "]]>]]>"; -} - -function form_value($key) -{ - global $page; - if (isset($page) && isset($page["form$key"])) - return htmlspecialchars($page["form$key"]); - return ""; -} - -function form_value_cb($key) -{ - global $page; - if (isset($page) && isset($page["form$key"])) - return $page["form$key"] === true; - return false; -} - -function form_value_mb($key, $id) -{ - global $page; - if (isset($page) && isset($page["form$key"]) && is_array($page["form$key"])) { - return in_array($id, $page["form$key"]); - } - return false; -} - -function no_field($key) -{ - return getlocal2("errors.required", array(getlocal($key))); -} - -function failed_uploading_file($filename, $key) -{ - return getlocal2("errors.failed.uploading.file", - array($filename, getlocal($key))); -} - -function wrong_field($key) -{ - return getlocal2("errors.wrong_field", array(getlocal($key))); -} - -function get_popup($href, $jshref, $message, $title, $wndName, $options) -{ - if (!$jshref) { - $jshref = "'$href'"; - } - return "$message"; -} - -function get_image($href, $width, $height) -{ - if ($width != 0 && $height != 0) - return "
"; + print_r($var); + echo "