semantic_connector-8.x-1.1/semantic_connector.install

semantic_connector.install
<?php

/**
 * @file
 * Install, update and uninstall functions for the Semantic Connector module.
 */

use Drupal\semantic_connector\SemanticConnector;

/**
 * Adds the global notification default values.
 */
function semantic_connector_update_8101() {
  $config_factory = \Drupal::configFactory();
  $config = $config_factory->getEditable('semantic_connector.settings');
  $default_notification_values = array(
    'enabled' => TRUE,
    'interval' => '86400',
    'roles' => array(),
    'mail_to' => '',
    'actions' => array(),
  );
  $user_roles = user_roles();
  if (isset($user_roles['administrator'])) {
    $default_notification_values['roles'] = array('administrator');
  }

  $config->set('notifications', $default_notification_values);
  $config->save(TRUE);

  return t('Successfully added the default values for global notifications.');
}

/**
 * Changes the saved PoolParty GraphSearch connection because of the PPGS 6.1.
 */
function semantic_connector_update_8102() {
  $connections = \Drupal\semantic_connector\SemanticConnector::getConnectionsByType('pp_server');
  /** @var \Drupal\semantic_connector\Entity\SemanticConnectorPPServerConnection $connection */
  foreach ($connections as $connection) {
    $config = $connection->getConfig();
    $graphsearch_config = $config['graphsearch_configuration'];
    if (!empty($graphsearch_config['project'])) {
      $new_graphsearch_config = array(
        'projects' => array(
          $graphsearch_config['project'] => array(
            'id' => $graphsearch_config['project'],
            'search_spaces' => array(
              'id' => $graphsearch_config['project'],
              'name' => '',
              'language' => $graphsearch_config['language'],
            ),
          ),
        ),
      );
      if (isset($graphsearch_config['version'])) {
        $new_graphsearch_config['version'] = $graphsearch_config['version'];
      }
      $config['graphsearch_configuration'] = $new_graphsearch_config;
      $connection->setConfig($config);
      $connection->save();
    }
  }
}

/**
 * Adds the correct PoolParty connection ID to the Sparql-Endpoint config.
 */
function semantic_connector_update_8103() {
  $connections = \Drupal\semantic_connector\SemanticConnector::getConnectionsByType('pp_server');
  /** @var \Drupal\semantic_connector\Entity\SemanticConnectorPPServerConnection $connection */
  foreach ($connections as $connection) {
    $config = $connection->getConfig();
    if (!empty($config['projects'])) {
      foreach ($config['projects'] as $project) {
        if (isset($project['sparql_endpoint_url'])) {
          $sparql_connections = \Drupal\semantic_connector\SemanticConnector::searchConnections('sparql_endpoint', array('url' => $project['sparql_endpoint_url']));
          // There should only be a single SPARQL connection max in this array.
          /** @var \Drupal\semantic_connector\Entity\SemanticConnectorSparqlEndpointConnection $sparql_connection */
          foreach ($sparql_connections as $sparql_connection) {
            $sparql_config = $sparql_connection->getConfig();
            $sparql_config['pp_server_id'] = $connection->getId();
            $sparql_connection->setConfig($sparql_config);
            $sparql_connection->save();
          }
        }
      }
    }
  }
}

/**
 * Move global_notifications and global_notifications_last_check to State API.
 */
function semantic_connector_update_8104() {
  $config_factory = \Drupal::configFactory();
  $config = $config_factory->getEditable('semantic_connector.settings');

  SemanticConnector::setGlobalNotifications($config->get('global_notifications') ?? []);
  SemanticConnector::setLastNotificationCheckTime($config->get('global_notifications_last_check') ?? time());

  $config->clear('global_notifications');
  $config->clear('global_notifications_last_check');
  $config->save(TRUE);
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc