私のサイトで「パス」のリストを見つける方法は?


8

私は最近、Drupalサイトの管理者になりました。ページのさまざまなブロックを構成しようとしていますが、これまでのところ、それらを完全に削除することにのみ成功しています。構成メニューでは、ブロックを表示する場所の「パス」を入力するように指示されます。入力に使用できるパス名のリストを見つけるにはどうすればよいですか?サイトにはブログがありますが、「blog」または「blog / *」と入力してもブロックはブロックに表示されませんでした。

回答:


8

使用できるすべてのパスを取得するには、次のコードを使用して、モジュールから定義されたすべてのパスを取得できます。

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

ブロック設定に入力すると、コードにパスが表示されます。この手段では変更されるnode/%node中でnode/*、そしてnode/%node/editnode/*/edit

特定の問題について、ブロックがテーマセクションに割り当てられていない、ブロックが表示されるセクションがテーマで定義されていない、またはブロックが空であるため、ブロックを表示できませんでした。ほとんどの場合、モジュールは空のブロックを出力しません。


このリストは、モジュールによって定義されたパスを検索しますが、/admin/config/search/pathコンテンツのエイリアスのみを表示します。
rymo 2014

あなたは、たとえば、ファイルに上記のコードを置くことができget-paths.php、その後、このようにそれを実行しますdrush php-script get-paths.php
dashohoxha

管理パスが不要な場合は、printif (!path_is_admin($path)) {囲みます。
Elijah Lynn

$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"; } }
Elijah Lynn

ええと、これは実際に登録されたすべてのエイリアスを表示するわけではありません。
Elijah Lynn

4

Pathモジュール(コア)を有効にしている場合は、サイトのすべてのURLエイリアスを一覧表示するページが表示されます。

Drupal 7を使用している場合:example.com/admin/config/search/path

Drupal 6を使用している場合:example.com/admin/build/path


便利ではありますが、これだけでは不十分です。Drupalにパスを登録する方法が他にもあり、Pathモジュールでは表示できません。drupal.stackexchange.com/a/14586/6602には、より堅牢なソリューションがあります。
Elijah Lynn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.