You don&#39;t have to do anything with caching at the render API level. Just turn on block caching, and it works by default.<br><br>Shameless plug about render api resources, though: The render example in Examples for Developers shows how to do render-api caching and any number of other cool thinks with the render API. And <a href="http://drupal.org/node/930760">http://drupal.org/node/930760</a> gives an introduction to the whole thing.<br>
<br>-Randy<br><br><div class="gmail_quote">On Sat, Dec 11, 2010 at 5:36 AM, Fredrik Sandve Kilander <span dir="ltr">&lt;<a href="mailto:fredrik.kilander@gmail.com">fredrik.kilander@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;"><div>Ah, what a slap-in-the-forhead-moment :) Thank you.</div><div><br></div><div>On a side note, and in regards to my original secon question about best practice:</div><div>The &#39;#cache&#39; property in the render array used for the block content is not necessary then, if I understand the mechanics correctly? This would only add a superfluous extra layer of caching?</div>
<div><br></div><div>-fredrik</div><div><br><blockquote type="cite"><div style="margin: 0px;"><span style="font-family: &#39;Helvetica&#39;; font-size: medium;"><b>Fra: </b></span><span style="font-family: &#39;Helvetica&#39;; font-size: medium;">Randy Fay &lt;<a href="mailto:randy@randyfay.com" target="_blank">randy@randyfay.com</a>&gt;</span></div>
<div style="margin: 0px;"><span style="font-family: &#39;Helvetica&#39;; font-size: medium;"><b>Emne: </b></span><span style="font-family: &#39;Helvetica&#39;; font-size: medium;"><b>Re: [development] Block caching in D7</b></span></div>
<br>Hi Fredrik - <br><br>I think you may have been testing as user 1.  I started testing your problem and noticed the same thing and started debugging and then noticed this code:<br><br><span style="font-family: courier new,monospace;">function _block_get_cache_id($block) {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  global $user;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  // User 1 being out of the regular &#39;roles define permissions&#39; schema,</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  // it brings too many chances of having unwanted output get in the cache</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">  // and later be served to other users. We therefore exclude user 1 from</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">  // block caching.</span><br><br>My testing (after I logged in as a different user) did show caching work correctly, at least in casual testing.<br><br>As a result of your note I&#39;ve added a timestamp into one of the blocks provided by the Block Example module, part of the Examples project (<a href="http://drupal.org/project/examples" target="_blank">http://drupal.org/project/examples</a>) so that one can easily explore whether caching is happening or not. When <a href="http://drupal.org/node/995316" target="_blank">http://drupal.org/node/995316</a> goes in (maybe tonight) it will make an easier way to explore block caching.<br>

<br>-Randy</blockquote></div></div></blockquote></div><br><br clear="all"><br>-- <br>Randy Fay<br>Drupal Module and Site Development<br><a href="mailto:randy@randyfay.com">randy@randyfay.com</a><br>+1  970.462.7450<br><br>