$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';
if ($first) {
$lastweight = $first->instance->weight - 2;
}
-
- $strmoveblockhere = get_string('moveblockhere', 'block');
}
foreach ($instances as $instance) {
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) {
}
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;
}
*/
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;
}
}
*/
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.');
}
* 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'));
}
/**
* 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
*/
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.');
}
* 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: