<br><br><div class="gmail_quote">On Mon, May 19, 2008 at 2:24 PM, Earl Miles &lt;<a href="mailto:merlin@logrus.com">merlin@logrus.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Darrel O&#39;Pry wrote:<div><div></div><div class="Wj3C7c"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Mon, May 19, 2008 at 12:46 PM, John Wilkins &lt;<a href="mailto:drupal.user@albin.net" target="_blank">drupal.user@albin.net</a> &lt;mailto:<a href="mailto:drupal.user@albin.net" target="_blank">drupal.user@albin.net</a>&gt;&gt; wrote:<br>

&nbsp;<br>
 &nbsp; &nbsp;HOOK_theme() actually has 4 parameters that are essential for theme<br>
 &nbsp; &nbsp;developers. Of course, HOOK_theme() is a special case since themes<br>
 &nbsp; &nbsp;(and not just modules) can call that hook. (And, btw, themes can&#39;t<br>
 &nbsp; &nbsp;call the corresponding HOOK_theme_registry_alter().)<br>
<br>
<br>
Themes can all call any hook. This is not a special case. &nbsp;Really you&#39;re going to have to explain, &quot;themes can&#39;t call the corresponding HOOK_theme_registry_alter()&quot;. Why not?<br>
</blockquote>
<br></div></div>
By &#39;call&#39; he meant &#39;implement&#39;.<br>
<br>
Themes get a special HOOK_theme() that is exactly like the module version, but they do not get a corresponding alter.<br>
</blockquote></div><br>That makes more sense. I&#39;m a proponent of ignoring that special case for now since it&#39;s doing it&#39;s own caching and just implementing a caching version of module_invoke_all....<br><br>although I don&#39;t think we need to add the logic for caching in module_invoke_all itself since it is a called my many other modules, just extend what we have with a wrapper that implements the caching.<br>