MTShop/code/web/modules/contrib/votingapi/votingapi.install

56 lines
2.2 KiB
PHP

<?php
/**
* @file
* Install, update and uninstall functions for the Voting API module.
*/
/**
* Implements hook_update_last_removed().
*/
function votingapi_update_last_removed() {
return 8302;
}
/**
* Alter votingapi_result table manually before definition update.
*/
function votingapi_update_8303(&$sandbox) {
// First we need to change the column of the table manually, because if there
// is content already, entity definition update manager will not allow to
// change the length of function field.
$field_storage_definitions = \Drupal::service('entity_field.manager')->getFieldStorageDefinitions('vote_result');
if (!empty($field_storage_definitions['function'])) {
/** @var \Drupal\Core\Field\BaseFieldDefinition $function_field_definition */
$function_field_definition = $field_storage_definitions['function'];
$schema = $function_field_definition->getSchema();
\Drupal::database()->schema()->changeField('votingapi_result', 'function', 'function', $schema['columns']['value']);
if (!empty($function_field_definition)) {
$new_schema = [
'votingapi_result' => [
'fields' => [
'function' => $schema['columns']['value'] + ['not null' => FALSE],
],
],
];
\Drupal::keyValue('entity.storage_schema.sql')->set('vote_result.field_schema_data.function', $new_schema);
}
/** @var \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface $repo */
$repo = \Drupal::service('entity.last_installed_schema.repository');
$repo->setLastInstalledFieldStorageDefinition($function_field_definition);
}
}
/**
* Update the definition of 'Function' field Vote Result entity.
*/
function votingapi_update_8304(&$sandbox) {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
if ($vote_result_fields = \Drupal::service('entity_field.manager')->getFieldStorageDefinitions('vote_result')) {
/** @var \Drupal\Core\Field\BaseFieldDefinition $function_field_definition */
$function_field_definition = $vote_result_fields['function'];
$function_field_definition->getSchema();
$definition_update_manager->updateFieldStorageDefinition($function_field_definition);
}
}