[development] How to disable any block or sidebar from module

Jim Taylor jim at rootyhollow.com
Fri Jul 17 19:09:25 UTC 2009


Might try this module
I have never used it but it looks promising

http://drupal.org/project/region_visibility

On Fri, Jul 17, 2009 at 2:56 PM, Steve Edwards <killshot91 at comcast.net>wrote:

>  What about using a preprocess function in a module to unset the sidebar
> region variable if the condition is met?
>
> Steve
>
> Khalid Baheyeldin wrote:
>
>
>
> On Fri, Jul 17, 2009 at 2:01 PM, Earnie Boyd <earnie at users.sourceforge.net
> > wrote:
>
>> Quoting "Tomá? Fülöpp (vacilando.org)" <tomi at vacilando.org>:
>>
>>  Hi,
>>>
>>> I cannot find a generic way how to disable a sidebar programmatically.
>>>
>>> In my module, if some conditions are met, I would like to make sure that
>>> the
>>> whole sidebar (or any blocks in it) are not rendered at all, regardless
>>> of
>>> the theme.
>>>
>>> Could somebody advise, please? Sorry if it's obvious..
>>>
>>>
>>  I think you want to use hook_block()[1].
>>
>> [1] http://api.drupal.org/api/function/hook_block
>>
>
> He is talking about the whole sidebar, hence a region, not a block.
> hook_block() will not help here.
>
> In the past we have done it by setting the visibility PHP code for each
> block
> in a given region, and that would make the entire sidebar invisible if the
> conditions are met. It is a pain if you have more than a few blocks in that
> region (right side bar for example).
>
> You said you don't want it in the theme, but it would be a simple change in
> page.tpl.php
>
>       <?php if ($right): ?>
>         <?php if (*!custom_visibility_function*()) ?>
>           <div id="sidebar-right" class="sidebar">
>             <?php print $right ?>
>           </div>
>         <?php endif; ?>
>       <?php endif; ?>
>
> The other option is to use preprocess_block(). Perhaps something like this
> in
> template.php
>
> <?php
> function phptemplate_preprocess_block(&$variables) {
>   if ($variables['block']->region = 'right') {
>     if (!custom_visibility_function()) {
>       unset($variables['block'];
>     }
>   }
> }
> ?>
>
> Still in the theme though.
>
>>
>>
>> --
>> Earnie
>> -- http://r-feed.com/           -- http://for-my-kids.com/
>> -- http://www.4offer.biz/       -- http://give-me-an-offer.com/
>>
>>
>
>
> --
> Khalid M. Baheyeldin
> 2bits.com, Inc.
> http://2bits.com
> Drupal optimization, development, customization and consulting.
> Simplicity is prerequisite for reliability. --  Edsger W.Dijkstra
> Simplicity is the ultimate sophistication. --   Leonardo da Vinci
>
>


-- 
Jim Taylor
Rooty Hollow LLC, Owner
jim at rootyhollow.com
www.rootyhollow.com
(614) 432-8609

Twitter: jalama
Linkedin: http://www.linkedin.com/in/rootyhollow
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.drupal.org/pipermail/development/attachments/20090717/66f57188/attachment.htm>


More information about the development mailing list