Hauptnavigation
~~mein~~ MeinRechner ~~D8~~ cinGG Ideen Tools w3schools personen Drupal Linux DB JavaScript css php msc ect html responsive api symfony frameworks quickstart Komponenten HowTo Grafik MediaWiki Software HKF Leitlinien Buecher WW
Field storage, Field config, Display mode (form, view)
public static function __ensureFieldStorageConfig() { $storage = self::getStorage('field_storage_config'); $entity_type_id = 'slog_target_term'; $fields = $storage->loadByProperties(['entity_type' => $entity_type_id]); if (empty($fields)) { $field_storage_values = [ 'field_name' => "slogtx_status", 'entity_type' => $entity_type_id, 'type' => 'boolean', 'translatable' => TRUE, 'persist_with_no_fields' => TRUE, ]; $storage->create($field_storage_values)->save(); } } public static function __cleanupFieldStorageConfig() { $fields = self::getStorage('field_storage_config') ->loadByProperties(['entity_type' => 'slog_target_term']); foreach ($fields as $field) { $field->delete(); } } private function __addTargetTermStatusField() { try { $entityTypeManager = \Drupal::entityTypeManager(); // Create the field field.slog_target_term.slogtx_status $bundle = $this->id(); $field_name = 'slogtx_status'; $field_label = t('Enable target term'); $entityTypeId = 'slog_target_term'; $field_values = array( 'field_name' => $field_name, 'entity_type' => $entityTypeId, 'bundle' => $bundle, 'label' => $field_label, 'required' => TRUE, ); $entityTypeManager ->getStorage('field_config') ->create($field_values) ->setDefaultValue(TRUE) ->save(); // Create Entity Form Display and Entity View Display foreach (['entity_form_display', 'entity_view_display'] as $display_type) { $values = array( 'targetEntityType' => $entityTypeId, 'bundle' => $bundle, 'mode' => 'default', 'status' => TRUE, ); //todo::now::now - \Drupal\Core\Entity\EntityDisplayBase //schade zu wegwerfen, vielleicht nach .../snippets $options = array(); if ($display_type == 'entity_form_display') { $options = array( 'settings' => array('display_label' => TRUE), 'third_party_settings' => array(), 'type' => 'boolean_checkbox', ); } $entityTypeManager ->getStorage($display_type) ->create($values) ->setComponent($field_name, $options) ->save(); } } catch (\Exception $e) { $args = array('%label' => $field_label, '@message' => $e->getMessage()); $msg = t('There was a problem creating field %label: @message', $args); drupal_set_message($msg, 'error'); SlogTaxonomy::logger()->error($msg); } } public function __deleteTargetTermStatusField() { $entityTypeManager = \Drupal::entityTypeManager(); $entityTypeId = 'slog_target_term'; $bundle = $this->id(); // Delete Field Config $id = "$entityTypeId.$bundle.slogtx_status"; $field_config = $entityTypeManager->getStorage('field_config')->load($id); if ($field_config) { $field_config->delete(); } // Delete Entity Form Display and Entity View Display $id = "$entityTypeId.$bundle.default"; foreach (['entity_form_display', 'entity_view_display'] as $display_type) { $display = $entityTypeManager->getStorage($display_type)->load($id); if ($display) { $display->delete(); } } }