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);
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc