diff --git a/blocks/html/edit_form.php b/blocks/html/edit_form.php
index 05b52fde06b40..35d6e9425cd35 100644
--- a/blocks/html/edit_form.php
+++ b/blocks/html/edit_form.php
@@ -57,11 +57,24 @@ function set_data($defaults) {
} else {
$text = '';
}
+
+ if (!$this->block->user_can_edit() && !empty($this->block->config->title)) {
+ // If a title has been set but the user cannot edit it format it nicely
+ $title = $this->block->config->title;
+ $defaults->config_title = format_string($title, true, $this->page->context);
+ // Remove the title from the config so that parent::set_data doesn't set it.
+ unset($this->block->config->title);
+ }
+
// have to delete text here, otherwise parent::set_data will empty content
// of editor
unset($this->block->config->text);
parent::set_data($defaults);
// restore $text
$this->block->config->text = $text;
+ if (isset($title)) {
+ // Reset the preserved title
+ $this->block->config->title = $title;
+ }
}
}