From a77b23cdb75867551bebd5992be5b9cf2773ff93 Mon Sep 17 00:00:00 2001 From: Leon Stringer Date: Sat, 17 Dec 2022 17:39:44 +0000 Subject: [PATCH] MDL-75346 core_my: Handle missing blocks on reset If the default dashboard contained a block that was missing from disk then "Exception - Call to a member function instance_copy() on bool" was shown to users. This change only shows an error with debugging enabled which now includes the name of the missing block. --- my/lib.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/my/lib.php b/my/lib.php index 9002df0b1c6..65e4f7ef974 100644 --- a/my/lib.php +++ b/my/lib.php @@ -121,9 +121,10 @@ function my_copy_page( $newblockinstanceids[$originalid] = $instance->id; $blockcontext = context_block::instance($instance->id); // Just creates the context record $block = block_instance($instance->blockname, $instance); - if (!$block->instance_copy($originalid)) { - debugging("Unable to copy block-specific data for original block instance: $originalid - to new block instance: $instance->id", DEBUG_DEVELOPER); + if (empty($block) || !$block->instance_copy($originalid)) { + debugging("Unable to copy block-specific data for original block + instance: $originalid to new block instance: $instance->id for + block: $instance->blockname", DEBUG_DEVELOPER); } }