From 8b5038befcccc29bdf8ea1f0f5745277e87e072f Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 29 Sep 2014 05:22:38 -0400
Subject: [PATCH] Fix handling of smart list inputs
---
program/include/rcmail.php | 40 +++++++++++++++++++---------------------
1 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index bb2346f..e1a6276 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -116,11 +116,13 @@
$_SESSION['task'] = $this->task;
}
- // init output class
- if (!empty($_REQUEST['_remote']))
+ // init output class (not in CLI mode)
+ if (!empty($_REQUEST['_remote'])) {
$GLOBALS['OUTPUT'] = $this->json_init();
- else
+ }
+ else if ($_SERVER['REMOTE_ADDR']) {
$GLOBALS['OUTPUT'] = $this->load_gui(!empty($_REQUEST['_framed']));
+ }
// load plugins
$this->plugins->init($this, $this->task);
@@ -147,8 +149,13 @@
$this->task = $task;
$this->comm_path = $this->url(array('task' => $this->task));
+ if (!empty($_REQUEST['_framed'])) {
+ $this->comm_path .= '&_framed=1';
+ }
+
if ($this->output) {
$this->output->set_env('task', $this->task);
+ $this->output->set_env('comm_path', $this->comm_path);
}
}
@@ -168,7 +175,7 @@
setlocale(LC_ALL, $lang . '.utf8', $lang . '.UTF-8', 'en_US.utf8', 'en_US.UTF-8');
// workaround for http://bugs.php.net/bug.php?id=18556
- if (version_compare(PHP_VERSION, '5.5.0', '<') && in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) {
+ if (PHP_VERSION_ID < 50500 && in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) {
setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8');
}
}
@@ -822,26 +829,17 @@
}
if ($absolute || $full) {
- $prefix = '';
-
- // prepend protocol://hostname:port
- if ($full) {
- $schema = 'http';
- $default_port = 80;
- if (rcube_utils::https_check()) {
- $schema = 'https';
- $default_port = 443;
- }
- $prefix = $schema . '://' . preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST']);
- if ($_SERVER['SERVER_PORT'] != $default_port) {
- $prefix .= ':' . $_SERVER['SERVER_PORT'];
- }
- }
-
// add base path to this Roundcube installation
$base_path = preg_replace('![^/]+$!', '', strval($_SERVER['SCRIPT_NAME']));
if ($base_path == '') $base_path = '/';
- $prefix .= $base_path;
+ $prefix = $base_path;
+
+ // prepend protocol://hostname:port
+ if ($full) {
+ $prefix = rcube_utils::resolve_url($prefix);
+ }
+
+ $prefix = rtrim($prefix, '/') . '/';
}
else {
$prefix = './';
--
Gitblit v1.9.1