|
| 1 | +<?php |
| 2 | + |
| 3 | +use Drupal\node\Entity\NodeType; |
| 4 | +use Drupal\field\Entity\FieldStorageConfig; |
| 5 | +use Drupal\field\Entity\FieldConfig; |
| 6 | + |
| 7 | +/** |
| 8 | + * Implements hook_install(). |
| 9 | + */ |
| 10 | +function hetzner_api_install() { |
| 11 | + if (!NodeType::load('hetzner_server')) { |
| 12 | + $type = NodeType::create([ |
| 13 | + 'type' => 'hetzner_server', |
| 14 | + 'name' => 'Hetzner Server', |
| 15 | + 'description' => 'Synkroniseret server fra Hetzner Cloud', |
| 16 | + ]); |
| 17 | + $type->save(); |
| 18 | + } |
| 19 | + |
| 20 | + $fields = [ |
| 21 | + 'field_server_id' => ['label' => 'Server ID', 'type' => 'string'], |
| 22 | + 'field_status' => ['label' => 'Status', 'type' => 'string'], |
| 23 | + 'field_ipv4' => ['label' => 'IPv4', 'type' => 'string'], |
| 24 | + 'field_location' => ['label' => 'Location', 'type' => 'string'], |
| 25 | + 'field_specs' => ['label' => 'Specs', 'type' => 'string'], |
| 26 | + ]; |
| 27 | + |
| 28 | + foreach ($fields as $field_name => $info) { |
| 29 | + if (!FieldStorageConfig::loadByName('node', $field_name)) { |
| 30 | + FieldStorageConfig::create([ |
| 31 | + 'field_name' => $field_name, |
| 32 | + 'entity_type' => 'node', |
| 33 | + 'type' => $info['type'], |
| 34 | + ])->save(); |
| 35 | + |
| 36 | + FieldConfig::create([ |
| 37 | + 'field_name' => $field_name, |
| 38 | + 'entity_type' => 'node', |
| 39 | + 'bundle' => 'hetzner_server', |
| 40 | + 'label' => $info['label'], |
| 41 | + ])->save(); |
| 42 | + } |
| 43 | + } |
| 44 | +} |
0 commit comments