Drupal 7 - мой вывод заголовка блока содержимого

Не для кого не секрет, что отныне в Drupal 7 содержимое ноды (оно же просто контент) тоже является блоком, но несмотря на это заголовок по-прежнему выводится в page.tpl.php,  как бы являясь самостоятельным элементом в "свободном плавании". Однако, неудобно и не вполне логично.

Исправим несуразицу хуком в preproccess_block:

<?php
/* Добавлять код лучше всего в файл "template.php" */
function Имя_темы_preprocess_block(&$variables) {
  if ($variables['block_html_id'] == 'block-system-main') {
    $variables['elements']['#block']->subject = drupal_get_title();
  }
}
?>

Далее остается ещё пара шагов к финишной прямой.

Первым делом удалим из шаблона страницы вывод переменной $tilte, - дублированнный вывод здесь будет излишним.

Следующим действием создадим собственный файл для показа содержимого. Почему? Да потому, что в блоках обычно заголовки обрамлены во всё, что угодно, но только не в тег <h1>. Однако, плохой знак для диалога с роботами поисковых систем. Добавляем "block--content.tpl.php" (для всего региона), либо "block--system--main.tpl.php" (более корректный вариант). Сбрасываем кэш и всё OK.

Тем кто задастся вопросом: где взять код для вышеприведенных файлов, вот типичный пример:

<div id="<?php print $block_html_id; ?>" class="<?php print $classes; ?>"
<?php print $attributes; ?>>
<?php print render($title_prefix); ?>
<?php if ($block->subject): ?>
<h1<?php print $title_attributes; ?>><?php print $block->subject ?>dfds</h1>
<?php endif;?>
<?php print render($title_suffix); ?>
<div class="content"<?php print $content_attributes; ?>>
<?php print $content ?>
</div>
</div>

Ищите и вы всё найдете, удачи.



http://medicalserviceplus.ru/ халаты медицинские, женский медицинский халат. . RVG-G16 promgazarm.ru/99-rvg.html.

© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.