MDL-82392 blocks: consistent cleaning of block instance names.

This commit is contained in:
Paul Holden
2024-08-07 04:13:54 +00:00
committed by Jenkins
parent 01375bdaa0
commit 0b4100c13e
4 changed files with 9 additions and 13 deletions
+1 -1
View File
@@ -52,7 +52,7 @@ abstract class backup_block_task extends backup_task {
}
$this->blockid = $blockid;
$this->blockname = $block->blockname;
$this->blockname = clean_param($block->blockname, PARAM_PLUGIN);
$this->contextid = context_block::instance($this->blockid)->id;
$this->moduleid = $moduleid;
$this->modulename = null;
+2 -1
View File
@@ -2156,7 +2156,8 @@ function block_instance($blockname, $instance = NULL, $page = NULL) {
function block_load_class($blockname) {
global $CFG;
if(empty($blockname)) {
$blocknameclean = clean_param($blockname, PARAM_PLUGIN);
if (empty($blockname) || empty($blocknameclean)) {
return false;
}
+3 -6
View File
@@ -75,15 +75,12 @@ class block extends context {
* @return string the human readable context name.
*/
public function get_context_name($withprefix = true, $short = false, $escape = true) {
global $DB, $CFG;
global $DB;
$name = '';
if ($blockinstance = $DB->get_record('block_instances', array('id' => $this->_instanceid))) {
global $CFG;
require_once("$CFG->dirroot/blocks/moodleblock.class.php");
require_once("$CFG->dirroot/blocks/$blockinstance->blockname/block_$blockinstance->blockname.php");
$blockname = "block_$blockinstance->blockname";
if ($blockobject = new $blockname()) {
$blockobject = block_instance($blockinstance->blockname);
if ($blockobject) {
if ($withprefix) {
$name = get_string('block').': ';
}
+3 -5
View File
@@ -176,11 +176,9 @@ class block extends base {
if ($block = $DB->get_record('block', array('name'=>$this->name))) {
// Inform block it's about to be deleted.
if (file_exists("$CFG->dirroot/blocks/$block->name/block_$block->name.php")) {
$blockobject = block_instance($block->name);
if ($blockobject) {
$blockobject->before_delete(); // Only if we can create instance, block might have been already removed.
}
$blockobject = block_instance($block->name);
if ($blockobject) {
$blockobject->before_delete(); // Only if we can create instance, block might have been already removed.
}
// First delete instances and related contexts.