- Issue created by @jcandan
When require_on_publish (ROP) is used with Paragraphs and Conditional Fields (CF), draft saves can incorrectly fail.
The client-side CF #states marks a Paragraph subfield as “Required on Publish” only when a condition (e.g., a “Gate” checkbox) is true, but the server-side validator does not currently evaluate that CF state or the target publish intent from the submitted form. As a result, an empty Paragraph subfield can be treated as required during a draft save (not publishing), producing “required / required-on-publish” errors that should not block saving.
function MYMODULE_conditionalFieldsStates_alter(array &$states) {
$states['require_on_publish'] = t('Required on Publish');
}
require_on_publish.state_evaluator) that, when CF is enabled and exposes a public evaluator service, uses it to evaluate CF rules on the server; otherwise fall back to a local shim.validateParagraphReferenceField(), consult both the subfield’s ROP third-party flag and any CF rules where state === 'require_on_publish', evaluated against posted dependee values.warn_on_empty is set.NotBlank.validateParagraphReferenceField() to honor CF state.None. Optionally, a Status report entry indicating “Conditional Fields integration: Service or Shim”.
State evaluator (shim/service): server-side helper to evaluate CF dependency rules for require_on_publish.
New internal service in ROP (for example, require_on_publish.state_evaluator) used by the validator. Public API of ROP remains unchanged.
None.
require_on_publish now optionally integrates with Conditional Fields to evaluate require_on_publish rules on the server for Paragraph subfields. Draft saves no longer fail when those fields are empty; enforcement occurs only on publish. If Conditional Fields dependency evaluator service is not available, ROP uses a local shim. For conditional/ROP subfields, leave core “Required” unchecked and rely on ROP + CF.
Active
2.1
Code