Adapters do not properly support derivatives

Created on 26 August 2025, 2 days ago

Overview

Adapters are plugins that ostensibly support derivatives (based on the existence of a $deriver property in \Drupal\experience_builder\Plugin\Adapter\Adapter). But if you try to create an derived adapter, it will fail to parse because \Drupal\experience_builder\PropSource\AdaptedPropSource::parse does this:

explode(self::SOURCE_TYPE_PREFIX_SEPARATOR, $sdc_prop_source['sourceType'])[1]

This is assuming that the plugin ID does not have a derivative separator in it.

Proposed resolution

Change that offending line to:

explode(self::SOURCE_TYPE_PREFIX_SEPARATOR, $sdc_prop_source['sourceType'], 2)[1]

That will properly strip out the adapter: prefix, while keeping the whole plugin ID, including its derivative ID, intact.

🐛 Bug report
Status

Active

Version

1.0

Component

… to be triaged

Created by

🇺🇸United States phenaproxima Massachusetts

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024