I’m relatively new to Drupal and am just squashing bugs on my first site.
I have a region that I declared in my theme.info file:
regions[alert] = 'Sitewide Alert'
and I have a block that has a custom template block--alert.tpl.php
with some custom fields. Everything works great when I have my Sitewide Alert block assigned to my Alert region. But when I disable my Sitewide Alert block, no content renders in my content region. If I enable the Sitewide Alert block, or any other block in the sitewide alert region, all my content comes back.
Using the themer module, I can see that all the same variables are still available on the page, but it’s like none of my templates are being called or something. Can anyone help me troubleshoot this or point me to some resources?
UPDATE:
I forgot that I was preprocessing my custom block. This is where my issue was. Within my theme_preprocess_block function, I was running the following code:
// Sets the character limit for the Custom Block if ($vars['id'] == '2') { $vars['content'] = truncate_utf8($vars['content'], 170, TRUE, FALSE); }
What I found out is that the $vars['id']
changes depending on what blocks are called on the page. When my custom block was active, it’s id was 2, but when it was inactive, my content block had the id of 2 and so was being truncated.
I changed this to:
// Sets the character limit for the Custom Block if ($vars['theme_hook_suggestions'][0] == 'block__alert') { $vars['content'] = truncate_utf8($vars['content'], 170, TRUE, FALSE); }
If anyone has a better way of selecting a block to preprocess I’d love to see it.