diff --git a/src/_h5ai/client/js/inc/core/location.js b/src/_h5ai/client/js/inc/core/location.js index 37409d94..2e8680e2 100644 --- a/src/_h5ai/client/js/inc/core/location.js +++ b/src/_h5ai/client/js/inc/core/location.js @@ -84,7 +84,7 @@ modulejs.define('core/location', ['_', 'modernizr', 'core/event', 'core/settings function load(callback) { - modulejs.require('core/server').request({action: 'get', items: true, itemsHref: absHref, itemsWhat: 1}, function (json) { + modulejs.require('core/server').request({action: 'get', items: {href: absHref, what: 1}}, function (json) { var Item = modulejs.require('model/item'); var item = Item.get(absHref); diff --git a/src/_h5ai/client/js/inc/ext/custom.js b/src/_h5ai/client/js/inc/ext/custom.js index e51a43c5..2faebee5 100644 --- a/src/_h5ai/client/js/inc/ext/custom.js +++ b/src/_h5ai/client/js/inc/ext/custom.js @@ -10,7 +10,7 @@ modulejs.define('ext/custom', ['_', '$', 'marked', 'core/event', 'core/server', function onLocationChanged(item) { - server.request({action: 'get', custom: true, customHref: item.absHref}, function (response) { + server.request({action: 'get', custom: item.absHref}, function (response) { var hasHeader; var hasFooter; diff --git a/src/_h5ai/client/js/inc/ext/l10n.js b/src/_h5ai/client/js/inc/ext/l10n.js index 7f94ca65..663f2532 100644 --- a/src/_h5ai/client/js/inc/ext/l10n.js +++ b/src/_h5ai/client/js/inc/ext/l10n.js @@ -67,7 +67,7 @@ modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs' callback(loaded[isoCode]); } else { - server.request({action: 'get', l10n: true, l10nCodes: isoCode}, function (response) { + server.request({action: 'get', l10n: [isoCode]}, function (response) { var json = response.l10n && response.l10n[isoCode] ? response.l10n[isoCode] : {}; loaded[isoCode] = _.extend({}, defaultTranslations, json, {isoCode: isoCode}); diff --git a/src/_h5ai/client/js/inc/model/item.js b/src/_h5ai/client/js/inc/model/item.js index 6bdf6975..bc1143c4 100644 --- a/src/_h5ai/client/js/inc/model/item.js +++ b/src/_h5ai/client/js/inc/model/item.js @@ -107,7 +107,7 @@ modulejs.define('model/item', ['_', 'core/event', 'core/location', 'core/server' if (self.isContentFetched) { callback(self); } else { - server.request({action: 'get', items: true, itemsHref: self.absHref, itemsWhat: 1}, function (response) { + server.request({action: 'get', items: {href: self.absHref, what: 1}}, function (response) { if (response.items) { _.each(response.items, function (jsonItem) { diff --git a/src/_h5ai/server/php/inc/class-api.php b/src/_h5ai/server/php/inc/class-api.php index 5bf82157..0676b676 100644 --- a/src/_h5ai/server/php/inc/class-api.php +++ b/src/_h5ai/server/php/inc/class-api.php @@ -49,23 +49,24 @@ class Api { } } - if (Util::get_boolean_request_param("l10n", false)) { + if (Util::get_request_param("l10n", false)) { - $iso_codes = Util::get_request_param("l10nCodes"); - $iso_codes = array_filter(explode(":", $iso_codes)); + $iso_codes = Util::get_request_param("l10n"); + $iso_codes = array_filter($iso_codes); $response["l10n"] = $this->app->get_l10n($iso_codes); } - if (Util::get_boolean_request_param("custom", false)) { + if (Util::get_request_param("custom", false)) { - $href = Util::get_request_param("customHref"); + $href = Util::get_request_param("custom"); $response["custom"] = $this->app->get_customizations($href); } - if (Util::get_boolean_request_param("items", false)) { + if (Util::get_request_param("items", false)) { - $href = Util::get_request_param("itemsHref"); - $what = Util::get_request_param("itemsWhat"); + $items = Util::get_request_param("items"); + $href = $items["href"]; + $what = $items["what"]; $what = is_numeric($what) ? intval($what, 10) : 1; $response["items"] = $this->app->get_items($href, $what); } diff --git a/src/_h5ai/server/php/inc/class-app.php b/src/_h5ai/server/php/inc/class-app.php index 325fa8e1..92ceeac9 100644 --- a/src/_h5ai/server/php/inc/class-app.php +++ b/src/_h5ai/server/php/inc/class-app.php @@ -22,18 +22,9 @@ class App { } - public function get_option($keypath, $default) { + public function get_option($keypath = "", $default = null) { - $value = $this->options; - $keys = array_filter(explode(".", $keypath)); - foreach ($keys as $key) { - if (array_key_exists($key, $value)) { - $value = $value[$key]; - } else { - return $default; - } - } - return $value; + return Util::array_query($this->options, $keypath, $default); } diff --git a/src/_h5ai/server/php/inc/class-util.php b/src/_h5ai/server/php/inc/class-util.php index f7fe3a41..cfa223b2 100644 --- a/src/_h5ai/server/php/inc/class-util.php +++ b/src/_h5ai/server/php/inc/class-util.php @@ -32,8 +32,25 @@ class Util { } + public static function array_query($array, $keypath = "", $default = null) { + + $value = $array; + + $keys = array_filter(explode(".", $keypath)); + foreach ($keys as $key) { + if (!is_array($value) || !array_key_exists($key, $value)) { + return $default; + } + $value = $value[$key]; + } + + return $value; + } + + public static function is_post_request() { + // Logger::log("POSTED", $_POST); return (strtolower($_SERVER["REQUEST_METHOD"]) === "post"); }