From 15822fe21cb6b801c39d6d24165484de8df722be Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Sun, 11 Apr 2010 12:08:40 +0000 Subject: [PATCH] MDL-22054 improving blocks management UI and removing debug message because the block manage page shows the correct info instead --- admin/blocks.php | 51 ++++++++++++++++++++++++------------------------ lib/blocklib.php | 2 +- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/admin/blocks.php b/admin/blocks.php index d878e49e788..13e5a1c65b2 100644 --- a/admin/blocks.php +++ b/admin/blocks.php @@ -103,27 +103,12 @@ /// Get and sort the existing blocks - if (!$blocks = $DB->get_records('block')) { + if (!$blocks = $DB->get_records('block', array(), 'name ASC')) { print_error('noblocks', 'error'); // Should never happen } $incompatible = array(); - foreach ($blocks as $block) { - if (($blockobject = block_instance($block->name)) === false) { - // Failed to load - continue; - } - $blockbyname[$blockobject->get_title()] = $block->id; - $blockobjects[$block->id] = $blockobject; - } - - if(empty($blockbyname)) { - print_error('failtoloadblocks', 'error'); - } - - ksort($blockbyname); - /// Print the table of all blocks $table = new flexible_table('admin-blocks-compatible'); @@ -134,15 +119,24 @@ $table->set_attribute('class', 'compatibleblockstable blockstable generaltable'); $table->setup(); - foreach ($blockbyname as $blockname => $blockid) { - - $blockobject = $blockobjects[$blockid]; - $block = $blocks[$blockid]; + foreach ($blocks as $blockid=>$block) { + $blockname = $block->name; + if (!file_exists("$CFG->dirroot/blocks/$blockname/block_$blockname.php")) { + $blockobject = false; + $strblockname = ''.$blockname.' ('.get_string('missingfromdisk').')'; + } else { + if (!$blockobject = block_instance($block->name)) { + $incompatible[] = $block; + continue; + } + $strblockname = get_string('pluginname', 'block_'.$blockname); + } + $delete = ''.$strdelete.''; $settings = ''; // By default, no configuration - if ($blockobject->has_config()) { + if ($blockobject and $blockobject->has_config()) { if (file_exists($CFG->dirroot.'/blocks/'.$block->name.'/settings.php')) { $settings = ''.$strsettings.''; } else { @@ -165,7 +159,10 @@ } $class = ''; // Nothing fancy, by default - if ($blocks[$blockid]->visible) { + if (!$blockobject) { + // ignore + $visible = ''; + } else if ($blocks[$blockid]->visible) { $visible = ''. ''.$strhide.''; } else { @@ -174,10 +171,14 @@ $class = ' class="dimmed_text"'; // Leading space required! } + + if ($blockobject) { + $blockobject->get_version(); + } $table->add_data(array( - ''.$blockobject->get_title().'', + ''.$strblockname.'', $blocklist, - ''.$blockobject->get_version().'', + ''.$block->version.'', $visible, $delete, $settings @@ -186,7 +187,7 @@ $table->print_html(); - if(!empty($incompatible)) { + if (!empty($incompatible)) { echo $OUTPUT->heading(get_string('incompatibleblocks', 'blockstable', 'admin')); $table = new flexible_table('admin-blocks-incompatible'); diff --git a/lib/blocklib.php b/lib/blocklib.php index 1977027b980..41a1498dda9 100644 --- a/lib/blocklib.php +++ b/lib/blocklib.php @@ -1369,7 +1369,7 @@ function block_load_class($blockname) { require_once($CFG->dirroot.'/blocks/moodleblock.class.php'); include_once($blockpath); }else{ - debugging("$blockname code does not exist in $blockpath", DEBUG_DEVELOPER); + //debugging("$blockname code does not exist in $blockpath", DEBUG_DEVELOPER); return false; } -- 2.43.0