diff --git a/admin/tool/mobile/classes/api.php b/admin/tool/mobile/classes/api.php index 160c4f0bdfe..189f99e3a4e 100644 --- a/admin/tool/mobile/classes/api.php +++ b/admin/tool/mobile/classes/api.php @@ -90,6 +90,25 @@ class api { require("$path/db/mobile.php"); foreach ($addons as $addonname => $addoninfo) { + + // Add handlers (for site add-ons). + $handlers = !empty($addoninfo['handlers']) ? $addoninfo['handlers'] : array(); + $handlers = json_encode($handlers); // JSON formatted, since it is a complex structure that may vary over time. + + // Now language strings used by the app. + $lang = array(); + if (!empty($addoninfo['lang'])) { + $stringmanager = get_string_manager(); + $langs = $stringmanager->get_list_of_translations(); + foreach ($langs as $langid => $langname) { + foreach ($addoninfo['lang'] as $stringinfo) { + $lang[$langid][$stringinfo[0]] = + $stringmanager->get_string($stringinfo[0], $stringinfo[1], null, $langid); + } + } + } + $lang = json_encode($lang); + $plugininfo = array( 'component' => $component, 'version' => $version, @@ -97,7 +116,9 @@ class api { 'dependencies' => !empty($addoninfo['dependencies']) ? $addoninfo['dependencies'] : array(), 'fileurl' => '', 'filehash' => '', - 'filesize' => 0 + 'filesize' => 0, + 'handlers' => $handlers, + 'lang' => $lang, ); // All the mobile packages must be under the plugin mobile directory. diff --git a/admin/tool/mobile/classes/external.php b/admin/tool/mobile/classes/external.php index 7df769bb8ad..398a1a76c86 100644 --- a/admin/tool/mobile/classes/external.php +++ b/admin/tool/mobile/classes/external.php @@ -91,7 +91,9 @@ class external extends external_api { 'fileurl' => new external_value(PARAM_URL, 'The addon package url for download or empty if it doesn\'t exist.'), 'filehash' => new external_value(PARAM_RAW, 'The addon package hash or empty if it doesn\'t exist.'), - 'filesize' => new external_value(PARAM_INT, 'The addon package size or empty if it doesn\'t exist.') + 'filesize' => new external_value(PARAM_INT, 'The addon package size or empty if it doesn\'t exist.'), + 'handlers' => new external_value(PARAM_RAW, 'Handlers definition (JSON)', VALUE_OPTIONAL), + 'lang' => new external_value(PARAM_RAW, 'Language strings used by the handlers (JSON)', VALUE_OPTIONAL), ) ) ), diff --git a/admin/tool/mobile/upgrade.txt b/admin/tool/mobile/upgrade.txt index 6c2c704981a..2149382be8d 100644 --- a/admin/tool/mobile/upgrade.txt +++ b/admin/tool/mobile/upgrade.txt @@ -1,6 +1,11 @@ This files describes changes in tool_mobile code. Information provided here is intended especially for developers. +=== 3.5 === + + * External function tool_mobile::tool_mobile_get_plugins_supporting_mobile now returns additional plugins information required by + Moodle Mobile 3.5.0. + === 3.4 === * External function tool_mobile::tool_mobile_get_plugins_supporting_mobile is now available via AJAX for not logged users.