Skip to content

v3.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 09:07
· 12 commits to main since this release

What's Changed

Added

  • Change log for menu location assignments (#156) — with the new menu_locations_log feature flag on (drupal_kit.feature_flags; on by default, a deliberate exception to the opt-in rule because the entries are the only record of who changed a menu every page shows), MenuLocationsChangeLogger writes one notice entry to the drupal_kit log channel for each real change to a menu location: header (en) [arkero]: main-en -> main-de, by editor (uid 5). One event subscriber covers the admin form, the Translate tab and a direct config write such as drush config:set. A language override is stored in a config collection and fires the collection events, not ConfigEvents::SAVE, so the subscriber listens to both. A save that changes no assignment writes nothing. A change without a logged-in user reads anonymous (cli). Removing an override reads (inherited). The log adds the IP address and the time. drupal_kit_post_update_feature_flag_menu_locations_log() declares the flag as TRUE on a site that already had the module enabled, so an upgrade starts logging; a site sets the key FALSE to opt out. See the README's Change log section for retention.

Fixed

  • The menu locations form shows a menu pinned in settings.php (#157) — MenuLocationsForm now binds each slot select to its config key with #config_target (ConfigTarget) instead of setting #default_value and saving in its own submitForm(). Core's ConfigFormBase then adds the "These values are overridden" notice, so a site builder no longer sees one menu in the form while the site uses another. The select still shows the stored value, as every core config form does; the notice is what tells the override wins. Choosing "- None -" still removes the key (ToConfig::DeleteKey). The langcode stamp moved into a hidden #config_target element with the same rule as before, so the form has no submitForm() of its own. A theme that declares no slots now gets the message without a Save button, because there is nothing for core's binding to save.

Pull Requests

  • #155 — docs(agents): drop Copilot-specific review guidance
  • #158 — fix(menu): bind menu locations form to config with #config_target (#157)
  • #159 — feat(menu): log changes to menu location assignments behind a feature flag (#156)

Full Changelog: v3.3.0...v3.4.0