You are here

function block_edit_preprocess_block in Block edit 6

Preprocess function to add the block edit links to blocks by concatenating with the content variable.

File

./block_edit.module, line 58
Adds edit links to blocks and nodes to make administration more intuitive.

Code

function block_edit_preprocess_block(&$vars) {
  if (!block_edit_visible('block', $vars)) {
    return;
  }
  $block = $vars['block'];
  $vars['block_edit_links_array'] = array();
  if (user_access('administer blocks')) {

    // Display if not a Views block, or if Views is not already showing them.
    if ($block->module != 'views' || variable_get('views_no_hover_links', FALSE)) {
      $vars['block_edit_links_array'][] = array(
        'title' => t('[Configure]'),
        'href' => "admin/build/block/configure/{$block->module}/{$block->delta}",
        'query' => drupal_get_destination(),
      );
    }
    if ($block->module == 'nodeblock') {
      $vars['block_edit_links_array'][] = array(
        'title' => t('[Edit node]'),
        'href' => "node/{$block->delta}/edit",
        'query' => drupal_get_destination(),
      );
    }
  }
  if (user_access('administer menu')) {
    if ($block->module == 'menu' || $block->module == 'user' && $block->delta == 1) {
      $menu_name = $block->module == 'user' ? 'navigation' : $block->delta;
      $vars['block_edit_links_array'][] = array(
        'title' => t('[List links]'),
        'href' => "admin/build/menu-customize/{$menu_name}",
        'query' => drupal_get_destination(),
      );
      $vars['block_edit_links_array'][] = array(
        'title' => t('[Edit menu]'),
        'href' => "admin/build/menu-customize/{$menu_name}/edit",
        'query' => drupal_get_destination(),
      );
    }
    elseif ($block->module == 'menu_block' || $block->module == 'nice_menus') {
      list($menu_name, ) = split(':', variable_get("menu_block_{$block->delta}_parent", 'navigation:0'));
      $vars['block_edit_links_array'][] = array(
        'title' => t('[List links]'),
        'href' => "admin/build/menu-customize/{$menu_name}",
        'query' => drupal_get_destination(),
      );
      $vars['block_edit_links_array'][] = array(
        'title' => t('[Edit menu]'),
        'href' => "admin/build/menu-customize/{$menu_name}/edit",
        'query' => drupal_get_destination(),
      );
    }
  }
  drupal_alter('block_edit_links', $vars['block_edit_links_array'], $vars);
  $edit_links = theme('links', $vars['block_edit_links_array']);
  $id = 'block-edit-link-' . $block->module . '_' . $block->delta;
  $original_content = $vars['block']->content;
  $vars['block_edit_links'] = '<div class="block-edit-link" id="' . $id . '">' . $edit_links . '</div>';
  $vars['block']->content = $vars['block_edit_links'] . $original_content;
}