0

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.

0

Well, just off the bat I haven't seen anyone use single quotes on the human-readable name. For instance, I'd change it to:

regions[alert] = Sitewide Alert

You might have a PHP if statement in your page.tpl.php somehow affecting your content region. I'd double-check the template file and see how it matches up with the default Bartik page.tpl.php

0

If your custom region is affecting your main content region, there is a really high chance that you have some faulty html in one of your custom templates or blocks. Check each for unclosed div's.

  • I don't think that's it. It looks fine when both regions are enabled. When the sitewide alert is disabled, the node div is completely empty. It just outputs this: <div id="node-12" class="node node-template-a clearfix" about="/node/12" typeof="sioc:Item foaf:Document" data-thmr="thmr_506 thmr_16"> </div> – bgrobertson May 13 '15 at 19:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.