Skip to content

Provides the simulated date framework and related functionality for Omnipedia.

License

Notifications You must be signed in to change notification settings

neurocracy/drupal-omnipedia-date

Repository files navigation

This contains the source files for the "Omnipedia - Date" Drupal module, which provides the simulated date framework and related functionality for Omnipedia.

⚠️ Why open source? / Spoiler warning


Description

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.


Requirements

Drupal dependencies

Follow the Composer installation instructions for these dependencies first:


Installation

Composer

Set up

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.

Repository

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"
}

Installing

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.


Major breaking changes

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 to Plugin\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; use Service\CurrentDateInterface::set() instead.

    • Service\TimelineInterface::findDefinedDates() has been removed; use Service\DefinedDatesInterface::find() instead.

    • Service\TimelineInterface::setDefaultDate() has been removed; use Service\DefaultDateInterface::set() instead.

About

Provides the simulated date framework and related functionality for Omnipedia.

Topics

Resources

License

Stars

Watchers

Forks

Languages