Files
Megamenu/classic/classic-deployment.md
Torsten Brendgen 50b85468f1 feat: Enhance MegaMenu with localization, caching, and new properties
- Added localization support for loading states, empty navigation, and submenu actions in both German and English.
- Introduced new properties in IMenuItem for description, openInNewWindow, and external links.
- Updated SPTermStorePickerService to handle cache versioning and language-specific caching.
- Implemented a new MegaMenuCore service for handling term properties, cache management, and navigation URL resolution.
- Refactored TaxonomyNavigationService to build menu hierarchy and filter hidden terms.
- Added automated tests for MegaMenu core functionalities and static asset validation.
- Removed unused ItemDictionary service.
- Created a comprehensive ToDo document outlining the implementation status and future tasks.
2026-07-20 21:34:24 +02:00

2.0 KiB

MegaMenu für klassische SharePoint-Seiten

Die Classic-Variante verwendet dieselbe Site-Collection-Konfiguration wie der moderne Application Customizer. Sie unterstützt megaMenu und flyout, wird aber unabhängig von SPFx über ScriptLink geladen.

Dateien

  • megamenu-classic.css
  • megamenu-services-standalone.js
  • megamenu-classic.js

Mit build-classic.ps1 werden die Dateien nach classic/dist kopiert.

Konfiguration

Die Classic-Variante liest die ClientSideComponentProperties der zentralen MegaMenu-Site-Action:

{
  "termSetId": "7948e6f9-7af4-431e-b6fe-328122f2746c",
  "termSetName": "Global Navigation",
  "cacheMinutes": 15,
  "cacheVersion": "1",
  "menuMode": "megaMenu",
  "debug": false
}

menuMode erlaubt megaMenu oder flyout. termSetId hat Vorrang vor termSetName.

Die lokalen benutzerdefinierten Term-Eigenschaften MegaMenu.Hidden, MegaMenu.OpenInNewWindow und MegaMenu.Description werden wie in der modernen Variante ausgewertet. Der Cache ist nach Site Collection, Sprache und cacheVersion getrennt.

Einbindung

Die drei Dateien beispielsweise nach /SiteAssets/megamenu/ hochladen und in dieser Reihenfolge laden:

<link rel="stylesheet" href="/SiteAssets/megamenu/megamenu-classic.css" />
<script src="/SiteAssets/megamenu/megamenu-services-standalone.js"></script>
<script src="/SiteAssets/megamenu/megamenu-classic.js"></script>

Die Einbindung kann über die Masterpage oder eine Site-scoped ScriptLink-CustomAction erfolgen. Der moderne SPFx Application Customizer wird auf klassischen Seiten nicht ausgeführt.

Optionaler Container

Vor dem Laden kann ein anderer Zielcontainer gesetzt werden:

<script>
window.MegaMenuConfig = {
  containerId: 's4-titlerow',
  debug: true
};
</script>

Diagnose

typeof window.MegaMenuServices
typeof window.MegaMenuClassic
window.MegaMenuClassic.reload()

Benutzer benötigen Leserechte auf den verwendeten Managed-Metadata-Termstore.