this reminds me that there is a weird issue with drupal... the access all content permissions saves the configuration in node_access with nid = 0 which should not be the case.. so its best if you never interact with node_access table and stay out of the problem... not that it is relevant with this problem, just wanted to share :)<div>
<br></div><div>i&#39;m not sure if i follow the use of the 2 functions.. did it work for you? the permission for the user to be able to save the node can be defined using drupal permissions.. no? even in case you are using any access control module, your node_save should work independently.. the access control module should handle the permissions of saving the node.. <br>
<br><div class="gmail_quote">On Tue, Apr 20, 2010 at 5:00 PM, Lluís Forns <span dir="ltr">&lt;<a href="mailto:enboig@gmail.com">enboig@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I just discovered another problem, I am using an access control<br>
module, so I had to add 2 functions so my user could load/save any<br>
node:<br>
<br>
function mymodule_loadAnyNode($nid) {<br>
  if ($nid==0) return FALSE;<br>
  global $user;<br>
  static $orig_user = array();<br>
  array_push($orig_user, $user);<br>
  $user = user_load(1);<br>
  $node=node_load($nid);<br>
  $user = array_pop($orig_user);<br>
  return $node;<br>
}<br>
<br>
function mymodule_saveAnyNode($node) {<br>
  if ($nid==0) return FALSE;<br>
  global $user;<br>
  static $orig_user = array();<br>
  array_push($orig_user, $user);<br>
  $user = user_load(1);<br>
  $return=node_save($node);<br>
  $user = array_pop($orig_user);<br>
  return $return;<br>
}<br>
<br>
<br>
<br>
2010/4/20 Mukesh Agarwal &lt;<a href="mailto:mike4u4ever2001@gmail.com">mike4u4ever2001@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; Try changing $node-&gt;uid.. The timestamps will have to change when you update<br>
&gt; a node.. it is necessary for many modules to be identified of the change<br>
&gt; like search and xmlsitemap<br>
&gt;<br>
&gt; On Tue, Apr 20, 2010 at 3:43 PM, Lluís Forns &lt;<a href="mailto:enboig@gmail.com">enboig@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; My problem right now is node_save itself: uid and timestamps are<br>
&gt;&gt; changed by node_save. Is there a way to avoid that? Or should I reset<br>
&gt;&gt; these fields with db_query(&quot;UPDATE ...&quot;)?<br>
&gt;&gt;<br>
&gt;&gt; 2010/4/20 Lluís Forns &lt;<a href="mailto:enboig@gmail.com">enboig@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; This is the way I am following now. I hope my code will fix all the<br>
&gt;&gt; &gt; &quot;broken&quot; nodes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2010/4/20 Steven Jones &lt;<a href="mailto:steven.jones@computerminds.co.uk">steven.jones@computerminds.co.uk</a>&gt;:<br>
&gt;&gt; &gt;&gt; Hi Lluís,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; You can use Drupal&#39;s Batch API to process large sets of objects like<br>
&gt;&gt; &gt;&gt; this. Documentation for the API is here:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; <a href="http://api.drupal.org/api/group/batch" target="_blank">http://api.drupal.org/api/group/batch</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; And it includes an example for iterating over all nodes.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hope that helps!<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Regards<br>
&gt;&gt; &gt;&gt; Steven Jones<br>
&gt;&gt; &gt;&gt; ComputerMinds ltd - Perfect Drupal Websites<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Phone : 024 7666 7277<br>
&gt;&gt; &gt;&gt; Mobile : 07702 131 576<br>
&gt;&gt; &gt;&gt; Twitter : darthsteven<br>
&gt;&gt; &gt;&gt; <a href="http://www.computerminds.co.uk" target="_blank">http://www.computerminds.co.uk</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 20 April 2010 08:38:19 UTC+1, Lluís Forns &lt;<a href="mailto:enboig@gmail.com">enboig@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt; I have some modules creating nodes calling directly node_save() and<br>
&gt;&gt; &gt;&gt;&gt; now when trying to rebuild permissions table drupal fails at a random<br>
&gt;&gt; &gt;&gt;&gt; node.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; I think this is caused because of some bad created nodes, and I thing<br>
&gt;&gt; &gt;&gt;&gt; I have found a way to fix them; but it fail because of memory limit.<br>
&gt;&gt; &gt;&gt;&gt; Is there a way to make node_load() not store nodes in cache? (I have<br>
&gt;&gt; &gt;&gt;&gt; around 30k nodes)<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Thanks<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &lt;?php<br>
&gt;&gt; &gt;&gt;&gt; function mymodule_update_6008() {<br>
&gt;&gt; &gt;&gt;&gt;  $ret=array();<br>
&gt;&gt; &gt;&gt;&gt;  $res=db_query(&quot;SELECT nid, type FROM {node}&quot;);<br>
&gt;&gt; &gt;&gt;&gt;  while ($row=db_fetch_array($res)){<br>
&gt;&gt; &gt;&gt;&gt;    $prenode[&#39;type&#39;]=$row[&#39;type&#39;];<br>
&gt;&gt; &gt;&gt;&gt;    $prenode=(object)$prenode;<br>
&gt;&gt; &gt;&gt;&gt;    $node_new=node_object_prepare($prenode);<br>
&gt;&gt; &gt;&gt;&gt;    $node_old=node_load($row[&#39;nid&#39;]);<br>
&gt;&gt; &gt;&gt;&gt;    foreach($node_old AS $key =&gt; $value) {<br>
&gt;&gt; &gt;&gt;&gt;      $node_new-&gt;$key = $value;<br>
&gt;&gt; &gt;&gt;&gt;    }<br>
&gt;&gt; &gt;&gt;&gt;    node_save($node_new);<br>
&gt;&gt; &gt;&gt;&gt;  }<br>
&gt;&gt; &gt;&gt;&gt; }<br>
&gt;&gt; &gt;&gt;&gt; ?&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; *Les normes hi són perquè hi pensis abans de saltar-te-les<br>
&gt;&gt; &gt;&gt;&gt; *La vida és com una taronja, què esperes a exprimir-la?<br>
&gt;&gt; &gt;&gt;&gt; *Si creus que l&#39;educació és cara, prova la ignorància.<br>
&gt;&gt; &gt;&gt;&gt; *La vida és com una moneda, la pots gastar en el que vulguis però<br>
&gt;&gt; &gt;&gt;&gt; només una vegada.<br>
&gt;&gt; &gt;&gt;&gt; *Abans d&#39;imprimir aquest missatge, pensa en el medi ambient.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; *Les normes hi són perquè hi pensis abans de saltar-te-les<br>
&gt;&gt; &gt; *La vida és com una taronja, què esperes a exprimir-la?<br>
&gt;&gt; &gt; *Si creus que l&#39;educació és cara, prova la ignorància.<br>
&gt;&gt; &gt; *La vida és com una moneda, la pots gastar en el que vulguis però<br>
&gt;&gt; &gt; només una vegada.<br>
&gt;&gt; &gt; *Abans d&#39;imprimir aquest missatge, pensa en el medi ambient.<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; *Les normes hi són perquè hi pensis abans de saltar-te-les<br>
&gt;&gt; *La vida és com una taronja, què esperes a exprimir-la?<br>
&gt;&gt; *Si creus que l&#39;educació és cara, prova la ignorància.<br>
&gt;&gt; *La vida és com una moneda, la pots gastar en el que vulguis però<br>
&gt;&gt; només una vegada.<br>
&gt;&gt; *Abans d&#39;imprimir aquest missatge, pensa en el medi ambient.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Cheers,<br>
&gt; Mukesh<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<div><div></div><div class="h5">*Les normes hi són perquè hi pensis abans de saltar-te-les<br>
*La vida és com una taronja, què esperes a exprimir-la?<br>
*Si creus que l&#39;educació és cara, prova la ignorància.<br>
*La vida és com una moneda, la pots gastar en el que vulguis però<br>
només una vegada.<br>
*Abans d&#39;imprimir aquest missatge, pensa en el medi ambient.<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Cheers,<br>Mukesh<br>
</div>