MDL-35876 - Blocks - Adding verbose move here descriptions to blocks for accessibility
This commit is contained in:
+2
-1
@@ -47,7 +47,8 @@ $string['hideblock'] = 'Hide {$a} block';
|
||||
$string['hidedockpanel'] = 'Hide the dock panel';
|
||||
$string['hidepanel'] = 'Hide panel';
|
||||
$string['moveblock'] = 'Move {$a} block';
|
||||
$string['moveblockhere'] = 'Move block here';
|
||||
$string['moveblockafter'] = 'Move block to after {$a} block';
|
||||
$string['moveblockbefore'] = 'Move block to before {$a} block';
|
||||
$string['movingthisblockcancel'] = 'Moving this block ({$a})';
|
||||
$string['onthispage'] = 'On this page';
|
||||
$string['pagetypes'] = 'Page types';
|
||||
|
||||
+2
-4
@@ -945,8 +945,6 @@ class block_manager {
|
||||
if ($first) {
|
||||
$lastweight = $first->instance->weight - 2;
|
||||
}
|
||||
|
||||
$strmoveblockhere = get_string('moveblockhere', 'block');
|
||||
}
|
||||
|
||||
foreach ($instances as $instance) {
|
||||
@@ -957,7 +955,7 @@ class block_manager {
|
||||
|
||||
if ($this->movingblock && $lastweight != $instance->instance->weight &&
|
||||
$content->blockinstanceid != $this->movingblock && $lastblock != $this->movingblock) {
|
||||
$results[] = new block_move_target($strmoveblockhere, $this->get_move_target_url($region, ($lastweight + $instance->instance->weight)/2));
|
||||
$results[] = new block_move_target($this->get_move_target_url($region, ($lastweight + $instance->instance->weight)/2));
|
||||
}
|
||||
|
||||
if ($content->blockinstanceid == $this->movingblock) {
|
||||
@@ -972,7 +970,7 @@ class block_manager {
|
||||
}
|
||||
|
||||
if ($this->movingblock && $lastblock != $this->movingblock) {
|
||||
$results[] = new block_move_target($strmoveblockhere, $this->get_move_target_url($region, $lastweight + 1));
|
||||
$results[] = new block_move_target($this->get_move_target_url($region, $lastweight + 1));
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
@@ -2497,18 +2497,11 @@ class block_move_target {
|
||||
*/
|
||||
public $url;
|
||||
|
||||
/**
|
||||
* @var string label
|
||||
*/
|
||||
public $text;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @param string $text
|
||||
* @param moodle_url $url
|
||||
*/
|
||||
public function __construct($text, moodle_url $url) {
|
||||
$this->text = $text;
|
||||
public function __construct(moodle_url $url) {
|
||||
$this->url = $url;
|
||||
}
|
||||
}
|
||||
|
||||
+18
-4
@@ -1215,13 +1215,20 @@ class core_renderer extends renderer_base {
|
||||
*/
|
||||
public function blocks_for_region($region) {
|
||||
$blockcontents = $this->page->blocks->get_content_for_region($region, $this);
|
||||
|
||||
$blocks = $this->page->blocks->get_blocks_for_region($region);
|
||||
$lastblock = null;
|
||||
$zones = array();
|
||||
foreach ($blocks as $block) {
|
||||
$zones[] = $block->title;
|
||||
}
|
||||
$output = '';
|
||||
|
||||
foreach ($blockcontents as $bc) {
|
||||
if ($bc instanceof block_contents) {
|
||||
$output .= $this->block($bc, $region);
|
||||
$lastblock = $bc->title;
|
||||
} else if ($bc instanceof block_move_target) {
|
||||
$output .= $this->block_move_target($bc);
|
||||
$output .= $this->block_move_target($bc, $zones, $lastblock);
|
||||
} else {
|
||||
throw new coding_exception('Unexpected type of thing (' . get_class($bc) . ') found in list of block contents.');
|
||||
}
|
||||
@@ -1233,10 +1240,17 @@ class core_renderer extends renderer_base {
|
||||
* Output a place where the block that is currently being moved can be dropped.
|
||||
*
|
||||
* @param block_move_target $target with the necessary details.
|
||||
* @param array $zones array of areas where the block can be moved to
|
||||
* @param string $previous the block located before the area currently being rendered.
|
||||
* @return string the HTML to be output.
|
||||
*/
|
||||
public function block_move_target($target) {
|
||||
return html_writer::tag('a', html_writer::tag('span', $target->text, array('class' => 'accesshide')), array('href' => $target->url, 'class' => 'blockmovetarget'));
|
||||
public function block_move_target($target, $zones, $previous) {
|
||||
if ($previous == null) {
|
||||
$position = get_string('moveblockbefore', 'block', $zones[0]);
|
||||
} else {
|
||||
$position = get_string('moveblockafter', 'block', $previous);
|
||||
}
|
||||
return html_writer::tag('a', html_writer::tag('span', $position, array('class' => 'accesshide')), array('href' => $target->url, 'class' => 'blockmovetarget'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,6 +34,7 @@ information provided here is intended especially for developers.
|
||||
* condition_info:get_condition_user_fields($formatoptions) now accepts the optional
|
||||
param $formatoptions, that will determine if the field names are processed by
|
||||
format_string() with the passed options.
|
||||
* output renderer changed to support more verbose move-block-here descriptions.
|
||||
|
||||
YUI changes:
|
||||
* M.util.help_icon has been deprecated. Code should be updated to use moodle-core-popuphelp
|
||||
|
||||
@@ -694,16 +694,23 @@ class theme_mymobile_core_renderer extends core_renderer {
|
||||
*/
|
||||
public function blocks_for_region($region) {
|
||||
$blockcontents = $this->page->blocks->get_content_for_region($region, $this);
|
||||
|
||||
$blocks = $this->page->blocks->get_blocks_for_region($region);
|
||||
$lastblock = null;
|
||||
$zones = array();
|
||||
foreach ($blocks as $block) {
|
||||
$zones[] = $block->title;
|
||||
}
|
||||
|
||||
$output = '';
|
||||
foreach ($blockcontents as $bc) {
|
||||
if ($bc instanceof block_contents) {
|
||||
$lastblock = $bc->title;
|
||||
// We don't want to print navigation and settings blocks here.
|
||||
if ($bc->attributes['class'] != 'block_settings block' && $bc->attributes['class'] != 'block_navigation block') {
|
||||
$output .= $this->block($bc, $region);
|
||||
}
|
||||
} else if ($bc instanceof block_move_target) {
|
||||
$output .= $this->block_move_target($bc);
|
||||
$output .= $this->block_move_target($bc, $zones, $lastblock);
|
||||
} else {
|
||||
throw new coding_exception('Unexpected type of thing (' . get_class($bc) . ') found in list of block contents.');
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ DOM changes:
|
||||
* new setting $THEME->yuicssmodules = array('cssreset', 'cssfonts', 'cssgrids', 'cssbase'); which
|
||||
allows themes to use different CSS reset normalisers such as cssnormalize YUI module
|
||||
|
||||
Renderer changes:
|
||||
* Mymobile theme changed to support more verbose move-block-here descriptions.
|
||||
|
||||
=== 2.4 ===
|
||||
|
||||
required changes:
|
||||
|
||||
Reference in New Issue
Block a user