Code Monkey home page Code Monkey logo

drupal-ambientimpact-media's Introduction

This Drupal module contains various components and enhancements to Drupal core's media entities and files.

Warning: while this is generally production-ready, it's not guaranteed to maintain a stable API and may occasionally contain bugs, being a work-in-progress. Stable releases may be provided at a later date.


Requirements

Drupal dependencies

Before attempting to install this, you must add the Composer repositories as described in the installation instructions for these dependencies:

Front-end dependencies

To build front-end assets for this project, Node.js and Yarn are required.


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/ambientimpact_media": {
  "type": "vcs",
  "url": "https://github.com/Ambient-Impact/drupal-ambientimpact-media.git"
}

Patching

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.

Installing

Once you've completed all of the above, run composer require "drupal/ambientimpact_media:^3.0@dev" in the root of your project to have Composer install this and its required dependencies for you.

Front-end assets

To build front-end assets for this project, you'll need to install Node.js and Yarn.

This package makes use of Yarn Workspaces and references other local workspace dependencies. In the package.json in the root of your Drupal project, you'll need to add the following:

"workspaces": [
  "<web directory>/modules/custom/*"
],

where <web directory> is your public Drupal directory name, web by default. Once those are defined, add the following to the "dependencies" section of your top-level package.json:

"drupal-ambientimpact-media": "workspace:^5"

Then run yarn install and let Yarn do the rest.

Optional: install yarn.BUILD

While not required, yarn.BUILD is recommended to make building all of the front-end assets even easier.


Building front-end assets

This uses Webpack and Symfony Webpack Encore to automate most of the build process. These will have been installed for you if you followed the Yarn installation instructions above.

If you have yarn.BUILD installed, you can run:

yarn build

from the root of your Drupal site. If you want to build just this package, run:

yarn workspace drupal-ambientimpact-media run build

Patches

The following patches are supplied (see Patching above):


Major breaking changes

The following major version bumps indicate breaking changes:

  • 1.x:

  • 2.x:

  • 3.x:

  • 4.x:

    • Requires Drupal 10.2 due to oEmbed hook patch; explicitly does not support Drupal 10.3 to prevent future breakage due to patch.

    • The oEmbed resource data alter event has been removed; use Hux to implement the hook with dependency injection instead; removed:

      • \Drupal\ambientimpact_media\AmbientImpactMediaEventInterface

      • \Drupal\ambientimpact_media\Event\Media\OEmbedResourceDataAlterEvent

    • Existing oEmbed alter event subscribers have been converted to Hux hook classes and renamed to be more in line with PHP, Drupal, and Symfony naming conventions.

    • Migrate configuration and plug-ins have been removed as they haven't been tested in a long while and are unmaintained; if you need to migrate file entities from Drupal 7 to media entities in modern Drupal, these can still be found in the 3.x and earlier branches:

      • config/optional/migrate_plus.migration.d7_file_entity_vimeo.yml

      • config/optional/migrate_plus.migration.d7_file_entity_youtube.yml

      • \Drupal\ambientimpact_media\Plugin\migrate\process\Vimeo

      • \Drupal\ambientimpact_media\Plugin\migrate\process\YouTube

      • \Drupal\ambientimpact_media\Plugin\migrate\source\FileEntity

  • 5.x:

    • Requires Drupal 10.3 or 11.0 due to oEmbed hook patch; explicitly does not support Drupal 11.1 to prevent future breakage due to patch.

drupal-ambientimpact-media's People

Contributors

ambient-impact avatar

Watchers

 avatar

drupal-ambientimpact-media's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.