2017-12-03 3 views
2

Ich bin neu bei Drupal und arbeite mit Drupal 8, ich habe nicht in Drupal 7 oder 6 gearbeitet, also habe weniger Ahnung davon.Vokabeln dynamisch hinzufügen

Ich arbeite an einigen dynamischen Feldern von Drupal Inhaltstyp.

Ich habe einen Inhaltstyp mit einem Wortschatz (Liste der Begriffe). Ich verwende dort verbesserte Multi-Select (https://www.drupal.org/project/improved_multi_select).

Jetzt habe ich einige Code in Modul, die Vokabular dynamisch aus einigen eingehenden API-Daten erstellen.

Ich möchte, wann immer mein Code ein Vokabular erstellt, das automatisch an Feldspeicherinformationen angehängt wird, die ich im Inhaltstyp eins verwende.

Antwort

1

Sie müssen Zielpaket zu Speichereinstellung für diese hinzufügen, unten Code wird Ihnen helfen.

/** 
    * Attach vocabulary to field 
    * @var $field_storage 
    */ 
    $field_storage = \Drupal::entityManager()->getStorage('field_config')->loadByProperties(['field_name' => 'field_machine_key']); 
    $field_storage = $field_storage['node.content_type_machine_key.field_machine_key']; 
    $settings = $field_storage->getSetting('handler_settings'); 
    // $vocab_id will be your newly created vocabulary 
    $settings['target_bundles'][$vocab_id] = $vocab_id; 
    $field_storage->setSetting('handler_settings',$settings); 
    $field_storage->save(); 

See Complete Code Here

+1

toll, es funktioniert. –

+1

Funktioniert für mich, aber ich füge auch einen Standardbegriff zum Vokabular hinzu, um es auf der verbesserten Multiselect zu zeigen –