gathercontent.install in GatherContent 8.3
Same filename and directory in other branches
Install and uninstall script for GatherContent module.
File
gathercontent.installView source
<?php
/**
* @file
* Install and uninstall script for GatherContent module.
*/
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\field\Entity\FieldStorageConfig;
/**
* Implements hook_install().
*/
function gathercontent_install() {
/** @var \Drupal\Core\Entity\EntityFieldManager $entityFieldManager */
$entityFieldManager = \Drupal::service('entity_field.manager');
/** @var \Drupal\Core\Field\FieldStorageDefinitionListener $fieldStorageDefinitionListener */
$fieldStorageDefinitionListener = \Drupal::service('field_storage_definition.listener');
$definition = $entityFieldManager
->getFieldStorageDefinitions('node')['gc_mapping_id'];
$fieldStorageDefinitionListener
->onFieldStorageDefinitionCreate($definition);
$definition = $entityFieldManager
->getFieldStorageDefinitions('node')['gc_id'];
$fieldStorageDefinitionListener
->onFieldStorageDefinitionCreate($definition);
if (\Drupal::entityTypeManager()
->hasDefinition('taxonomy_term')) {
$entityFieldManager = \Drupal::service('entity_field.manager');
$definitions = $entityFieldManager
->getFieldStorageDefinitions('taxonomy_term');
if (!isset($definitions['gathercontent_option_ids'])) {
FieldStorageConfig::create([
'field_name' => 'gathercontent_option_ids',
'entity_type' => 'taxonomy_term',
'type' => 'string',
'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
'locked' => TRUE,
'persist_with_no_fields' => TRUE,
'settings' => [
'is_ascii' => FALSE,
'case_sensitive' => FALSE,
],
])
->save();
}
}
}
/**
* Implements hook_requirements().
*/
function gathercontent_requirements($phase) {
if ($phase !== 'runtime') {
return [];
}
$t = 't';
$requirements = [
'gathercontent_tablesorter' => [
'title' => $t('GatherContent: Tablesorter plugin'),
'value' => $t('Unavailable.'),
'description' => $t('Install <a href="@libraries-page">Libraries</a> module.', [
'@libraries-page' => 'https://www.drupal.org/project/libraries',
]),
'severity' => REQUIREMENT_INFO,
],
];
if (\Drupal::moduleHandler()
->moduleExists('libraries')) {
$tablesorter_lib_info = libraries_detect('tablesorter-mottie');
if ($tablesorter_lib_info['installed'] && $tablesorter_lib_info['version']) {
$requirements['gathercontent_tablesorter']['value'] = $tablesorter_lib_info['version'];
$requirements['gathercontent_tablesorter']['severity'] = REQUIREMENT_OK;
unset($requirements['gathercontent_tablesorter']['description']);
}
else {
$requirements['gathercontent_tablesorter']['description'] = $t('Download <a href="@tablesorter-github">Mottie\'s tablesorter plugin</a> to <code>sites/all/libraries</code> toget sortable table headers at GatherContent admin UI. Rename it\'s folder to <code>tablesorter-mottie</code>.', [
'@tablesorter-github' => 'https://github.com/Mottie/tablesorter/archive/v2.25.8.zip',
]);
}
}
return $requirements;
}
/**
* Create gathercontent_option_ids field if doesn't exist.
*/
function gathercontent_update_8301() {
/** @var \Drupal\Core\Entity\EntityFieldManager $entityFieldManager */
$entityFieldManager = \Drupal::service('entity_field.manager');
$definitions = $entityFieldManager
->getFieldStorageDefinitions('taxonomy_term');
if (!isset($definitions['gathercontent_option_ids'])) {
FieldStorageConfig::create([
'field_name' => 'gathercontent_option_ids',
'entity_type' => 'taxonomy_term',
'type' => 'string',
'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
'locked' => TRUE,
'persist_with_no_fields' => TRUE,
'settings' => [
'is_ascii' => FALSE,
'case_sensitive' => FALSE,
],
])
->save();
}
}
/**
* Install default import configuration.
*/
function gathercontent_update_8302() {
$config = \Drupal::service('config.factory')
->getEditable('gathercontent.import');
$config
->set('node_default_status', 1);
}
/**
* Create fields for gathercontent_operation_item entity.
*/
function gathercontent_update_8303() {
$entity_manager = \Drupal::entityManager();
$definition = $entity_manager
->getFieldStorageDefinitions('gathercontent_operation_item')['created'];
$entity_manager
->onFieldStorageDefinitionCreate($definition);
$definition = $entity_manager
->getFieldStorageDefinitions('gathercontent_operation_item')['changed'];
$entity_manager
->onFieldStorageDefinitionCreate($definition);
}
Functions
Name | Description |
---|---|
gathercontent_install | Implements hook_install(). |
gathercontent_requirements | Implements hook_requirements(). |
gathercontent_update_8301 | Create gathercontent_option_ids field if doesn't exist. |
gathercontent_update_8302 | Install default import configuration. |
gathercontent_update_8303 | Create fields for gathercontent_operation_item entity. |