catalyst / moodle-block_multiblock

Moodle plugin which allows you to embed multiple blocks within a single block region using different formats including tabs and accordions
GNU General Public License v3.0
12 stars 12 forks source link

Multiblock conflict with block manager #94

Closed marxjohnson closed 1 year ago

marxjohnson commented 1 year ago

If multiblock has its configuration options restricted by tool_blockmanager, it can result in an exception:

Exception - Argument 1 passed to block_multiblock\icon_helper::delete() must be of the type string, null given, called in [dirroot]/blocks/multiblock/block_multiblock.php on line 245
Debug info:
Error code: generalexceptionmessage
Stack trace:

    line 107 of /blocks/multiblock/classes/icon_helper.php: TypeError thrown
    line 245 of /blocks/multiblock/block_multiblock.php: call to block_multiblock\icon_helper::delete()
    line 1181 of /lib/blocklib.php: call to block_multiblock->get_content_for_output()
    line 1239 of /lib/blocklib.php: call to block_manager->create_block_contents()
    line 374 of /lib/blocklib.php: call to block_manager->ensure_content_created()
    line 4004 of /lib/outputrenderers.php: call to block_manager->region_has_content()
    line 40 of /theme/boost/layout/columns2.php: call to core_renderer->blocks()
    line 1401 of /lib/outputrenderers.php: call to include()
    line 1331 of /lib/outputrenderers.php: call to core_renderer->render_page_layout()
    line 245 of /course/view.php: call to core_renderer->header()

This is because $str is defined in a loop that runs for each default control. If these controls are disabled by blockmanager, $str is never set before being used to by the additional "Split or delete multiblock" control.