On Mon, May 19, 2008 at 2:24 PM, Earl Miles <merlin@logrus.com> wrote:
Darrel O'Pry wrote:

On Mon, May 19, 2008 at 12:46 PM, John Wilkins <drupal.user@albin.net <mailto:drupal.user@albin.net>> wrote:
 
   HOOK_theme() actually has 4 parameters that are essential for theme
   developers. Of course, HOOK_theme() is a special case since themes
   (and not just modules) can call that hook. (And, btw, themes can't
   call the corresponding HOOK_theme_registry_alter().)


Themes can all call any hook. This is not a special case.  Really you're going to have to explain, "themes can't call the corresponding HOOK_theme_registry_alter()". Why not?

By 'call' he meant 'implement'.

Themes get a special HOOK_theme() that is exactly like the module version, but they do not get a corresponding alter.

That makes more sense. I'm a proponent of ignoring that special case for now since it's doing it's own caching and just implementing a caching version of module_invoke_all....

although I don'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.