[Решено] Toolbar и Lightbox2: половая несовместимость.

Главные вкладки

Аватар пользователя Neverbalnost Neverbalnost 13 февраля 2012 в 11:21

Дано: Некоторые ноды по замыслу дизайнера открываются во всплывающем iframe, что реализовано про помощи lightbox2. И всё бы хорошо, но в них зачем-то открывается toolbar. Если тулбар запретить показывать путем назначения ему через css display:none - остается огромная дырка, будто этот тулбар всё ещё там. Причем поскольку этот паддинг прописывается самим скриптом лайтбокса, css'ом его не перекроешь. Если назначить содержимому лайтбокса отрицательное поле вверху - то начинаются совсем чудеса. То всё отображается нормально, то содержимое уезжает вверх. Судя по всему это связано всё с тем же генерированием паддинга через скрипт.
Если toolbar вообще отключить - всё становится прекрасно. Но подвох в том, что он мне в общем то нравится и отключать его не желательно.
Теперь внимание вопрос! Можно ли отключить тулбар конкретно на страницах, которые демонстрируются в лайтбоксе?

Комментарии

Аватар пользователя Neverbalnost Neverbalnost 13 февраля 2012 в 20:57

В общем пока я выключила тулбар и поставила вместо него administration menu (без "улучшений"). Если его css-ом вырубить - всё хорошо и красиво. Если вдруг кто найдет лучшее решение, буду счастлива послушать.

Аватар пользователя Chyvakoff Chyvakoff 13 февраля 2012 в 21:06

В /modules/toolbar/toolbar.tpl.php напиши

<?php
<?
$p=request_uri();
$pages=array('/node/12','/node/466');//и т.д. запрещенные страницы
if(!in_array($p,$pages)){
?>
<div id="toolbar" class="<?php print $classes?> clearfix">
  <div class="toolbar-menu clearfix">
    <?php print render($toolbar['toolbar_home']); ?>
    <?php print render($toolbar['toolbar_user']); ?>
    <?php print render($toolbar['toolbar_menu']); ?>
    <?php if ($toolbar['toolbar_drawer']):?>
      <?php print render($toolbar['toolbar_toggle']); ?>
    <?php endif; ?>
  </div>

  <div class="<?php echo $toolbar['toolbar_drawer_classes']; ?>">
    <?php print render($toolbar['toolbar_drawer']); ?>
  </div>
</div>
<?
}
?>

Аватар пользователя Neverbalnost Neverbalnost 19 февраля 2012 в 20:21

Улучшенный и дополненный вариант - с учетом того, что адреса страниц для лайтбокса кончаются на "/lightbox2"

<?php$p=request_uri();
if(!substr_count($p, '/lightbox2')):
?>
<div id="toolbar" class="<?php print $classes?> clearfix">
  <div class="toolbar-menu clearfix">
    <?php print render($toolbar['toolbar_home']); ?>
    <?php print render($toolbar['toolbar_user']); ?>
    <?php print render($toolbar['toolbar_menu']); ?>
    <?php if ($toolbar['toolbar_drawer']):?>
      <?php print render($toolbar['toolbar_toggle']); ?>
    <?php endif; ?>
  </div>

  <div class="<?php echo $toolbar['toolbar_drawer_classes']; ?>">
    <?php print render($toolbar['toolbar_drawer']); ?>
  </div>
</div>
<?
endif;
?>

Аватар пользователя sadad sadad 1 марта 2012 в 16:18

Я кроме css toolbar display:none просто добавил height:0. работает.

У меня вот другая проблем, может кто знает: как сделать так, чтобы ссылки в тексте расположенном в лайтбоксе открывались в обычном окне? Естественно лайтбокс при этом должен закрываться.