node id opslaan in database
Door Noikes op 8 February, 2012 - 09:39
Forums:
Drupalversie:
Ik heb een formulier dat drie extra velden toevoegd in het aanmaakscherm voor een nieuwe node (node/add) ben op zoek naar de juiste manier om de waarde van die velden in de database te schrijven.
Mijn formulier wordt aangemaakt met hook_form_alter.
Als ik mijn velden bewaar met hook_form_subsmit lukt dit mooi, behalve voor node id, dat blijkbaar nog niet toegekend werd en dus 0 is.
Ik heb al wat geëxperimenteerd met $op in nodeapi maar kom er niet echt uit.
Dus: HELP! :)
Dank op voorhand.
- Login of registreer om te kunnen reageren
Actuele inhoud
21 mei 2012
- , teller werkt niet bij Tweet , (Forumonderwerp) , nebo
- , Backend Drupal developer - Almere , (Forumonderwerp) , Patient1
- , Veld verbergen profiel pagina. , (Forumonderwerp) , mindhunter , Reacties: 2
20 mei 2012
- , stylen frontpage met views , (Forumonderwerp) , majovdh , Reacties: 1
- , Terugkoppeling gegevens formulier op site , (Forumonderwerp) , Gerritse
- , Afbeelingen niet meer zichtbaar , (Forumonderwerp) , FransR
- , Blijft een website zonder updates altijd online? , (Forumonderwerp) , sjnellejelle , Reacties: 1
- , instal , (Forumonderwerp) , laanie73 , Reacties: 6
- , Nice menu gebruiken , (Forumonderwerp) , H.Schaeks
- , Theming Views: kan fields variabelen niet printen , (Forumonderwerp) , dakke , Reacties: 3
- , Aantal comments klopt niet (meer) , (Forumonderwerp) , nebo , Reacties: 4
- , Betalingsmethode Commerce , (Forumonderwerp) , Tim.T , Reacties: 3
19 mei 2012
- , Gebruikerslijst , (Forumonderwerp) , tuxy
18 mei 2012
- , Gastenboek: goedkeuren berichten , (Forumonderwerp) , Pedroo , Reacties: 2
- , FB Like button niet zichtbaar , (Forumonderwerp) , nebo , Reacties: 1
Xano
8 February, 2012 - 19:39
Permalink
Hoort die extra data bij de
Hoort die extra data bij de node? Dan aan $node toevoegen en pas in de DB opslaan in hook_nodeapi() met $op == 'save'.
Vuistregel: forms zijn niet bedoeld voor API-functionaliteit. Je kan een form het save-proces laten starten, maar je zal zelf vanuit dat proces moeten werken.
Noikes
8 February, 2012 - 19:52
Permalink
Bij $op == "save" wordt de
Bij $op == "save" wordt de code niet uitgevoerd (en geen record weggeschreven).
"save" staat ook niet bij de acties in de documentatie (voor zover ik ze heb: http://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/hook_nodeapi/6?).
Xano
8 February, 2012 - 21:10
Permalink
Mijn fout. "insert" en/of
Mijn fout. "insert" en/of "update" dan.
Noikes
8 February, 2012 - 22:29
Permalink
$op=="insert": worden er wel
$op=="insert": worden er wel records bewaard, maar zowel node id als de ingevoerde waarde in de velden gaat verloren.
$op=="update": wordt niet uitgevoerd.
Afgaande op de uitleg in het boek "Pro Drupal Development" zou het inderdaad "Insert" moeten zijn ("A new node has just been inserted into the database") maar blijkbaar is de waarde van mijn invoervelden al verloren gegaan en heeft $nid geen waarde gekregen.
Xano
9 February, 2012 - 04:02
Permalink
Je moet daarom in de form
Je moet daarom in de form submit de waardes aan de node object toevoegen en in hook_nodeapi() de gegevens opslaan.