12

Drupal 7.0 で、ルーティング パス/メニューをタイプ MENU_NORMAL_ITEM からタイプ MENU_CALLBACK に変更すると、Drupal 7.0 はmenu_linksテーブルからアイテムを削除しません。これがバグかどうかはわかりませんが、コア チームに報告しました。

そのコンテキストが整ったら、Drupal にすべてのナビゲーション メニューを強制的に再構築させる方法はありますか? 上記のバグは、メニュー項目を変更した後に Drupal のキャッシュをクリアしても発生します。

個々のメニュー ルートの名前を変更し、キャッシュ/更新をクリアしてから、アイテムの名前を元に戻して、個々のルート/メニュー リンクをフラッシュできることを知っています。実行できる単一のコマンド (または呼び出す関数、またはコマンドのセット) を探していて、すべてのメニュー ナビゲーションが最新であることを知っていて、内部をいじってシステムの他の部分にホースをかけたことを心配する必要はありません。

これは存在しますか?あなたが drush や devel について言及するなら、あなたは素晴らしいですが、それらのツールに関する具体的な指示は私が求めているものです.

4

8 に答える 8

11

メニューを再構築するオプションがありますが (他の回答を参照)、これらはメニュー リンクの問題を解決するために機能する場合と機能しない場合があることに注意してください。

メニューの再構築は、メニュー ルーター項目に基づいて自動的に生成される限り、メニュー ルーター項目とメニュー リンクを再構築するだけです。これには既知の問題があります。たとえば、メニュー リンクの再ペアレント化 ( http://drupal.org/node/550254 ) です。メニュー リンクが手動でカスタマイズまたは追加された場合 (または Drupal が変更されたと判断した場合)、これらは変更されません。

すでに別の質問で述べたように、これら 2 つのシステム間の密結合はおそらく D8 で変更されるため、メニュー ルーター項目とは別にメニュー リンクを宣言する必要があります。

于 2011-03-03T19:34:22.220 に答える
8

サイトにアクセスできない場合、または Devel または Drush がインストールされていない場合の別のオプションを次に示します。rebuild.php などのファイルを作成し、Drupal ルートに配置します (ただし、chdir は指定された Drupal ルートに切り替わるので問題ありません)。次に、そのスクリプトにアクセスすると、メニューが再構築され、すべてがサイト上でうまくいくはずです。

<?php
  // Bootstrap
  // Change chdir to the full path of your Drupal root
  chdir('/home/myusername/public_html/');
  define('DRUPAL_ROOT', getcwd());
  require_once './includes/bootstrap.inc';
  drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

  // Rebuild
  menu_rebuild();
?>
于 2011-08-02T12:32:26.683 に答える
3

モジュールリストページにアクセスすると、通常、メニューが再構築されます。

Devモジュールのインストールを試すこともできます。devブロックを有効にすると、再構築メニューへのリンクがあります。

于 2011-03-03T18:35:41.567 に答える
2

これを行うには多くの方法がありますが、最善の方法は devel モジュールを使用することです。モジュールを有効にしたら、ブロックに移動し、サイドバーの devel ブロッ​​クを有効にします。次に、画像の赤いボックスを参照してください

http://cyrve.com/screenshots/devel_theme_snap-20080113-205127.jpg

メニューキャッシュをクリアするオプションがあります。ブロックの位置は、ブロックを配置する場所によって異なります。

于 2011-03-03T20:13:55.113 に答える
1

D7 では、メニュー構成ページが admin/structure/menu/ に移動しました。

このちょっとしたトリックは、別のブロックで UI を乱雑にすることなく、メニュー ルーターを再構築する優れた方法です。

于 2012-06-07T21:59:16.597 に答える
1

Devel モジュールがインストールされている場合は、メニュー構成ページ ( /admin/build/menu ) に移動し、Devel メニューを選択できます。

そのページ内に、再構築メニューオプションが表示されます。

于 2011-03-03T19:13:46.350 に答える