跳转到主要内容
一路上有亮 提交于 27 February 2012

原文链接:http://drupal.org/node/1089922

正在翻译中···

此页面包含了一个粗略的指导,在自己的自定义模块添加新的上下文链接。

语境链接基本上都添加了两个步骤:

  1. 声明hook_menuhook_menu_alter使用的菜单项。
  2. 上下文链接渲染元素渲染阵列。

声明上下文链接菜单项

在菜单系统中的本地任务执行上下文链接。此外,参数范围内设置到MENU_CONTEXT_INLINE

上下文链接的菜单项可能看起来像这样:

<?php   // An example contextual link menu item.   $items['contextual/%/information'] = array(     'title' => 'Block information',     'type' => MENU_LOCAL_ACTION,     'context' => MENU_CONTEXT_INLINE,     'page callback' => 'contextual_example_page',     'page arguments' => array(1),     'access callback' => TRUE,   );   // To use local task menu items, there must be a parent page.   $items['contextual'] = array(     'title' => 'The contextual example page',     'page callback' => 'contextual_example_page',     'page arguments' => array(1),     'access callback' => TRUE,   ); ?>

添加上下文链接渲染元素

上下文链接渲染元素被添加使用任何功能,可以改变一个渲染阵列。一个例子如下:

<?php /** * Implements hook_block_view_alter(). */ function contextual_example_block_view_alter(&$data, $block) {   // Contextual links can be added as a renderable element to the content of   // a render array. We check if the block has content, and if so add a   // contextual link to it.   if (isset($data['content']) && is_array($data['content'])) {     $contextual_links = array(       'contextual',       array($block->module),     );     $data['content']['#contextual_links']['contextual_example'] = $contextual_links;   } } ?>

上下文链接渲染元素数组键控模块提供上下文链接。这个数组有两个值,第一个是本地任务菜单项,包含该菜单项的任何回调参数(放置在另一个数组)第二检查路径。

请注意,该元素将改变由contextual_preprocess功能,在这部分的渲染阵列移动到任何标题后缀元素。如果没有标题后缀元素,上下文链接将不会被显示出来(除非你改变预处理)。