v1/web/modules/contrib/address/address.post_update.php

53 lines
1.4 KiB
PHP

<?php
/**
* @file
* Post update functions for Address.
*/
/**
* @addtogroup updates-8.x-1.0-rc1
* @{
*/
/**
* Re-save all entities with address data to update names and subdivisions.
*/
function address_post_update_convert_names_subdivisions(&$sandbox = NULL) {
if (!isset($sandbox['fields'])) {
$sandbox['fields'] = \Drupal::state()->get('address_8101_processed');
// No fields were updated.
if (empty($sandbox['fields'])) {
$sandbox['#finished'] = 1;
return;
}
$sandbox['count'] = count($sandbox['fields']);
}
$field = array_pop($sandbox['fields']);
$entity_type_id = $field[0];
$field_name = $field[1];
$storage = \Drupal::entityTypeManager()->getStorage($entity_type_id);
$query = $storage->getQuery()->exists($field_name . '.country_code');
$query->accessCheck(FALSE);
$entities = $storage->loadMultiple($query->execute());
foreach ($entities as $entity) {
_address_update_entity($entity, $field_name);
$entity->save();
}
$sandbox['#finished'] = empty($sandbox['fields']) ? 1 : ($sandbox['count'] - count($sandbox['fields'])) / $sandbox['count'];
return t('Updated the names and subdivisions of each address.');
}
/**
* @} End of "addtogroup updates-8.x-1.0-rc1".
*/
/**
* Clear caches to receive the new country list.
*/
function address_post_update_clear_country_list() {
// An empty update will flush caches.
}