From 69dd75f44c72f4e99d73bf0db6bcff8555ca43bb Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 27 Apr 2017 15:23:43 -0700 Subject: [PATCH] MDL-58744 blocks: Add system context block position in non user context. --- lib/blocklib.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/blocklib.php b/lib/blocklib.php index 296c55d4bba..b2101c3ed6b 100644 --- a/lib/blocklib.php +++ b/lib/blocklib.php @@ -710,6 +710,8 @@ class block_manager { $ccjoin = "LEFT JOIN {context} ctx ON (ctx.instanceid = bi.id AND ctx.contextlevel = :contextlevel)"; $systemcontext = context_system::instance(); + list($bpcontext, $bpcontextidparams) = $DB->get_in_or_equal(array($context->id, $systemcontext->id), + SQL_PARAMS_NAMED, 'bpcontextid'); $params = array( 'contextlevel' => CONTEXT_BLOCK, 'subpage1' => $this->page->subpage, @@ -743,7 +745,7 @@ class block_manager { FROM {block_instances} bi JOIN {block} b ON bi.blockname = b.name LEFT JOIN {block_positions} bp ON bp.blockinstanceid = bi.id - AND bp.contextid = :contextid1 + AND bp.contextid $bpcontext AND bp.pagetype = :pagetype AND bp.subpage = :subpage1 $ccjoin @@ -761,7 +763,8 @@ class block_manager { COALESCE(bp.weight, bi.defaultweight), bi.id"; - $allparams = $params + $parentcontextparams + $pagetypepatternparams + $requiredbythemeparams + $requiredbythemenotparams; + $allparams = $params + $parentcontextparams + $pagetypepatternparams + $requiredbythemeparams; + $allparams = $allparams + $requiredbythemenotparams + $bpcontextidparams; $blockinstances = $DB->get_recordset_sql($sql, $allparams); $this->birecordsbyregion = $this->prepare_per_region_arrays();