From 0c2c0d2b19607e371aa71dc966c062507bc686fe Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 5 Feb 2016 11:41:27 +0900 Subject: [PATCH] Set request method to XMLRPC if called via exec_xml() --- classes/context/Context.class.php | 6 ++++++ classes/display/DisplayHandler.class.php | 18 +++++++++--------- common/js/xml_handler.js | 2 ++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index adbe0269a..56eeab0cc 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -235,6 +235,12 @@ class Context $this->_setJSONRequestArgument(); $this->_setRequestArgument(); $this->_setUploadedArgument(); + + if(isset($_POST['_rx_ajax_compat']) && $_POST['_rx_ajax_compat'] === 'XMLRPC') + { + self::$_instance->request_method = 'XMLRPC'; + self::$_instance->response_method = 'JSON'; + } $this->loadDBInfo(); if($this->db_info->use_sitelock == 'Y') diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index a981765e5..15a71f809 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -40,7 +40,15 @@ class DisplayHandler extends Handler { $handler = new VirtualXMLDisplayHandler(); } - else if(Context::getRequestMethod() == 'XMLRPC') + elseif(Context::getRequestMethod() == 'JSON' || isset($_POST['_rx_ajax_compat'])) + { + $handler = new JSONDisplayHandler(); + } + elseif(Context::getRequestMethod() == 'JS_CALLBACK') + { + $handler = new JSCallbackDisplayHandler(); + } + elseif(Context::getRequestMethod() == 'XMLRPC') { $handler = new XMLDisplayHandler(); if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) @@ -48,14 +56,6 @@ class DisplayHandler extends Handler $this->gz_enabled = FALSE; } } - else if(Context::getRequestMethod() == 'JSON') - { - $handler = new JSONDisplayHandler(); - } - else if(Context::getRequestMethod() == 'JS_CALLBACK') - { - $handler = new JSCallbackDisplayHandler(); - } else { $handler = new HTMLDisplayHandler(); diff --git a/common/js/xml_handler.js b/common/js/xml_handler.js index b9c8df76d..942ac9654 100644 --- a/common/js/xml_handler.js +++ b/common/js/xml_handler.js @@ -27,6 +27,7 @@ params = params ? ($.isArray(params) ? arr2obj(params) : params) : {}; params.module = module; params.act = act; + params._rx_ajax_compat = 'XMLRPC'; // Fill in the XE vid. if (typeof(xeVid) != "undefined") params.vid = xeVid; @@ -162,6 +163,7 @@ if (action.length != 2) return; params.module = action[0]; params.act = action[1]; + params._rx_ajax_compat = 'JSON'; // Fill in the XE vid. if (typeof(xeVid) != "undefined") params.vid = xeVid;