Mehrere Inhaltstypen gleichzeitig mit einem Feld versehen?


9

Ich möchte mehreren Inhaltstypen gleichzeitig ein Feld hinzufügen und es auch für alle gleichzeitig konfigurieren.

Grund dafür ist, dass ich viele Inhaltstypen habe, die alle aktualisiert werden müssen, indem jedes neue Feld hinzugefügt wird. Dieses Feld wird auch für alle Inhaltstypen gleich konfiguriert. Ich muss diesen Vorgang des Hinzufügens und anschließenden Konfigurierens des Felds für jeden Inhaltstyp wiederholen, zu dem ich es hinzufügen möchte, und es wird nach einer Weile schwierig.

Gibt es eine Möglichkeit, ein Massenfeld für viele Inhaltstypen massenweise hinzuzufügen / zu konfigurieren?


Wie viele Inhaltstypen haben Sie?
Bobylapointe

Ich gehe davon aus, dass diese Frage für OP nicht mehr relevant ist, sondern für Nigel Waters, der das Kopfgeld festlegt. Würden Sie Nigel gerne kommentieren?
Kari Kääriäinen

Es gibt 25 (Es handelt sich um eine sehr große Website, für die separate Inhaltstypen erforderlich sind).
Nigel Waters

Übrigens ist eine andere Lösung, jemanden billig für diese Art von Sachen einzustellen :)
Donquixote

Oder ein Browser-Makro?
Donquijote

Antworten:


9

Breite Linien, die das Funktionsmodul verwenden, können sein:

  1. Fügen Sie das Feld manuell zu zwei Inhaltstypen hinzu (um das Muster anzuzeigen)
  2. Erstellen Sie ein Feature mit Feldbasen und Feldinstanzen für die neu erstellten Felder
  3. Bearbeiten Sie das erstellte Modul, indem Sie die Feldbasen und Instanzen mit allen erforderlichen Inhaltstypen multiplizieren
  4. Aktivieren Sie das bearbeitete Modul

Ich kann mich nicht erinnern, wie genau Features mit Feldern umgehen. Ist es möglich, das Feature zu deaktivieren, nachdem die Felder erstellt wurden?
Donquijote

Das Neugeborenenmodul hängt von den Funktionen ab, also meines Wissens im Grunde genommen nicht.
Kari Kääriäinen

Ich meine, deaktivieren Sie das Neugeborenen-Modul, nicht die Funktionen. Die Frage ist, ob die Feldinstanzen noch vorhanden sind. Vielleicht können Lester Peabody oder Nigel Waters dies versuchen und zurückmelden.
Donquijote

Oh, das tut mir leid. Ja, tatsächlich können beide deaktiviert werden, die Felder werden in der Datenbank weitergeführt, wie ich sehe, da ich sie jetzt selbst teste.
Kari Kääriäinen

Dies ist die richtige Antwort für Standard-Drupal-Setups und die meisten anderen Drupal-Setups. Wenn Sie jedoch unterschiedliche Anzeigemodi für unterschiedliche Inhaltstypen zur Verfügung haben, sollten Sie die Felder in jedem Inhaltstyp besser manuell konfigurieren oder sicherstellen, dass Sie die richtigen Anzeigetypen in Ihrem Array-Code field_instance verwenden.
Sumeet Pareek

5

Verwenden Sie das Feldwerkzeugmodul :

Eine Sammlung nützlicher UI-Tools für die Arbeit mit Feldern:

Overview of fields with links to edit single instances, and all instances at once
Clone any field instance to multiple entities and bundles
Clone all field instance of a bundle to multiple entities and bundles
Import and export fields
Delete multiple instances of a field
Apply a vocabulary to multiple entities and bundles at once (the same way vocabularies were applied to content types on Drupal 6)
... your idea here. Patches welcome!

Das klingt ziemlich großartig, ich muss mir das ansehen.
Lester Peabody

3

Wenn es Ihnen nichts ausmacht, ein benutzerdefiniertes Modul dafür zu schreiben, ist es relativ einfach, einem Inhaltstyp über Code ein Feld hinzuzufügen:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

Der obige Code fügt dem Inhaltstyp mit dem Computernamen "person" das Feld "field_firstname" hinzu. Sie können also ein Modul erstellen, das ein Formular enthält, mit dem Sie ein Feld und eine Reihe von Inhaltstypen auswählen können. Bei der Übermittlung wird das Feld allen ausgewählten Inhaltstypen hinzugefügt.


1

Die wenigen Male, die ich dazu musste, habe ich Field Collection verwendet .

Stellt ein Feldsammlungsfeld bereit, an das eine beliebige Anzahl von Feldern angehängt werden kann.

Es ist jedoch immer noch ziemlich mühsam, da Sie das Feldsammlungsfeld jedem Inhaltstyp hinzufügen müssen. Wenn Sie jedoch mehreren Inhaltstypen 5 oder 6 Felder hinzufügen, müssen Sie die ersten 5 oder 6 Felder nur einmal in der Feldsammlung konfigurieren.

field_collection_fieldAnschließend erstellen Sie das Feldsammlungsfeld (aus Gründen der Argumentation nennen wir es ) für einen Ihrer Inhaltstypen und verwenden dasselbe Feld für alle anderen erneut.

Wie gesagt, Sie müssen immer noch ein Feld für x Anzahl von Inhaltstypen konfigurieren. Es ist jedoch besser, als beispielsweise 10 Felder für 10 Inhaltstypen zu erstellen.


aah..sorry. Ich habe gerade auch Ihre Frage noch einmal gelesen und sie benötigt nur ein Feld. Entschuldigen Sie, dass Sie Ihre Zeit verschwendet haben> _ <
Chapabu

Das heißt, Sie können dieses eine Feld in eine Feldsammlung einfügen und es nach Ihren Wünschen konfigurieren und dann mit Ihrem bereits konfigurierten Feld auf die Feldsammlung verweisen. Dies ist jedoch ein wenig übertrieben.
Chapabu

Kein Problem, Chapabu, dies sind immer noch nützliche Informationen für den Fall, dass ich später so etwas tun muss.
Lester Peabody

1

Wenn Sie die Datenbank direkt bearbeiten möchten, werden Feldinstanzen in der Tabelle {field_config_instance} gespeichert. Sie können Ihr Feld für einen Inhaltstyp hinzufügen / konfigurieren, dann den Datensatz in der Datenbanktabelle suchen und duplizieren.

Sie müssen zwei Spaltenwerte in der duplizierten Zeile ändern:

  • id: Sollte eine neue Ganzzahl sein, die für die Tabelle eindeutig ist
  • Bundle: Sollte der Computername des neuen Inhaltstyps sein
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.