Drupal 10: Creating Context Aware Plugins
In previous articles I have written about injecting context into context aware plugins and creating custom context providers and wanted to complet
Drupal 10: Migrating Flags With The Migrate Module
I've been doing a bit of Drupal migration recently, and one of the tasks I have undertaken is to migrate "likes" from a Drupal 7 site to a Drupal 10 site.
Drupal 10: Programmatically Injecting Context Into Blocks
Context definitions in Drupal are really useful when you want to inject context into your plugins and I have been using them for a little while now. It has made building custom blocks to add content to pages much easier as I don't need to copy the same block of code to find an entity of a particular sort into the block plugin.
Drupal 10: Creating Custom Context Providers
I previously looked at injecting context providers into context aware plugins. This time I will explore more about creating our own context providers to plug into this system.
Drupal 10: Using Context Definitions To Create Context Aware Plugins
When developing plugins in Drupal a common task is to inject context so that certain tasks can be performed.
Drupal 9: Loading Configuration Entities Using Entity Query
Whilst working on a module I found that I needed to do something that was difficult to find information for. I think part of that is because the solution is simpler than I was thinking, but it did cause me to get lost in source code and internet issues for a while.
I would not advise to do this. I'm not sure if it works on Drupal 8, but it definitely does NOT work on Drupal 9+ websites. I attempted to do this on a new website I just created, to see if the process works. I exported the config of a Drupal 9 website I created a few weeks ago and imported it in the new Drupal 9 website, after changing the site ID in the exported config bundle.
What seems to have happened when I tried it:
Indeed, Drupal check the site ID system.site.yml file, but it also uses the IDs in every other files. If an entity exists in Drupal but is not present in the import (i.e. it can not find its ID in the import), Drupal will delete the entity on the website. Since every single entities in Drupal have a different ID from the one in the import, Drupal attempts to delete every single entities before creating the new one. Unfortunately, Drupal can't function without any entities, so it dies and can't perform the import, leaving you with a broken website.
Submitted by Gael Lafond on Tue, 02/22/2022 - 09:03Permalink
Thanks for the information Gael.
I wonder if the effect you are seeing in Drupal 9+ is something do to with Configuration 2.0? Sounds like not only would you need to alter the main site ID, but also the uuid of every item of configuration in your site.
I have to admit that this technique is a bit of an edge case, but it sometimes got me out of certain situations in Drupal 8. Situations created by certain local development environments that I wont mention here.
Submitted by philipnorton42 on Tue, 02/22/2022 - 09:11Permalink
Just ran on a new Drupal 9 install as part of trying to instal a themeforrest theme. Found the same problem as commented by Gael.
In th eINSTALL directory of the unzipped theme is 485 yml config files.
How is one supposed to import the config?
Submitted by Chris Chaplow on Tue, 11/01/2022 - 15:01Permalink
To the hashbangcode.com webmaster, Thanks for the well-written and informative post!
Submitted by Adelaida Keble on Mon, 02/06/2023 - 00:30Permalink
Add new comment