// foreach() cannot fetch references in PHP v4.x
for ($n=0; $n<count($pageblocks[$position]);$n++) {
$instance = &$pageblocks[$position][$n];
- if(!$instance->visible) {
+ if (empty($instance->visible)) {
continue;
}
if(!$record = blocks_get_record($instance->blockid)) {
function blocks_print_group(&$page, &$pageblocks, $position) {
global $COURSE, $CFG, $USER;
- if(empty($pageblocks[$position])) {
- $pageblocks[$position] = array();
+ if (empty($pageblocks[$position])) {
+ $groupblocks = array();
$maxweight = 0;
+ } else {
+ $groupblocks = $pageblocks[$position];
+ $maxweight = max(array_keys($groupblocks));
}
- else {
- $maxweight = max(array_keys($pageblocks[$position]));
- }
- foreach ($pageblocks[$position] as $instance) {
+
+ foreach ($groupblocks as $instance) {
if (!empty($instance->pinned)) {
$maxweight--;
}
}
$isediting = $page->user_is_editing();
- foreach($pageblocks[$position] as $instance) {
+
+
+ foreach($groupblocks as $instance) {
+
// $instance may have ->rec and ->obj
// cached from when we walked $pageblocks
// in blocks_have_content()
if (empty($instance->rec)) {
+ if (empty($instance->blockid)) {
+ continue; // Can't do anything
+ }
$block = blocks_get_record($instance->blockid);
} else {
$block = $instance->rec;
continue;
}
- if(!$block->visible) {
+ if (empty($block->visible)) {
// Disabled by the admin
continue;
}
$editalways = $page->edit_always();
+
if (($isediting && empty($instance->pinned)) || !empty($editalways)) {
$options = 0;
// The block can be moved up if it's NOT the first one in its position. If it is, we look at the OR clause: