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);
}
