1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/z-push_ynh.git synced 2024-09-03 18:05:58 +02:00
z-push_ynh/sources/lib/core/zpush-utils.php

73 lines
2.8 KiB
PHP

<?php
// TODO Win1252/UTF8 functions are deprecated and will be removed sometime
//if the ICS backend is loaded in CombinedBackend and Zarafa > 7
//STORE_SUPPORTS_UNICODE is true and the convertion will not be done
//for other backends.
function utf8_to_windows1252($string, $option = "", $force_convert = false) {
//if the store supports unicode return the string without converting it
if (!$force_convert && defined('STORE_SUPPORTS_UNICODE') && STORE_SUPPORTS_UNICODE == true) return $string;
if (function_exists("iconv")){
return @iconv("UTF-8", "Windows-1252" . $option, $string);
}else{
return utf8_decode($string); // no euro support here
}
}
function windows1252_to_utf8($string, $option = "", $force_convert = false) {
//if the store supports unicode return the string without converting it
if (!$force_convert && defined('STORE_SUPPORTS_UNICODE') && STORE_SUPPORTS_UNICODE == true) return $string;
if (function_exists("iconv")){
return @iconv("Windows-1252", "UTF-8" . $option, $string);
}else{
return utf8_encode($string); // no euro support here
}
}
function w2u($string) { return windows1252_to_utf8($string); }
function u2w($string) { return utf8_to_windows1252($string); }
function w2ui($string) { return windows1252_to_utf8($string, "//TRANSLIT"); }
function u2wi($string) { return utf8_to_windows1252($string, "//TRANSLIT"); }
/**
* @param string $message
* @deprecated
*/
function debugLog($message) {
ZLog::Write(LOGLEVEL_DEBUG, $message);
}
// TODO review error handler
function zarafa_error_handler($errno, $errstr, $errfile, $errline, $errcontext) {
$bt = debug_backtrace();
switch ($errno) {
case 8192: // E_DEPRECATED since PHP 5.3.0
// do not handle this message
break;
case E_NOTICE:
case E_WARNING:
// TODO check if there is a better way to avoid these messages
if (stripos($errfile,'interprocessdata') !== false && stripos($errstr,'shm_get_var()') !== false)
break;
ZLog::Write(LOGLEVEL_WARN, "$errfile:$errline $errstr ($errno)");
break;
default:
ZLog::Write(LOGLEVEL_ERROR, "trace error: $errfile:$errline $errstr ($errno) - backtrace: ". (count($bt)-1) . " steps");
for($i = 1, $bt_length = count($bt); $i < $bt_length; $i++) {
$file = $line = "unknown";
if (isset($bt[$i]['file'])) $file = $bt[$i]['file'];
if (isset($bt[$i]['line'])) $line = $bt[$i]['line'];
ZLog::Write(LOGLEVEL_ERROR, "trace: $i:". $file . ":" . $line. " - " . ((isset($bt[$i]['class']))? $bt[$i]['class'] . $bt[$i]['type']:""). $bt[$i]['function']. "()");
}
//throw new Exception("An error occured.");
break;
}
}
error_reporting(E_ALL);
set_error_handler("zarafa_error_handler");