From 14bcde673d35610dc2bb04486476f1f26e36eb05 Mon Sep 17 00:00:00 2001 From: Aaron Barnes Date: Wed, 15 Aug 2012 14:04:44 +1200 Subject: [PATCH] MDL-34899 blocks/html: Allow instances to specify additional CSS classes --- blocks/html/block_html.php | 15 +++++++++++++++ blocks/html/edit_form.php | 4 ++++ blocks/html/lang/en/block_html.php | 2 ++ 3 files changed, 21 insertions(+) diff --git a/blocks/html/block_html.php b/blocks/html/block_html.php index f03040167f3..39040ae47dd 100644 --- a/blocks/html/block_html.php +++ b/blocks/html/block_html.php @@ -131,4 +131,19 @@ class block_html extends block_base { public function instance_can_be_docked() { return (!empty($this->config->title) && parent::instance_can_be_docked()); } + + /* + * Add custom html attributes to aid with theming and styling + * + * @return array + */ + function html_attributes() { + $attributes = parent::html_attributes(); + + if (!empty($this->config->classes)) { + $attributes['class'] .= ' '.$this->config->classes; + } + + return $attributes; + } } diff --git a/blocks/html/edit_form.php b/blocks/html/edit_form.php index b7251905e58..f544f98cee0 100644 --- a/blocks/html/edit_form.php +++ b/blocks/html/edit_form.php @@ -41,6 +41,10 @@ class block_html_edit_form extends block_edit_form { $mform->addElement('editor', 'config_text', get_string('configcontent', 'block_html'), null, $editoroptions); $mform->addRule('config_text', null, 'required', null, 'client'); $mform->setType('config_text', PARAM_RAW); // XSS is prevented when printing the block contents and serving files + + $mform->addElement('text', 'config_classes', get_string('configclasses', 'block_html')); + $mform->setType('config_classes', PARAM_TEXT); + $mform->addHelpButton('config_classes', 'configclasses', 'block_html'); } function set_data($defaults) { diff --git a/blocks/html/lang/en/block_html.php b/blocks/html/lang/en/block_html.php index 91f0811dc05..6e82be80640 100644 --- a/blocks/html/lang/en/block_html.php +++ b/blocks/html/lang/en/block_html.php @@ -23,6 +23,8 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +$string['configclasses'] = 'Additional HTML classes'; +$string['configclasses_help'] = 'The purpose of this configuration is to aid with theming by helping distinguish HTML blocks from each other. Any CSS classes entered here (space delimited) will be appended to the block\'s default classes.'; $string['configcontent'] = 'Content'; $string['configtitle'] = 'Block title'; $string['leaveblanktohide'] = 'leave blank to hide the title';