This contains the source files for the "Omnipedia - Menu" Drupal module, which provides menu items and menu-related functionality for Omnipedia.
This contains most of Omnipedia's menu and menu item-related code.
Of particular note is the custom menu link entity, its associated plug-in and deriver, forms, a constraint validator, access control handler, and route controller; this custom menu link is very similar to the one offered by Drupal core with one crucial difference: instead of pointing to a discrete route or path, it points to a wiki node title which allows it to vary by the simulated wiki date.
Additionally, this module contains the route controller for the random page menu item.
Before attempting to install this, you must add the Composer repositories as described in the installation instructions for these dependencies:
- The
omnipedia_core
,omnipedia_date
, andomnipedia_main_page
modules.
Ensure that you have your Drupal installation set up with the correct Composer
installer types such as those provided by the drupal/recommended-project
template.
If you're starting from scratch, simply requiring that template and following
the Drupal.org Composer
documentation
should get you up and running.
In your root composer.json
, add the following to the "repositories"
section:
"drupal/omnipedia_menu": {
"type": "vcs",
"url": "https://github.com/neurocracy/drupal-omnipedia-menu.git"
}
This provides one or more patches. These can be applied automatically by the the
cweagans/composer-patches
Composer plug-in, but some set up is required before installing this module.
Notably, you'll need to enable patching from
dependencies (such as this module 🤓). At
a minimum, you should have these values in your root composer.json
(merge with
existing keys as needed):
{
"require": {
"cweagans/composer-patches": "^1.7.0"
},
"config": {
"allow-plugins": {
"cweagans/composer-patches": true
}
},
"extra": {
"enable-patching": true,
"patchLevel": {
"drupal/core": "-p2"
}
}
}
Important: The 1.x version of the plug-in is currently required because it allows for applying patches from a dependency; this is not implemented nor planned for the 2.x branch of the plug-in.
Once you've completed all of the above, run composer require "drupal/omnipedia_menu:^4.0@dev"
in the root of your project to have
Composer install this and its required dependencies for you.
This module provides a Drupal core
patch;
this can be automatically applied if you have cweagans/composer-patches
installed and
configured to allow patching from dependencies.
The following patches are supplied (see Patching above):
The following major version bumps indicate breaking changes:
-
4.x:
-
Requires Drupal 9.5 or Drupal 10 with compatibility and deprecation fixes for the latter.
-
Increases minimum version of Hook Event Dispatcher to 3.1, removes deprecated code, and adds support for 4.0 which supports Drupal 10.
-