Подскажите как решить проблему.
в block.tpl.php сделал так
<?php
<div class="content_left_section">
<div class="left_section_header"></div>
<?php if ($block->subject) { ?>
<div class="left_section_title"><?php print $block->subject; ?></div>
<?php } ?>
<?php if ($block->content) { ?>
<div class="left_section_content">
<?php print $block->content; ?>
</div>
<?php } ?>
<div class="left_section_footer"></div>
</div>
?>
в левом сайдбаре блок выглядит как надо
хидер и футер блока — полоски со скошенными углами сделаны дивами с соответсвующими картинками.
а вот если этот, точнее любой, блок перенести в другой регион получается каша.
соответственно вопрос: как определить в каком регионе выводится блок, ну или какой-нибудь другой путь, если я не так делаю :).
p/s/
<?php
<div class="block block-<?php print $block->module; ?> unstyled-block" id="block-<?php print $block->module; ?>-<?php print $block->delta; ?>">
?>
так не прокатывает потому-что тут можно определить название модуля (в случае первого скриншота nice-menus) и его номер.
Вложение | Размер |
---|---|
_bottom_sidebar_block_.jpg | 30.6 КБ |
Комментарии
В page.tpl.php пропишите id для регионов.
В css файлах прописывайте сложные селекторы:
... css rules here ...
}
... different css rules here ...
}
я с друпалом еще на вы:)
а не подскажете как id региона определить?
сейчас решил заглянуть в acqua_marina там в block.tpl.php есть такое
<?php if ($rounded_block): ?>
а в template.php
<?php
function phptemplate_preprocess_block(&$vars) {
// Add regions with rounded blocks (e.g., sidebar_first, sidebar_last) to $rounded_regions array
$rounded_regions = array('sidebar_first','sidebar_last','postscript_first','postscript_middle','postscript_last');
$vars['rounded_block'] = (in_array($vars['block']->region, $rounded_regions)) ? TRUE : FALSE;
}
?>
так их определять?
вообщем превратил block.tpl.php в кашу из if-ов
<?php
<div class="content_left_section">
<?php if ($corner_block) {?><div class="left_section_header"></div> <?php } ?>
<?php if ($block->subject):?>
<?php if ($corner_block) {?><div class="left_section_title"><?php print $block->subject; ?></div><?php }?>
<?php if (!$corner_block) {?><?php print $block->subject; ?><?php } ?>
<?php endif; ?>
<?php if ($block->content) { ?>
<?php if ($corner_block) {?><div class="left_section_content"><?php } ?>
<?php print $block->content; ?>
<?php if ($corner_block) {?></div><?php } ?>
<?php } ?>
<?php if ($corner_block) {?><div class="left_section_footer"></div><?php } ?>
</div>
?>
уж не знаю насколько это правильно
Это конечно вариант, но.. несколько неправильный
Меняйте разметку в файле page.tpl.php
Там должно быть что-то вроде (для каждого региона)
<?php print $region-name; ?>
Так вот, меняете (или обнаруживаете, что все так и есть) на следующий код:
<div id="region-name"><?php print $region-name; ?></div>
Вот как это выглядит, например в Garland:
<div id="footer"><?php print $footer_message . $footer ?></div>
Дальше - гуглите по запросу "css селекторы". Вам достаточно простейшего, как я написал выше.
у меня в page.tpl уже вписаны структура страницы уже разбита дивами
и просто в нужные места выводятся print-ами содержимое.
боюсь если начну делать по вашему (как надо?) то совсем запутаюсь. тут наверное все дело в степени детализации темизации
но спасибо и за эту подсказку, упростил только до if else без каши с кучей if-ов.
Вот так например:
http://drupal.org/node/190815
block-[region|[module|-delta]].tpl.php
base template: block.tpl.php
Suggestions made based on these factors in this order:
1. block-module-delta.tpl.php
2. block-module.tpl.php
3. block-region.tpl.php
ааааааа! где-то подсознательно думал что может, где-то так просто и можно сделать
но нехватило
головызнаний английского залезть на .orgспасибище! заработало
и все-таки?
как програмно определить активный регион?
например, есть определенный элемент, содержание которого зависит от того, в каком месте на странице он будет выведен (сайдбар, или же основная колонка). к сожалению, просто через стили тут не получится, поскольку выводиться будет html-код.
интуитивно я догадываюсь, что это какая-то переменная. скажу даже больше, когда-то я уже натыкался на нее, но сейчас вот что-то совсем не могу найти
ЗЫ: да, я уже гуглил не помогло...