1.20.x layout.admin.inc layout_get_block_usage($module = NULL, $delta = NULL)

Lists information about blocks in use in layouts.

Parameters

string $module: The module providing the required blocks.

string $delta: The block delta. If $delta is provided, $module is also required since block deltas are not required to be unique.

Return value

array: An array of block usage instances keyed by block module, delta, layout machine_name, and position. Each instance is a block object with an additional key for the layout name.

File

modules/layout/layout.admin.inc, line 3188
Admin page callbacks for the Layout module.

Code

function layout_get_block_usage($module = NULL, $delta = NULL) {
  $blocks = &backdrop_static(__FUNCTION__, array());
  if (empty($blocks)) {
    $layout_info = layout_load_all();
    foreach ($layout_info as $layout) {
      foreach ($layout->positions as $position => $uuids) {
        foreach ($uuids as $uuid) {
          $block = $layout->content[$uuid];
          $block->layout_title = $layout->title;
          $blocks[$block->module][$block->delta][$layout->name][$position][] = $block;
        }
      }
    }
  }

  if ($module && $delta) {
    return $blocks[$module][$delta];
  }
  elseif ($module) {
    return $blocks[$module];
  }
  return $blocks;
}