[development] How to disable any block or sidebar from module
Steve Edwards
killshot91 at comcast.net
Fri Jul 17 18:56:04 UTC 2009
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 <mailto:earnie at users.sourceforge.net>>
> wrote:
>
> Quoting "Tomá? Fülöpp (vacilando.org <http://vacilando.org>)"
> <tomi at vacilando.org <mailto: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 <http://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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.drupal.org/pipermail/development/attachments/20090717/3f3ca0df/attachment-0001.htm>
More information about the development
mailing list