From e94a9fb5e4b6a2bc07e0bb4cf8ea35fc70c4bbf0 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 10 May 2012 12:31:27 -0400
Subject: [PATCH] Merged revisions 3049-3051,3053-3054,3058,3070,3074-3077,3082,3086-3088,3091-3092,3094-3095 from stable branch.
---
interface/lib/classes/functions.inc.php | 46 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 45 insertions(+), 1 deletions(-)
diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index 8071429..2fe7191 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -45,6 +45,7 @@
$content = file_get_contents($filepath);
$content = chunk_split(base64_encode($content));
$uid = strtoupper(md5(uniqid(time())));
+ $subject = "=?utf-8?B?".base64_encode($subject)."?=";
if($filename == '') {
$path_parts = pathinfo($filepath);
@@ -52,7 +53,7 @@
unset($path_parts);
}
- $header = "From: $from\nReply-To: $from\n";
+ $header = "Return-Path: $form\nFrom: $from\nReply-To: $from\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=$uid\n";
@@ -73,6 +74,9 @@
mail($to, $subject, "", $header);
} else {
$header = "From: $from\nReply-To: $from\n";
+ $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n";
+ $header .= "Content-Transfer-Encoding: 8bit\n\n";
+ $subject = "=?utf-8?B?".base64_encode($subject)."?=";
mail($to, $subject, $text, $header);
}
@@ -105,6 +109,46 @@
return $url;
}
+ function json_encode($data) {
+ if(!function_exists('json_encode')){
+ switch ($type = gettype($data)){
+ case 'NULL':
+ return 'null';
+ case 'boolean':
+ return ($data ? 'true' : 'false');
+ case 'integer':
+ case 'double':
+ case 'float':
+ return $data;
+ case 'string':
+ return '"' . addslashes($data) . '"';
+ case 'object':
+ $data = get_object_vars($data);
+ case 'array':
+ $output_index_count = 0;
+ $output_indexed = array();
+ $output_associative = array();
+ foreach($data as $key => $value){
+ $output_indexed[] = $this->json_encode($value);
+ $output_associative[] = $this->json_encode($key) . ':' . $this->json_encode($value);
+ if($output_index_count !== NULL && $output_index_count++ !== $key){
+ $output_index_count = NULL;
+ }
+ }
+ if($output_index_count !== NULL){
+ return '[' . implode(',', $output_indexed) . ']';
+ } else {
+ return '{' . implode(',', $output_associative) . '}';
+ }
+ default:
+ return ''; // Not supported
+ }
+ } else {
+ return json_encode($data);
+ }
+ }
+
+
}
--
Gitblit v1.9.1