<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>On Oct 30, 2009, at 11:34 AM, Emma Irwin wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite">Isn't there a need for node_submit() as well before node_save(); ?<br></blockquote><div><br></div><div>In D6, yes. Also to clarify Alex's point, a pure node_submit() + node_save() is indeed faster -- because it doesn't hit any hooks. The "proper" way to save a node programmatically is in the comments for drupal_execute():</div><div><div>&nbsp;</div><div>* // Create a new node</div><div>&nbsp;* $form_state = array();</div><div>&nbsp;* module_load_include('inc', 'node', 'node.pages');</div><div>&nbsp;* $node = array('type' =&gt; 'story');</div><div>&nbsp;* $form_state['values']['title'] = 'My node';</div><div>&nbsp;* $form_state['values']['body'] = 'This is the body text!';</div><div>&nbsp;* $form_state['values']['name'] = 'robo-user';</div><div>&nbsp;* $form_state['values']['op'] = t('Save');</div><div>&nbsp;* drupal_execute('story_node_form', $form_state, (object)$node);</div><div>&nbsp;*/</div></div><div><br></div><br><blockquote type="cite"><br><div class="gmail_quote">On Fri, Oct 30, 2009 at 9:52 AM, Alex Barth <span dir="ltr">&lt;<a href="mailto:alex@developmentseed.org">alex@developmentseed.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 0.8ex; padding-left: 1ex; position: static; z-index: auto; "><br>
If speed is not an issue, use drupal_execute(). You're on the safe side with it, you don't need to worry about hook_nodeapi() / hook_form_alter() implementations of the moduls in use.<br>
<br>
Otherwise, I settled for:<br>
<br>
$node = new stdClass();<br>
node_object_prepare($node);<br>
// Add stuff.<br>
$node-&gt;title = 'my title';<br>
node_save($node);<br>
<br>
On that note, I urge all module developers to not rely on form submission in their hook_nodeapi() implementations. Your module's node api implementation shouldn't break when a node is being created without using the way through the form api.<div>
<div></div><div class="h5"><br>
<br>
On Oct 30, 2009, at 11:53 AM, Zhang Xiao wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I have a batch of nodes need to be created from code, which function should i use as an entry?<br>
<br>
thanks!<br>
</blockquote>
<br></div></div><font color="#888888">
Alex Barth<br>
<a href="http://www.developmentseed.org/blog" target="_blank">http://www.developmentseed.org/blog</a><br>
tel (202) 250-3633<br>


<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#888888"><br></font></font></font></blockquote></div></blockquote><br></div><div><span class="Apple-style-span" style="font-size: 12px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><font class="Apple-style-span" face="'Courier New'">--</font></div><div><font class="Apple-style-span" face="'Courier New'">Domenic Santangelo</font></div><div><font class="Apple-style-span" face="'Courier New'">WorkHabit, Inc.</font></div><div><font class="Apple-style-span" face="'Courier New'">[Direct &nbsp;]530-902-2576</font></div><div><font class="Apple-style-span" face="'Courier New'">[Office &nbsp;]866-WorkHabit</font></div><div><font class="Apple-style-span" face="'Courier New'">[Skype &nbsp; ]dsantangelo</font></div><div><font class="Apple-style-span" face="'Courier New'">[Freenode]entendu @ #drupal</font></div></div><div><br class="webkit-block-placeholder"></div></div></span><br class="Apple-interchange-newline"></div></span><br class="Apple-interchange-newline"></div></span></div></body></html>