Skip to content

IBX-11780: Integrated ContentPublicationStrategyInterface into ContentFormProcessor publish flow#113

Draft
bnowak wants to merge 1 commit into
6.0from
IBX-11780-integrated-content-publication-strategy-into-ContentFormProcessor
Draft

IBX-11780: Integrated ContentPublicationStrategyInterface into ContentFormProcessor publish flow#113
bnowak wants to merge 1 commit into
6.0from
IBX-11780-integrated-content-publication-strategy-into-ContentFormProcessor

Conversation

@bnowak

@bnowak bnowak commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
🎫 Issue IBX-11780

Description:

ContentFormProcessor::processPublish() now publishes through ContentPublicationStrategyInterface (ibexa/core) instead of calling ContentService::publishVersion() directly. The strategy chain resolves to the synchronous strategy by default, or to the asynchronous one (ibexa/async-content-publishing) when asynchronous content publishing is enabled.

The strategy returns a ContentPublicationResult whose publishedContent is null on the asynchronous path, therefore:

  • the content event payload was replaced with content_type (derived from the draft) — payload consumers are adjusted in the ibexa/dashboard and ibexa/admin-ui counterpart PRs,
  • on the asynchronous path the redirect targets are derived from the draft; for never-published content no location exists yet, so the redirect is generated with locationId = null (the proper redirection target for this case is a TODO handled separately).

The synchronous path behaves exactly as before. processPublish() is now covered with unit tests (strategy invocation, payload contract, sync/async redirect matrix, redirectUrlAfterPublish override).

For QA:

  • With asynchronous content publishing disabled (default): publishing existing and newly created content from AdminUI behaves as before (redirect to the content/location view).
  • With asynchronous content publishing enabled: the publish action returns immediately; publishing an existing item redirects to its location view and the new version goes live once the background job completes.

Documentation:

Part of the IBX-11780 asynchronous content publishing epic — editor-facing behaviour (non-blocking publish) is documented at the epic level; nothing separate to document for this PR.

…tFormProcessor publish flow, replaced content payload with content_type and covered processPublish with unit tests
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants