function block_edit_preprocess_node in Block edit 6
Preprocess function to add the node edit links to nodes by concatenating with the content variable.
File
- ./
block_edit.module, line 136 - Adds edit links to blocks and nodes to make administration more intuitive.
Code
function block_edit_preprocess_node(&$vars) {
if (!block_edit_visible('node', $vars)) {
return;
}
$node = $vars['node'];
$vars['node_edit_links_array'] = array();
global $user;
$options = variable_get('block_edit_node_link_options', block_edit_node_link_options());
if (user_access('access content') && $options['view']) {
$vars['node_edit_links_array']['node-view'] = array(
'title' => t('[View]'),
'href' => "node/{$node->nid}",
);
}
if ((user_access("edit any {$node->type} content") || user_access("edit own {$node->type} content") && $user->uid == $node->uid || $node->type == 'webform' && user_access("edit {$node->type}s") || user_access('administer nodes')) && $options['edit']) {
$vars['node_edit_links_array']['node-edit'] = array(
'title' => t('[Edit]'),
'href' => "node/{$node->nid}/edit",
'query' => drupal_get_destination(),
);
}
if ((user_access("delete any {$node->type} content") || user_access("delete own {$node->type} content") && $user->uid == $node->uid || user_access('administer nodes')) && $options['delete']) {
$vars['node_edit_links_array']['node-delete'] = array(
'title' => t('[Delete]'),
'href' => "node/{$node->nid}/delete",
'query' => drupal_get_destination(),
);
}
if (module_exists('clone') && user_access('clone node') && !empty($options['clone'])) {
$vars['node_edit_links_array']['clone'] = array(
'title' => t('[Clone]'),
'href' => "node/{$node->nid}/clone",
'query' => drupal_get_destination(),
);
}
if (module_exists('devel') && user_access('access devel information') && !empty($options['devel'])) {
$vars['node_edit_links_array']['devel-load'] = array(
'title' => t('[Dev load]'),
'href' => "node/{$node->nid}/devel/load",
);
$vars['node_edit_links_array']['devel-render'] = array(
'title' => t('[Dev render]'),
'href' => "node/{$node->nid}/devel/render",
);
}
if (module_exists('content') && user_access('administer nodes') && user_access('administer content types') && !empty($options['cck'])) {
$node_type = str_replace('_', '-', $node->type);
$vars['node_edit_links_array']['node-type'] = array(
'title' => t('[Edit type]'),
'href' => "admin/content/node-type/{$node_type}",
'query' => drupal_get_destination(),
);
$vars['node_edit_links_array']['node-type-fields'] = array(
'title' => t('[Manage fields]'),
'href' => "admin/content/node-type/{$node_type}/fields",
'query' => drupal_get_destination(),
);
$vars['node_edit_links_array']['node-type-display'] = array(
'title' => t('[Display fields]'),
'href' => "admin/content/node-type/{$node_type}/display",
'query' => drupal_get_destination(),
);
}
drupal_alter('node_edit_links', $vars['node_edit_links_array'], $vars);
$edit_links = theme('links', $vars['node_edit_links_array']);
$id = 'node-edit-link-' . $node->nid;
$original_content = $vars['content'];
$vars['node_edit_links'] = '<div class="node-edit-link" id="' . $id . '">' . $edit_links . '</div>';
$vars['content'] = $vars['node_edit_links'] . $original_content;
}