votingapi.install in Voting API 8.3
Same filename and directory in other branches
Install, update and uninstall functions for the Voting API module.
File
votingapi.installView source
<?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);
}
}
Functions
Name | Description |
---|---|
votingapi_update_8303 | Alter votingapi_result table manually before definition update. |
votingapi_update_8304 | Update the definition of 'Function' field Vote Result entity. |
votingapi_update_last_removed | Implements hook_update_last_removed(). |