如何在我的网站上找到“路径”列表?


8

我最近成为了Drupal网站的管理员。我正在尝试在页面上配置各种块,到目前为止,仅成功地将它们全部删除了。配置菜单告诉我输入要在其中显示块的“路径”。如何找到可供输入的路径名列表?该站点有一个博客,但是输入“ blog”甚至“ blog / *”并没有使该块出现在该块上。

Answers:


8

要获取所有可以使用的路径,可以使用以下代码获取从模块定义的所有路径:

$items = module_invoke_all('menu');
drupal_alter('menu', $items);
foreach ($items as $path => $info) {
  print preg_replace('/%([a-z0-9_]*)/i', '*', $path);
}

代码将显示您在块设置中输入的路径。这意味着它将node/%nodenode/*node/%node/edit中进行更改node/*/edit

关于您的特定问题,由于该块尚未分配给任何主题节,主题未定义该块应出现的部分或该块为空,因此无法显示该块。在大多数情况下,模块不会输出空块。


此清单将找到模块定义的路径,其中/admin/config/search/path仅显示内容别名。
rymo 2014年

例如get-paths.php,您可以将上面的代码放在文件中,然后像这样执行:drush php-script get-paths.php
dashohoxha 2015年

如果您不想使用管理路径printif (!path_is_admin($path)) {则将换行。
伊利亚·林恩

$items = module_invoke_all('menu'); drupal_alter('menu', $items); foreach ($items as $path => $info) { if (!path_is_admin($path)) { print preg_replace('/%([a-z0-9_]*)/i', '*', $path) . "\n"; } }
伊利亚·林恩

嗯,这实际上并不会显示所有已注册的别名。
伊利亚·林恩

4

如果您启用了“路径”模块(核心),将有一个页面列出该站点上的所有URL别名。

如果使用Drupal 7:example.com/admin/config/search/path

如果使用Drupal 6:example.com/admin/build/path


尽管有用,但这还不够,还有其他方法可以在Drupal中注册路径模块不显示的路径。drupal.stackexchange.com/a/14586/6602具有更强大的解决方案。
伊利亚·林恩
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.