From 5830bd494cb29ef066e11086a4f9218162d78472 Mon Sep 17 00:00:00 2001
From: Tim Plunkett <git@plnktt.com>
Date: Fri, 4 Mar 2011 11:30:25 -0500
Subject: [PATCH] Issue #1009872 by tim.plunkett: Empty Dashboard blocks should not be displayed.

---
 modules/dashboard/dashboard.module |   38 ++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/modules/dashboard/dashboard.module b/modules/dashboard/dashboard.module
index 08a4cd2..cb88aac 100644
--- a/modules/dashboard/dashboard.module
+++ b/modules/dashboard/dashboard.module
@@ -170,25 +170,27 @@ function dashboard_page_build(&$page) {
         }
       }
 
-      // Find blocks which were not yet displayed on the page (were empty), and
-      // add placeholder items in their place for rendering.
-      $block_list = db_select('block')
-        ->condition('theme', $theme_key)
-        ->condition('status', 1)
-        ->condition('region', $region)
-        ->fields('block')
-        ->execute();
-      foreach ($block_list as $block) {
-        if (!isset($blocks_found[$block->module . '_' . $block->delta])) {
-          $block->enabled = $block->page_match = TRUE;
-          $block->content = array('#markup' => '<div class="dashboard-block-empty">(empty)</div>');
-          if (!isset($block_info[$block->module])) {
-            $block_info[$block->module] = module_invoke($block->module, 'block_info');
+      if (user_access('administer blocks')) {
+        // Find blocks which were not yet displayed on the page (were empty), and
+        // add placeholder items in their place for rendering.
+        $block_list = db_select('block')
+          ->condition('theme', $theme_key)
+          ->condition('status', 1)
+          ->condition('region', $region)
+          ->fields('block')
+          ->execute();
+        foreach ($block_list as $block) {
+          if (!isset($blocks_found[$block->module . '_' . $block->delta])) {
+            $block->enabled = $block->page_match = TRUE;
+            $block->content = array('#markup' => '<div class="dashboard-block-empty">(empty)</div>');
+            if (!isset($block_info[$block->module])) {
+              $block_info[$block->module] = module_invoke($block->module, 'block_info');
+            }
+            $block->subject = t('@title', array('@title' => $block_info[$block->module][$block->delta]['info']));
+            $block_render = array($block->module . '_' . $block->delta => $block);
+            $build = _block_get_renderable_array($block_render);
+            $page['content']['dashboard'][$block->region][] = $build;
           }
-          $block->subject = t('@title', array('@title' => $block_info[$block->module][$block->delta]['info']));
-          $block_render = array($block->module . '_' . $block->delta => $block);
-          $build = _block_get_renderable_array($block_render);
-          $page['content']['dashboard'][$block->region][] = $build;
         }
       }
     }
-- 
1.7.3.2

