geolocation-8.x-3.x-dev/modules/geolocation_geometry/modules/geolocation_geometry_demo/geolocation_geometry_demo.install
modules/geolocation_geometry/modules/geolocation_geometry_demo/geolocation_geometry_demo.install
<?php
/**
* @file
* Geolocation demo setup.
*/
use Drupal\Component\Utility\Random;
use Drupal\field\Entity\FieldStorageConfig;
/**
* Implements hook_install().
*/
function geolocation_geometry_demo_install(): void {
/** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
$module_handler = \Drupal::service('module_handler');
if (
$module_handler->moduleExists('node')
&& $module_handler->moduleExists('field')
) {
/*
* Create 100 random nodes.
*/
$random = new Random();
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
for ($i = 1; $i < 30; $i++) {
$node = $node_storage->create([
'type' => 'geolocation_geometry_demo',
'title' => $random->sentences(3, TRUE),
]);
/** @var \Drupal\node\NodeInterface $node */
$node->get('field_geolocation_geometry_point')->generateSampleItems();
$node->get('field_geolocation_geometry_polyg')->generateSampleItems(3);
$node->save();
}
// Static node for testing.
$node = $node_storage->create([
'type' => 'geolocation_geometry_demo',
'title' => 'Static Geolocation Geometry Demo - Wanaka NZ',
]);
/** @var \Drupal\node\NodeInterface $node */
$node->get('field_geolocation_geometry_point')->appendItem([
'geojson' => '{"type": "Point", "coordinates": [169.1217044, -44.6891741]}',
]);
$node->get('field_geolocation_geometry_polyg')->appendItem([
'geojson' => '{
"type": "Polygon",
"coordinates": [
[
[170.1217044, -43.6891741],
[168.1217044, -43.6891741],
[168.1217044, -45.6891741],
[170.1217044, -45.6891741],
[170.1217044, -43.6891741]
]
]
}',
]);
$node->save();
}
}
/**
* Implements hook_uninstall().
*/
function geolocation_geometry_demo_uninstall(): void {
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$node_storage->delete($node_storage->loadByProperties(['type' => 'geolocation_geometry_demo']));
foreach ([
'field_geolocation_geometry_point',
'field_geolocation_geometry_polyg',
] as $field_storage_name) {
$field_storage = FieldStorageConfig::loadByName('node', $field_storage_name);
if ($field_storage) {
$field_storage->delete();
}
}
field_purge_batch(100);
}
