Extra velden toevoegen aan een gekloond node-object
Ik probeer d.m.v. een custom (D9-)module een kloonfunctie toe te voegen dewelke inhoud van NODETYPE_A kopieert naar NODETYPE_B. Beide nodetypes gebruiken grotendeels dezelfde velden, maar NODETYPE_B heeft er een paar extra. Bijvoorbeeld:
NODETYPE_A:
- Titel(title)
- Body (body)
- Datum (field_date_agenda)
NODETYPE_B:
- Title (title)
- Body (body)
- Datum (field_date_agenda)
- Aantal stuks (field_int_how_many)
- Reference naar NodeTypeA (field_noderef_nta)
Met de ingebouwde functionaliteit “$cloned_node = $node->createDuplicate()” kan ik alle velden van NODETYPE_A naar NODETYPE_B klonen, alsook het nodetype wijzigen. Nu tracht ik om de velden die niet in NODETYPE_A (maar wel in NODETYPE_B) aanwezig zijn, zelf in code toe te voegen (en te vullen met berekende waarden) alvorens de gekloonde node definitief op te slaan/aan te maken.
Het eenvoudigweg toevoegen van de veldnaam en deze met een waarde te vullen bleek niet te werken (node wordt aangemaakt maar de zelf toegevoegde velden worden genegeerd). Ik vermoed dat ik aan $cloned_node meer veldinfo (veldschema?) moet toevoegen, maar tot op heden is me dat nog niet gelukt. Iemand enig idee?
Groet
Drupalversie:
9.x
Auteur:
pietbr
Datum van inzending:
vrijdag 28 januari 2022 - 10:55
Door belba op 12 februari, 2022 - 12:41
Ik denk dat deze code je goed op weg kan helpen.
Ga ook eens door de form api.
Je zou eenvoudig met een hook_form_alter de velden kunnen toevoegen of via een eigen formulier schrijven.
Ik denk dat deze code je goed op weg kan helpen.
Ga ook eens door de form api.
Je zou eenvoudig met een hook_form_alter de velden kunnen toevoegen of via een eigen formulier schrijven.
Succes, Jan
Bedankt voor de tips!