cforge-2.0.x-dev/modules/cforge_address/cforge_address.install
modules/cforge_address/cforge_address.install
<?php
use Drupal\field\Entity\FieldConfig;
use Drupal\cforge_address\Entity\Neighbourhood;
/**
* Implements hook_install().
*/
function cforge_address_install() {
$default_country = \Drupal::Config('system.date')
->get('country.default');
FieldConfig::load('user.user.address')
->setSetting('available_countries', [$default_country])
->save();
$hoods = \Drupal::database()->select('user__address', 'a')
->fields('a', ['address_dependent_locality'])
->groupBy('a.address_dependent_locality')
->execute()
->fetchCol();
if (empty(array_filter($hoods))) {
// If no neighbourhoods are defined, create a default one.
$hoods = ['Centre'];
}
// Remove duplicates and inconsistent casing, thanks to chatGPT!
$hoods = array_unique(array_map('strtolower', $hoods));
foreach ($hoods as $hood) {
$label = trim(ucfirst($hood));
Neighbourhood::create(['label' => $label])->save();
}
}
