block_edit.module
<?php
function block_edit_init() {
if (user_access('administer blocks')) {
if (function_exists('drupal_get_path')) {
$path = drupal_get_path('module', 'block_edit');
drupal_add_js($path .'/block_edit.js');
drupal_add_css($path .'/block_edit.css');
}
}
}
function block_edit_views_api() {
return array('api' => 2);
}
function block_edit_preprocess_block(&$vars) {
if (user_access('administer blocks')) {
$block = $vars['block'];
$vars['block_edit_links_array'] = array();
$id = 'block-edit-link-'. $block->module .'_'. $block->delta;
$class = 'block-edit-link';
if ($block->module != 'views') {
$vars['block_edit_links_array'][] = l(t('[Configure]'), 'admin/build/block/configure/' . $block->module . '/' . $block->delta,
array(
'attributes' => array(
'title' => t('Configure this block'),
'id' => $id,
'class' => $class,
),
'query' => drupal_get_destination(),
'html' => TRUE,
)
);
}
if (($block->module == 'menu' || ($block->module == 'user' && $block->delta == 1)) && user_access('administer menu')) {
$menu_name = ($block->module == 'user') ? 'navigation' : $block->delta;
$vars['block_edit_links_array'][] = l(t('[Edit menu]'), 'admin/build/menu-customize/' . $menu_name,
array(
'attributes' => array(
'title' => t('Edit this menu'),
'id' => $id,
'class' => $class,
),
'query' => drupal_get_destination(),
'html' => TRUE,
)
);
}
elseif ($block->module == 'menu_block' && user_access('administer menu')) {
list($menu_name, ) = split(':', variable_get("menu_block_{$block->delta}_parent", 'navigation:0'));
$vars['block_edit_links_array'][] = l(t('[Edit menu]'), 'admin/build/menu-customize/' . $menu_name,
array(
'attributes' => array(
'title' => t('Edit this menu'),
'id' => $id,
'class' => $class,
),
'query' => drupal_get_destination(),
'html' => TRUE,
)
);
}
$original_content = $vars['block']->content;
$edit_links = '<div class="block-edit-link" id="'. $id .'">';
$edit_links .= implode(' ', $vars['block_edit_links_array']);
$edit_links .= '</div>';
$vars['block']->content = $edit_links . $original_content;
}
}