function system_update_8057

Convert actions to configuration.

Related topics

File

drupal/core/modules/system/system.install, line 2209
Install, update and uninstall functions for the system module.

Code

function system_update_8057() {
  $actions = db_query("SELECT * FROM {actions}")
    ->fetchAllAssoc('aid', PDO::FETCH_ASSOC);
  $action_plugins = Drupal::service('plugin.manager.action')
    ->getDefinitions();
  foreach ($actions as $action) {
    if (isset($action_plugins[$action['callback']])) {
      if (is_numeric($action['aid'])) {
        $action['aid'] = $action['callback'] . '_' . $action['aid'];
      }
      $configuration = unserialize($action['parameters']) ?: array();
      config('action.action.' . $action['aid'])
        ->set('id', $action['aid'])
        ->set('label', $action['label'])
        ->set('status', '1')
        ->set('type', $action['type'])
        ->set('plugin', $action['callback'])
        ->set('configuration', $configuration)
        ->save();
    }
  }
}