Drupal 8 - 如何添加操纵器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Drupal 8 - 如何添加操纵器相关的知识,希望对你有一定的参考价值。

我甚至不知道怎么问这个问题。在下面的代码中(我从一个例子中找到了上面的代码),以及默认的操纵器,我想添加另一个操纵器来删除兄弟姐妹之外的所有链接。

$manipulators = array(
  array('callable' => 'menu.default_tree_manipulators:checkAccess'),
  array('callable' => 'menu.default_tree_manipulators:generateIndexAndSort'),
  // This is what i want to do. Remove all links outside of siblings and active trail
  array('callable' => 'mytheme.menu_transformers:removeInactiveTrail'),
);

在哪个类'removeInactiveTrail'方法中放置哪个类?

我是drupal的新手,抱歉,如果这个问题太可悲了。

答案

如果你是drupal新手,总是很难问一个正确的问题。但是,如果你已经到目前为止找到了为你的任务服务的代码片段,最好在core和contrib模块中进行研究,以找出其他人如何使用这些函数和方法。

如果您不确定实施,只需添加有关您要实现的内容的更多详细信息。

以下是您可以在自定义模块中使用的示例:

function mymodule_render_menu($menu_name) {
  $menu_tree = Drupal::menuTree();
  // Build the typical default set of menu tree parameters.
  $parameters = $menu_tree->getCurrentRouteMenuTreeParameters($menu_name);
  // Load the tree based on this set of parameters.
  $tree = $menu_tree->load($menu_name, $parameters);

  // Transform the tree using the manipulators you want.
  $manipulators = [
    // Add your manipulators here
  ];

  $tree = $menu_tree->transform($tree, $manipulators);
  // Finally, build a renderable array from the transformed tree.
  $menu = $menu_tree->build($tree);

  return  array('#markup' => render($menu));
}

上面的函数返回可渲染数组。你可以从hook_preprocess_HOOK调用它,在模板中添加变量数组和输出。

同样,您的任务不明确,编辑您的问题更具体。

以上是关于Drupal 8 - 如何添加操纵器的主要内容,如果未能解决你的问题,请参考以下文章

Javascript代码片段在drupal中不起作用

添加菜单链接Drupal 8

如何删除使用片段管理器添加的所有片段?

谷歌地图片段内的片段可以操纵我的地图

Drupal 6 视图 2:PHP 片段

如何使 C++ endl 操纵器线程安全?