function workspaces_module_implements_alter

Same name and namespace in other branches
  1. 11.x core/modules/workspaces/workspaces.module \workspaces_module_implements_alter()

Implements hook_module_implements_alter().

File

core/modules/workspaces/workspaces.module, line 41

Code

function workspaces_module_implements_alter(&$implementations, $hook) : void {
    // Move our 'hook_entity_presave' implementation at the beginning to ensure
    // that other presave implementations are aware of the changes done in
    // \Drupal\workspaces\EntityOperations::entityPresave().
    if ($hook === 'entity_presave') {
        $implementation = $implementations['workspaces'];
        $implementations = [
            'workspaces' => $implementation,
        ] + $implementations;
        // Move Content Moderation's implementation before Workspaces, so we can
        // alter the publishing status for the default revision.
        if (isset($implementations['content_moderation'])) {
            $implementation = $implementations['content_moderation'];
            $implementations = [
                'content_moderation' => $implementation,
            ] + $implementations;
        }
    }
    // Move our 'hook_entity_insert' implementation at the end to ensure that
    // the second (pending) revision created for published entities is not used
    // by other 'hook_entity_insert' implementations.
    // @see \Drupal\workspaces\EntityOperations::entityInsert()
    if ($hook === 'entity_insert') {
        $group = $implementations['workspaces'];
        unset($implementations['workspaces']);
        $implementations['workspaces'] = $group;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.