Вобещм переношу шаблон из 6 друпала в 7. У меня стиль блоков зщадан в block.tpl, и при использовании темизации блоков - контент становится таким же! Я почитал в интернетах, что контент в 7 друпале это тоже блок. Пичалька. Так вот: как же мне сделать чтобы темизация блоков применялась ко всем блокам кроме блока контента?
Комментарии
То же столкнулся с данной «проблемой»,
мое решение следующее, в tempalte.php темы:
<?php
function loross_preprocess_block(&$variables) {
// In the header region visually hide block titles.
$variables['block']->is_title_block = TRUE;
$variables['block']->is_bordered_block = FALSE;
if (in_array($variables['block']->region,array('header','footer'))) {
array_merge($variables,array('is_title_block' => TRUE));
$variables['block']->is_title_block = FALSE;
}
if (in_array($variables['block']->region, array('sidebar_first','sidebar_second','top_post','help','pre_footer','bottom_content'))) {
$variables['block']->is_bordered_block = TRUE;
}
}
?>
в данном случае loross - это имя темы, в переменной $block шаблона block.tpl.php я определяю две дополнительных переменных is_bordered_block и is_title_block дальше в зависимости от значения этих переменных я вывожу соответствующий контент
для примера мой block.tpl.php
<?php
// $id$
?>
<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php if ($block->is_bordered_block) : ?>
<div class="block-tl"></div>
<div class="block-tr"></div>
<div class="block-bl"></div>
<div class="block-br"></div>
<div class="block-tc"></div>
<div class="block-bc"></div>
<div class="block-cl"></div>
<div class="block-cr"></div>
<div class="block-cc"></div>
<?php endif; ?>
<div class="block-body">
<?php if ($block->is_title_block && $block->subject) : ?>
<?php print render($title_prefix); ?>
<div class="block-header">
<div class="l"></div>
<div class="r"></div>
<div class="header-tag-icon">
<div class="t">
<h2<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
</div><!-- /t -->
</div><!-- /header-tag-icon -->
</div><!-- /block-header -->
<?php print render($title_suffix); ?>
<?php endif;?>
<div class="block-content">
<?php if ($block->is_bordered_block && $block->subject) : ?>
<div class="block-content-tl"></div>
<div class="block-content-tr"></div>
<div class="block-content-bl"></div>
<div class="block-content-br"></div>
<div class="block-content-tc"></div>
<div class="block-content-bc"></div>
<div class="block-content-cl"></div>
<div class="block-content-cr"></div>
<div class="block-content-cc"></div>
<?php endif; ?>
<div class="block-content-body">
<div class="content"<?php print $content_attributes; ?>>
<?php print $content ?>
</div>
</div><!-- / block-content-body -->
</div><!-- / block-content -->
</div><!-- /block-body -->
</div>
?>
Эм..что-то не понял...я в друпале новичек..Я знаю что для отделього блока можно задавать сой стиль, например у меня для всех блоков есть block.tpl.php с кодом:
<?php
// $Id: block.tpl.php,v 1.3 2007/08/07 08:39:36 goba Exp $
?>
<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print render($title_prefix); ?>
<?php if ($block->subject): ?>
<div id="top_left"><?php print $block->subject; ?></div>
<?php endif;?>
<?php print render($title_suffix); ?>
<div class="content"<?php print $content_attributes; ?>>
<div id="cen_left"><?php print $content; ?></div>
</div>
<div id="bot_left"></div>
</div>
?>
и например в 6 друпале в своей теме я для верхней навигации делал block-menu-menu-topnav.tpl.php с кодом:
<?php<div id="block-<?php print $block->module .'-'. $block->delta; ?>" class="block block-<?php print $block->module ?>">
<?php if ($block->subject): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content">
<?php print $block->content ?>
</div>
</div>?>
Как же выделить блок контента? Смотрю в исходнике блок div#block-system-main, создал block-system-main.tpl.php и внес в него стандартный код блока из ядра друпала. но контент по прежнему старый...я уже и перепаковывал тему и заново заливал - нифига
Ну в данном случае (если брать чисто шаблонизацию) сработает шаблон block--content.tpl.php , где content - это имя региона для вывода основного контента
неа, не помогло(
Мне помогло это: http://www.drupal.ru/node/57723
Так блин там написано как создавать темы для блоков, а мне просто надо узнать как именно для блока контента!Как назвать для него block-*.tpl.php??
http://drupal.org/node/1089656
А вы учли что там ДВА прочерка ? ну и надо точно знать машинное имя региона (посмотреть можно в info файлы вашей темы)
Все дело в двух прочерках??я думал ты опечатался с двумя прочерками..хм..щяс попробую с двумя..
Кстати и с двумя черточками не помогло...
Кэш сбрасывали ? имя региона указали верное ?
Покажите инфо файл темы и как вы назвали шаблон ...
Ну и посмотрите в файле template.php вашей темы, не переопределены ли файлы шаблонов ...
обратите внимание на функции ..._preprocess_page, ...preprocess_block
1)у меня template.php вообще нету
2) инфо файл:
name = Andron
description = Тема ООО "Андроновское"
screenshot = screenshot.png
core = 7.x
engine = phptemplate
version = VERSION
regions[left] = Left sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[top_nav] = Верхняя навигация
features[] = logo
features[] = name
features[] = primary_links
features[] = secondary_links
stylesheets[all][] = styles.css
Ну и надеюсь шаблон называется block--content.tpl.php и лежит он в папке с вашей темой (и у сервера есть права на чтение этого файла), и его содержимое отличается от block.tpl.php ?
Да, все так. Сайт на денверском локалхосте)
Такой же косяк!!!
Пытаюсь темизировать блок-регион, не выходит.
файл инфо:
regions[top_menu] = Top menu
regions[sub_menu] = Sub Menu
regions[page_bottom] = Page bottom
regions[sidebar_first] = Left colum
regions[sidebar_second] = Right colum
regions[search] = Search
regions[footer] = Footer
regions[help] = Help
--------------------------
имена даю нормальные
block--content.tpl.php
block--sidebar_first.tpl.php
block--footer.tpl.php
файл template.php, пуст
и ни чего... содержимое отличается, кеш выключин, хостинг нормальный не бесплатный! была тема о том что это баг... пытался ставить патч, и все равно ни чего не выходит! в чем косяк?
Эээ че-то вы ребята мудрите
Шаг №1
Кусок файла info темы
<?php
regions[header] = Header
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[highlighted] = Highlighted
regions
[featured] = Featured// ---------------------------
// Внимание сюда !!!!
regions[content] = Content
regions
[sidebar_first] = Sidebar firstregions[sidebar_second] = Sidebar second
regions
[triptych_first] = Triptych firstregions[triptych_middle] = Triptych middle
regions[triptych_last] = Triptych last
regions
[footer_firstcolumn] = Footer first columnregions[footer_secondcolumn] = Footer second column
regions[footer_thirdcolumn] = Footer third column
regions[footer_fourthcolumn] = Footer fourth column
regions[footer] = Footer
?>
Шаг № 2.
Заходим на страницу настройки блоков (admin/structure/block)
Выставляем content в регион content
ну или на буржуйском языке
Шаг №3.
Копируем из modules/block (или из директории вашей темы если он там есть) файл block.tpl.php в файл block--content.tpl.php, данный фал должен быть в директории (или вложенных поддиректориях вашей темы)
Редактируете данный файл как вам надо.
для примера я вывел просто пару строк текста в самом начале блока.
<?php
print '<h3>Это переопределенный шаблон для региона "Content"<br />';
print 'block--content.tpl.php</h3>';
?>
<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print render($title_prefix); ?>
<?php if ($block->subject): ?>
<h2<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
<?php endif;?>
<?php print render($title_suffix); ?>
<div class="content"<?php print $content_attributes; ?>>
<?php print $content ?>
</div>
</div>
?>
Шаг №4.
Идете на страницу "Производительность" (admin/config/development/performance)
Нажимает кнопку "полная очистка кэша"
И ву а ля - получите результат
СПАСИБО ПОМОГЛО!!!!
Не должно быть файлов шаблонов на регион, если используется имя block--MODULE--ID.tpl.php
http://localhost/admin/structure/block/manage/system/navigation/configure
будет имя block--system--navigation.tpl.php . Мучался с этим пока не удалил block--REGION.tpl.php - вместе не работают.