A site for solving at least some of your technical problems...
A site for solving at least some of your technical problems...
Today I had an interesting experience... all of a sudden, all the blocks of a given theme disappeared.
It has been working just fine for months, so I really wasn't sure what the heck it could be.
The fact was that the theme was called the same as the module (as I work for a given client, I tend to do that...)
At some point, I must have added a function with a specific name and that would influence the theme. The result being blocks going bye bye!
I checked and the block content is computed just fine, the problem is the theme('block', $block) call. Although the $block->content is the HTML of the block as expected, the theme() call returns an empty string and that for all the blocks and the result is a Drupal site without any blocks.
There is the function that generates the HTML for all the blocks in a given region:
function theme_blocks($region) { $output = ''; if ($list = block_list($region)) { foreach ($list as $key => $block) { // $key == <i>module</i>_<i>delta</i> $output .= theme('block', $block); } } // Add any content assigned to this region through drupal_set_content() calls. $output .= drupal_get_content($region); return $output; }
As you can see, it will theme() the blocks. I'm still not too sure what happened, although I noticed that having the module function with name_settings() would create a form in the theme settings too. Ooops!
Anyway, renaming the theme fixed that problem. Now we may find a few other problems as I used that path quite a bit (I kept a softlink for images, etc., but there could be other things that break down...)