Aggiungere un campo a più tipi di contenuto contemporaneamente?


9

Voglio aggiungere un campo a più tipi di contenuto contemporaneamente e configurarlo anche per tutti contemporaneamente.

Il motivo è che ho molti tipi di contenuto, che devono essere aggiornati aggiungendo questo nuovo campo a ciascuno. Questo campo sarà configurato allo stesso modo per tutti i tipi di contenuto. Devo ripetere questo processo di aggiunta e configurazione del campo per ogni tipo di contenuto a cui voglio aggiungerlo, e diventa arduo dopo un po '.

Esiste un modo per aggiungere / configurare in massa un nuovo campo a molti tipi di contenuto?


Quanti tipi di contenuto hai?
Bobylapointe,

Suppongo che questa domanda non sia più rilevante per OP, ma sia rilevante per Nigel Waters che ha fissato la taglia. Ti piacerebbe Nigel di commentare?
Kari Kääriäinen,

Ce ne sono 25 (È un sito molto grande, che richiede che questi siano tipi di contenuto separati).
Nigel Waters,

A proposito, un'altra soluzione è assumere qualcuno a buon mercato per questo tipo di cose :)
donquixote,

O una macro del browser?
donquixote,

Risposte:


9

Le linee generali che utilizzano il modulo Caratteristiche potrebbero essere:

  1. Aggiungi il campo a due tipi di contenuto (per vedere lo schema) manualmente
  2. Creare una funzione che includa basi di campo e istanze di campo per i campi appena creati
  3. Modifica il modulo creato moltiplicando le basi di campo e le istanze per tutti i tipi di contenuto necessari
  4. Abilita il modulo modificato

Non ricordo come esattamente le funzioni vengono gestite con i campi .. è possibile disabilitare la funzione dopo che i campi sono stati creati?
donquixote,

Il modulo neonato dipenderà dalle funzionalità, quindi praticamente no, per quanto ne so.
Kari Kääriäinen,

Voglio dire disabilitare il modulo neonato, non disabilitare le funzionalità. La domanda è se le istanze sul campo saranno ancora lì. Forse Lester Peabody o Nigel Waters possono provare e riportare indietro.
donquixote,

Oh scusa. Sì, in realtà entrambi possono essere disabilitati, i campi vivranno nel database, vedo, come sto testando da solo.
Kari Kääriäinen,

Questa è la risposta giusta per le configurazioni predefinite di drupal e anche per la maggior parte delle altre configurazioni di drupal. Ma se sono disponibili diverse modalità di visualizzazione per diversi tipi di contenuto, è meglio configurare manualmente i campi in ciascun tipo di contenuto o assicurarsi di utilizzare i tipi di visualizzazione corretti nel codice dell'array field_instance.
Sumeet Pareek,

5

Utilizzare il modulo Strumenti campo :

Una raccolta di utili strumenti dell'interfaccia utente per lavorare con i campi:

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!

Sembra davvero fantastico, dovrò guardare questo.
Lester Peabody,

3

Se non ti dispiace scrivere un modulo personalizzato per questo, è relativamente facile aggiungere un campo a un tipo di contenuto tramite codice:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

Il codice sopra aggiungerà il campo "field_firstname" al tipo di contenuto con il nome macchina "person". Quindi è possibile creare un modulo che un modulo che consente di selezionare un campo e un numero di tipo di contenuto e al momento dell'invio il campo viene aggiunto a tutti i tipi di contenuto selezionati.


1

Le poche volte che ho dovuto farlo ho usato Field Collection .

Fornisce un campo di raccolta campi a cui è possibile allegare un numero qualsiasi di campi.

È comunque piuttosto arduo, dato che devi aggiungere il campo di raccolta dei campi a ogni tipo di contenuto. Detto questo, se aggiungi 5 o 6 campi a più tipi di contenuto, devi solo configurare i campi iniziali 5 o 6 una volta nella raccolta dei campi.

Successivamente, crei il campo di raccolta dei campi (per amor di argomenti chiamiamolo field_collection_field) su uno dei tuoi tipi di contenuto, quindi riutilizzi lo stesso campo su tutti gli altri.

Come ho già detto, devi ancora configurare un campo su x quantità di tipi di contenuto ... ma è meglio che creare 10 campi su 10 tipi di contenuto (ad esempio).


aah..sorry. Ho appena riletto anche la tua domanda e necessita solo di un campo.
Ci

Detto questo, potresti mettere questo campo in una raccolta di campi e configurarlo come desideri, quindi fare riferimento alla raccolta di campi con il campo già configurato. Tuttavia, questo è un po 'eccessivo.
Chapabu,

Nessun problema Chapabu, questa è ancora un'informazione utile per il futuro, nel caso avessi bisogno di fare qualcosa del genere lungo la strada.
Lester Peabody,

1

Se hai dimestichezza con la manipolazione diretta del database, le istanze di campo vengono archiviate nella tabella {field_config_instance}. È possibile aggiungere / configurare il campo per un tipo di contenuto, quindi trovare il record nella tabella del database e duplicarlo.

Dovrai modificare due valori di colonna sulla riga duplicata:

  • id: dovrebbe essere un nuovo numero intero univoco per la tabella
  • bundle: dovrebbe essere il nome della macchina del nuovo tipo di contenuto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.