I've had to abandon opigno on 2 projects because the release cycle has slowed down so much. I did not know how to proceed with that platform with the info we are getting.
So I have a module that i did to fix that, It's attached. You just import normally then run this drush command to clean it up. "drush content-sync-fixer:all"
What we had to do is:
Layout Builder adds a new field to the tables where this feature is enabled, this field is a BLOB field where the layout configuration is saved as a PHP serialized object, each object in the layout is stored in this field with all the proper data to be shown, but, Layout Builder doesn't work as a Drupal entity itself it works in the same way as a text in a field.
Content Sync converts any content in a config presentation in YML when it is exported and then each file is interpreted in a reverse way. Content Sync creates blocks normally when it imports the content, but the relationship stored in the BLOB field is not processed to try to connect properly the content of the field with the blocks. Then the revision_ids inside each inline-block in the layout configuration could not match with the revision_ids over the imported blocks, this is why some inline-blocks are missed and others are misconnected.
To follow up the issue you must query the database in both instances (origin and destination) and check the related data to known entities and fields.
To get specific node information
SELECT * FROM node_field_data WHERE title = 'Web Design';
To get layout builder data using previous information
SELECT bundle, deleted, entity_id, revision_id FROM node__layout_builder__layout WHERE entity_id = 7;
To get serialized data
SELECT CAST(layout_builder__layout_section AS CHAR(50000) CHARACTER SET utf8) FROM node__layout_builder__layout WHERE entity_id = 7;
You will get some like this...
image.png
If you check the layout builder information with the block_content table in both instances (origin and destination), you could check that the information is the same (after import in destination)
But, if you check specific block using
SELECT * FROM block_content WHERE revision_id = 107;
It is possible that block content doesn't match, se below images
image.png
Our solution processes the content inside each node__layout_builder__layout record to connect each inline-block stored in the BLOB field taking in count its UUID code to connect to the correct block.
I have made a module that automatically fixes the UUID's for the purposes of content sync with exposed inline blocks. I can share it here if that's helpfull, it is a stand alone module that I was going to post while this is fixed up in core...
Thatβs interesting. I am using content sync and my non reusable inline blocks are exporting perfectly. I think I am using patch from 82 or so.
I donβt know what you mean content not exposed. I am using this with the content sync module and all of my inline blocks content are exporting and working perfectly
Actually yes I do have duplicate sections, however I don't seem to be getting an error when trying to import.
Are you using content sync?
I am not, do you have multiple sections on your export, as currently I only have 1 on all my pages.
I am on 8.8.2, I just put the file in the /web folder of my site, and ran the patch -p1
I just tested this on Drupal 8.8, with layout builder and it's working well with content sync to export my inline blocks!
Anything I can do to help get this commited?