legacy-knowledge-base
公開されました Jun. 30, 2025

DXP 7.0 から DXP 7.4 にアップグレードした後、ナビゲーションメニューに隠しページが表示されない。

投稿者

Ahmed Abdin

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • DXP 7.0からDXP 7.4にアップグレードしました。 アップグレード後、DXP 7.4のメニュー表示ポートレットに非表示ページが表示されなくなりました。

再生産ステップ:

  1. DXP 7.0を最新のフィックスパックでセットアップする。

  2. コントロールパネル → ナビゲーション → 「公開ページ」横のケバブメニューをクリックし、公開ページを追加し、「ナビゲーションメニューに表示しない」オプションを有効にして非表示にします。 次のように記載されていることに注意してください: 有効な場合、このページはナビゲーションメニューには表示されません

  3. 次に、この非表示の親ページに子ページを作成します。子ページを非表示にしないでください。

  4. 別の公開ページを作成し、そこにナビゲーション メニューを配置し、「ルート ページ」の下のメニューをクリックして「選択」に設定することで、以前に作成した非表示ページを表示するように設定します。

チェックポイント: これで、非表示のページとその子ページが表示され、メニューに表示されるように選択できるようになりました。

5. インスタンスをシャットダウンします。

6. DXP 7.4にアップグレードします。

7. DXP 7.4を起動し、メニュー表示を確認します。

結果: 非表示のページは、その子ページとともにメニュー表示ポートレットに表示されません。

環境

  • Liferay DXP 7.4

解決

  • この動作は想定どおりです。ナビゲーション メニューからページを非表示にするオプションは、ページがデフォルトのナビゲーションメニュー ポートレットに表示されないことを意味します。ただし、DXP 7.0 ではこのオプションは機能しませんでした (これはバグです)。そのため、7.0 のナビゲーションメニューで非表示のページが表示されるように構成することが可能でした。
  • この問題は、Liferay の以降のバージョンでは解決されています。つまり、DXP 7.4 のデフォルトのメニュー表示ポートレットには非表示のページは表示されません。
  • この問題を解決するには、「サイト ビルダー」->「ナビゲーションメニュー」に移動して、作成したメニュー表示ポートレットに表示される非表示ページを追加し、メニュー表示を作成する必要があります。
  • 非表示のページが多数あり、各ページの設定時間を節約したい場合は、添付の Groovy スクリプト「setCustomField.groovy.txt」を使用できます。このスクリプトは、ページのナビゲーション メニュー プロパティから非表示を新しい expando フィールド (カスタム フィールド) にコピーし、すべてのページを非表示に設定しません。スクリプトはべき等です。カスタム フィールドが true に設定されると、元に戻すことはできません (スクリプトによってナビゲーション メニュー プロパティから非表示もリセットされるため、2 回目に実行したときに false に戻ってしまうことを避けるためです)。CustomMenuTemplate.ftl.txt は、expando ブリッジを介してカスタム フィールドを読み取るメニュー表示ポートレットのサンプル ADT です。注: スクリプトを実行する前にデータベースのバックアップを作成し、まず下位の環境でテストしてください。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base