Questions tagged «routes»

使用Drupal 8中引入的术语,路由是模块响应的路径。

1
更改所有网址以包括其他信息
哪些钩子可用于更改URL?例如,有些语言模块在启用后会提供诸如的网址,/en/node/1而不是将其保留为/node/1。 我希望在url中有类似的内容,我可以访问它而不会损害其他功能。 这是如何完成的?
8 7  routes 

2
如何将子菜单与菜单树分开显示?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 我试图在一个页面上显示菜单项的所有第三级子菜单,每个子菜单都在其自己的显示块中。我已经尝试过“菜单块”模块,但是它似乎仅对活动路径有效,这意味着我只能将所有第二级和第三级菜单显示为一个单元,而不能仅将第三级菜单显示为单独的单元。 除了菜单块模块外,我还尝试使用此代码直接访问菜单树。 $main = menu_navigation_links('main-menu', '2'); echo theme('links__system_main_menu', array( 'links' => $main, 'attributes' => array( 'id' => 'main-menu', 'class' => array('links') ), )); ?> 这是菜单结构: - Parent Menu 1 - Parent Menu 2 - Child Menu A - SubChild Menu 1A - SubChild Menu 2A - SubChild …
8 theming  routes 

2
什么是hook_translated_menu_link_alter()来更改菜单链接?[重复]
这个问题已经在这里有了答案: 渲染前更改菜单链接的访问权限 (3个答案) 上个月关闭。 我想更改Drupal 8中的菜单链接。在Drupal 7中,我们可以使用实现此功能hook_translated_menu_link_alter()。 function module_translated_menu_link_alter(&$item, $map) { global $user; if (!empty($item['access'])) { // Administrator will access all menu's. if (strpos(current_path(), 'admin/structure/menu/manage/' . $item['menu_name']) === 0 && user_access('administer menu')) { return; } // If userid is equal to menu user id. if ($user->uid == 1) { $access …
8 8  routes 

3
以单路径参数或其他方式斜杠以处理具有动态参数数量的菜单尾
根据Symfony文档,以下定义的路由应为/hello/bob和触发指定的控制器/hello/bob/bobby: _hello: path: /hello/{names} defaults: { _controller: \Drupal\mymodule\Controller\Main::Controller } requirements: _access: 'TRUE' names: .+ 在一个请求的情况下/hello/bob/bobby的{names}PARAM将是“鲍勃/巴比”(斜杠完整),这将是到控制器打破这种分解成多个变量或离开它作为一个单一的字符串。诀窍在于更改后的正则表达式(“。+”)用于过滤该{names}参数。 此stackoverflow帖子还暗示可以使用自定义正则表达式来允许在路由参数中使用斜线(至少在Symfony 2中)。 如果我针对Drupal 8.0.0-beta15尝试此操作,它将无法正常工作,并且仅针对的请求触发指定的控制器/hello/bob。但是,我可以确认它曾经在以前的beta中起作用(我认为直到〜beta13为止)。 Drupal与Symfony路由组件集成的方式有什么改变可以解释这一点?也许还有另一种方法可以在路由参数中完成斜线的传递?我知道内核正在向Symfony 3.0迈进,但是我不确定这是否可以解释问题。 我也知道,路由订阅者可用于管理动态路由结构。但是,我正在处理的情况在基本路径的末尾需要几乎无限的组合/数量的动态参数(但是在我的控制器中解析起来很简单)。在/hello?names[]=bob&names[]=bobby这种情况下,我还尝试避免使用查询字符串(例如)。 主要是我对与Symfony文档的断开连接感到困惑,这似乎表明这应该可行。 补充笔记 张贴这个问题后,我发现在D8核心队列讨论:[讨论]删除自动传递额外的参数的:Y / N。似乎可以得出结论,“菜单尾”支持(本质上就是我所追求的)将在D8中被正式删除。讨论在3年前结束,因此我只能猜测,直到最近(〜beta13)才完全实现一些更通用的实现细节。这也许可以解释为什么我现在才注意到这一变化。 我猜想在任何特定于Symfony的路由逻辑进一步剖析路由(以及特定于参数的正则表达式等)之前,Drupal(不是Symfony)现在正在基于原始斜杠分隔的请求生成404响应。如果是这种情况,则可以解释为什么上述技术停止工作。但是,我仍然想知道是否还有其他方法可以避免使用查询参数和自定义路由订阅者来满足这种需求。
8 8  routes 

2
在hook_menu的访问回调中重定向用户会产生不良影响吗?
这个答案引发了关于如果用户无权访问他们要访问的页面的最佳方式将用户重定向到特定页面的讨论。 一种选择是将访问回调设置为true,然后在页面回调中重定向用户。尽管这似乎是正确的,但我认为它在页面回调中混合了访问功能和页面构建功能。 例如 function hook_menu() { $items['player/my_page'] = array( 'title' => t('My Page'), // note this is a required parameter 'access callback' => TRUE, 'page callback' => 'some_function', ); return $items; } function some_function() { global $user; if(!$user->uid) { // here checking if the user is logged in but could …

2
查看节点时如何调用函数?
每当我查看节点页面时,我都想调用一个函数,但是我不确定该怎么做。 我当时想我应该使用hook_menu()路径并将其声明为node /%,并将回调函数附加到该路径。这是正确的方法,还是有正确/更好的方法?
8 7  nodes  routes 


1
用图像替换菜单项
我正在寻找一种将菜单项显示为图像(带有翻转)而不是通常的文本链接的方法。我找到了模块菜单图标,但是顾名思义,它旨在将图标放置在链接旁边。有人有这样做的技术吗?也许我必须创建某种自定义块或面板,但是我认为也许有一种更简单的方法。

1
具有自己菜单的自定义模块?
我正在编写第三个自定义模块,而这是我迄今为止最大的挑战。我知道如何使用hook_menu生成菜单项,并根据您选择的路径确定它们在站点上的显示位置(管理菜单或主菜单等)。 我的问题是-如何指定“新建”菜单,这样我创建的路径不会出现在“主链接”或“导航”中,而是出现在它们自己的“自定义模块”菜单中?
8 7  routes  hooks 

1
如何实施路线?
如何在Drupal 8中实现最基本的路线?我必须写哪些文件,我需要实现哪些类?
7 routes  8 

3
为什么hook_menu_link_alter()不起作用?
我想扩展主题的主要链接,因此将以下代码放入自定义模块中。 function mymodulename_menu_link_alter(&$item, $menu) { if ($item['menu_name'] == 'primary-links') { $item['expanded'] = 1; } } 在page.tpl.php中,我使用print theme('links', $primary_links),但是主要链接没有扩展。为什么?
7 7  routes 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.