原文链接:http://drupal.org/node/1089922
正在翻译中···
此页面包含了一个粗略的指导,在自己的自定义模块添加新的上下文链接。
语境链接基本上都添加了两个步骤:
- 声明hook_menu或hook_menu_alter使用的菜单项。
- 上下文链接渲染元素渲染阵列。
声明上下文链接菜单项
在菜单系统中的本地任务执行上下文链接。此外,参数范围内设置到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功能,在这部分的渲染阵列移动到任何标题后缀元素。如果没有标题后缀元素,上下文链接将不会被显示出来(除非你改变预处理)。