MDL-57614 core: Fetch blocks through a webservice in add block modal

This commit is contained in:
Mihail Geshoski
2020-12-02 13:43:15 +08:00
parent d16faf211d
commit 16b72504b3
5 changed files with 119 additions and 51 deletions
+6 -8
View File
@@ -4065,8 +4065,7 @@ class flat_navigation extends navigation_node_collection {
// Add-a-block in editing mode.
if (isset($this->page->theme->addblockposition) &&
$this->page->theme->addblockposition == BLOCK_ADDBLOCK_POSITION_FLATNAV &&
$PAGE->user_is_editing() && $PAGE->user_can_edit_blocks() &&
($addable = $PAGE->blocks->get_addable_blocks())) {
$PAGE->user_is_editing() && $PAGE->user_can_edit_blocks()) {
$url = new moodle_url($PAGE->url, ['bui_addblock' => '', 'sesskey' => sesskey()]);
$addablock = navigation_node::create(get_string('addblock'), $url);
$flat = new flat_navigation_node($addablock, 0);
@@ -4074,12 +4073,11 @@ class flat_navigation extends navigation_node_collection {
$flat->key = 'addblock';
$flat->icon = new pix_icon('i/addblock', '');
$this->add($flat);
$blocks = [];
foreach ($addable as $block) {
$blocks[] = $block->name;
}
$params = array('blocks' => $blocks, 'url' => '?' . $url->get_query_string(false));
$PAGE->requires->js_call_amd('core/addblockmodal', 'init', array($params));
$addblockurl = "?{$url->get_query_string(false)}";
$PAGE->requires->js_call_amd('core/addblockmodal', 'init',
[$PAGE->pagetype, $PAGE->pagelayout, $addblockurl]);
}
}