This contains the source files for the "Omnipedia - Date" Drupal module, which provides the simulated date framework and related functionality for Omnipedia.
This contains most of the logic that underpins the simulated date/revision system for Omnipedia. It includes services, event subscribers, a cache context, and various plug-ins related to the date system, including a field type, widget, and formatters.
Note that this does not does not contain the framework to manage the simulated
wiki pages (Drupal nodes) themselves; that can be found in the omnipedia_core
module.
Follow the Composer installation instructions for these dependencies first:
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_date": {
"type": "vcs",
"url": "https://github.com/neurocracy/drupal-omnipedia-date.git"
}
Once you've completed all of the above, run composer require "drupal/omnipedia_date:^4.0@dev"
in the root of your project to have
Composer install this and its required dependencies for you.
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.
-
Requires PHP 8.1.
-
Increases minimum version of Hook Event Dispatcher to 3.1, removes deprecated code, and adds support for 4.0 which supports Drupal 10.
-
-
5.x:
-
This heavily refactors the underlying functionality of the Timeline service into smaller services, plug-ins, and other classes. Most of these don't change backwards compatibility, but a number of parameters and return values have changed slightly.
-
Removed the
Timeline
class date constants; these have been moved toPlugin\Omnipedia\Date\OmnipediaDateInterface
. -
Timeline::getDateObject()
is now a protected method; this wasn't used in other modules, and all uses of it in this module have been replaced with other, more specific services. -
Service\TimelineInterface::setCurrentDate()
has been removed; useService\CurrentDateInterface::set()
instead. -
Service\TimelineInterface::findDefinedDates()
has been removed; useService\DefinedDatesInterface::find()
instead. -
Service\TimelineInterface::setDefaultDate()
has been removed; useService\DefaultDateInterface::set()
instead.
-