Создание дополнительных регионов (region, областей сайта) в Drupal 6.0

Прислано: Rel

пт, 07/03/2008 - 12:22

Другие статьи по теме:

Для создания своих областей сайта в D6 необходимо прописать в файл {teme}.info темы такие строчки:

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[header2] = Header2
regions[header3] = Header3

left,right,content,header,footer уже есть по умолчанию .. header2, header3 - новые области

После этого определить их нахождение в page.tpl.php

<?php
print $header2;
?>

Не забыть нажать в Управление сайтом->Производительность->Очистить кэш

Теперь на странице управления блоками мы увидим новые области и сможем добавлять туда блоки

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано soff в пт, 07/03/2008 - 19:30.

еще на drupal.org рекомендуют писать конструкцию вида

<?php if ($region): ?>
<div id="region">
  <?php print $region; ?>
</div>
<?php endif; ?>


Опубликовано Rel в сб, 08/03/2008 - 07:40.

согласен, но это уже относится больше к вёрстке и знании будет ли этот регион когда-нибудь пустой.

например на сайте с которого я привёл пример (nepsite.com) если регион пустой, то меняется не только видимость самого блока, но и ширина его дива-родителя


Опубликовано J. Bravo в вс, 09/03/2008 - 18:08.

А такой подход можно использовать только в Drupal 6 или в 5 тоже можно?


Опубликовано Rel в вс, 09/03/2008 - 19:20.

в 5-ке функцией шаблона


Опубликовано Oboggy в пт, 13/06/2008 - 19:15.

Странно, но после выполненной инструкции (обеими способами), регионы не отображаются на странице блоков. В чем дело?


Опубликовано alekseykhrebtov в пн, 30/06/2008 - 16:53.

как разместить регион\регионы именно там, где я хочу? править css?


Опубликовано alekseykhrebtov в вт, 01/07/2008 - 14:15.

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


Опубликовано alekseykhrebtov в пт, 04/07/2008 - 14:36.

хех, разобрался (сам не поможешь - никто не поможет :) )
новый вопрос (видать снова только себе задаю :) )
допустим, есть два региона. У первого из них фиксированная высота, которая больше, чем высота второго региона, от чего у второго идет выравнивание по нижниему краю первого, т.е. примерно так:
_____________________
I............I......................I
I.....2.....I......................I
I............I......................I
3333333I........1............I
3333333I......................I
3333333I......................I
_______I_____________I

в результате чего образуется пустота (цифра 3) и мне в эту пустоту требуется добавить еще один регион, но у меня лишь добавлятся ниже первого региона (как самого высокого)


Опубликовано alekseykhrebtov в пт, 04/07/2008 - 14:46.

И в догонку...
использую тему contented7 для друпал 6

в файле .инфо вместо стандартного вида присутствует вот это:

; $Id: contented7.info,v 1.1 2008/04/11 02:30:59 hswong3i Exp $
name = Contented7
description = Tableless, multi-column, fluid width theme.
version = VERSION
!REG3XP1!>core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[all][] = custom.css
; Information added by drupal.org packaging script on 2008-06-19
version = "6.x-2.12"
core = "6.x"
project = "contented7"
datestamp = "1213867807"

во-первых, мне интересно где тогда для этой темы прописаны регионы и что за файл custom.css, которого нет в папке с темой?
во-вторых, когда я добавляю свой регион (по принципу, описаному выше), то у меня один мой регион заменяет все регионы темы, в том время как при аналогичных действиях в других темах, мой регион добавляется без всяких проблем, ну, кроме тех, о которых я писал уже :)


Опубликовано spown в сб, 06/06/2009 - 21:53.

"SeDo4" написал(а):

хех, разобрался (сам не поможешь - никто не поможет :) )

тогда "вопрос на засыпку": как все-же регионы разместить в строку?
спасибо за ответ :)

UPD: все, теперь и я разобрался :) расместил в строку с помощью «table» :)


Опубликовано NurOff в вс, 07/06/2009 - 05:31.

"SeDo4" написал(а):

во-первых, мне интересно где тогда для этой темы прописаны регионы и что за файл custom.css, которого нет в папке с темой?

; $Id: contented7.info,v 1.1 2008/04/11 02:30:59 hswong3i Exp $
name = Contented7
description = Tableless, multi-column, fluid width theme.
regions[header] = Header
regions[reklama3] = Reklama 3
regions[left] = Left sidebar
regions[reklama1] = Reklama 1
regions[content] = Content
regions[reklama2] = Reklama 2
regions[right] = Right sidebar
regions[reklama4] = Reklama 4
regions[footer] = Footer
version = VERSION
!REG3XP1!>core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[all][] = custom.css
 
; Information added by drupal.org packaging script on 2009-05-14
version = "6.x-2.15"
core = "6.x"
project = "contented7"
datestamp = "1242291918"

Никто не мешает сделать вот так.
div id="sidebar-left" class="sidebar"><!-- begin sidebar-left -->
      <?php if ($search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
      <strong><?php print $reklama3; ?></strong><?php print $left ?>

Ну и так далее.
Файл custom.css создаем сами, пишем туда все свои дополнения. И при следующем обновлении этой темы, вам не нужно будт вспоминать, что и как вы делали.

"SeDo4" написал(а):

во-вторых, когда я добавляю свой регион (по принципу, описаному выше), то у меня один мой регион заменяет все регионы темы, в том время как при аналогичных действиях в других темах, мой регион добавляется без всяких проблем, ну, кроме тех, о которых я писал уже :)

Смотрим выше. Регион Reklama3 после формы поиска по сайту, но выше левых блоков.


Опубликовано Kremenetskiy в вт, 23/06/2009 - 17:34.

Ееее, у меня получилось!
Супер, можно понаделать регионов кучу :)
Большое спасибо!


Опубликовано NurOff в сб, 04/07/2009 - 12:06.

regions[header] = Header
regions[reklama3] = Reklama 3
regions[left] = Left sidebar
regions[reklama1] = Reklama 1
regions[content] = Content
regions[reklama2] = Reklama 2
regions[right] = Right sidebar
regions[reklama4] = Reklama 4
regions[footer] = Footer

Ну вдогонку. Я не случайно разместил в такой последовательности регионы.
Порядок размещания здесь отвечает за местонахождение регионов во вкладке БЛОКИ.
Про тот самый файл stylesheets[all][] = custom.css
Название custom - это конечно произвольное, естественно пойдет любое.
В содержимом у меня описания для рекламных блоков.
К примеру справа regions[reklama2] = Reklama 2 в регион разместил погодный информер, и чтоб дизайн информера и самого региона совпадал описания сделал в custom.css.
Вычилсительные силы, к чему это я. В общем, про то что, любые ваши наработки сделанные для одной темы можно легко переносить в другие темы. И так же не потереть свои наработочки.


Опубликовано nicklasweb в пт, 11/09/2009 - 16:03.

Коммент удаляю


Опубликовано Ne_L в ср, 28/04/2010 - 12:19.

А почему если я в Create page напишу

<?php 
print $header;
?>

то у меня ничего не выводится, хочу вывести в теле материала заголовок.


Опубликовано RxB в ср, 28/04/2010 - 12:04.

Потому что он и не будет выводиться, откуда ему там взяться?


Опубликовано Ne_L в ср, 28/04/2010 - 12:22.

поправил предыдущее сообщение,
но ведь в {teme}.info этот регион прописан, если в page.tpl.php работает то я думал и в теле ноды заработать должно.


Опубликовано RxB в ср, 28/04/2010 - 12:28.

Совершенно не должен, темизация просходит в конце


Опубликовано chel в пт, 13/08/2010 - 18:22.

добавил в .info
регион:

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[mymymy] = мой

и в файл темы page.tpl.php
<?php print $mymymy; ?>

1) в блоках он отображается admin/build/block (причем просто подсвечивается цветом)
2) создал в папке своей темы файлик block-mymymy.tpl.php
в файл вставлял любой текст
3) на всякий случай скопировал в папку с темой block.tpl.php
4) чистил кэшы, отключал тему

блок не появляется на сайте, куда копать дальше?


Опубликовано volocuga@drupal.org в пт, 13/08/2010 - 23:13.

Ну а сам то блок в регион муму включили?


Опубликовано chel в сб, 14/08/2010 - 06:54.

хм....нет, его только через админку включать?


Опубликовано RxB в сб, 14/08/2010 - 06:57.

Тогда как вы хотите увидеть пустой регион?


Опубликовано chel в сб, 14/08/2010 - 08:30.

спасибо.....понял теперь, что нужно создать блок в регионе, тогда подцепляется файл block-mymymy.tpl.php, где (mymymy название региона)
удачи!!


Опубликовано ND в сб, 04/12/2010 - 11:06.

Спасибо коротко и ясно.


Опубликовано zloy-doctor в чт, 27/01/2011 - 18:56.

помогите пожалуйста, все прописал

область создалась, но как то криво


Опубликовано NurOff в пн, 31/01/2011 - 00:24.

"zloy-doctor" написал(а):

помогите пожалуйста, все прописал
<?php print $header2?>

область создалась, но как то криво

"NurOff" написал(а):

Про тот самый файл stylesheets[all][] = custom.css
Название custom - это конечно произвольное, естественно пойдет любое.
В содержимом у меня описания для рекламных блоков.
К примеру справа regions[reklama2] = Reklama 2 в регион разместил погодный информер, и чтоб дизайн информера и самого региона совпадал описания сделал в custom.css.

Вам хотя бы где-то надо указать где ваш регион размещать. Обтекания, отступы... В общем стили...

Или написать название используемого шаблона и куда вы хотите разместить регион. Возможно кто-о уже делал подобное и вам подскажут готовое решение для вашего шаблона.


Опубликовано zloy-doctor в вт, 15/02/2011 - 22:27.

Область мне нужна для меню в файле page.tpl.php я удалил

и в место вставил <?php print $header2?>

Создалась область, я перенес в нее Superfish 6.x-1.6 дабы сделать норм меню) Но опять кривовато http://gosha.me/ скрин админки выше (((


Опубликовано Ateiri в вс, 10/07/2011 - 16:07.

template.php

<?php
/**
 * Generate regions of theme.
 */
function НазваниеТемы_regions() {
  return array(
    
'right' => t('right sidebar'),
    
'content' => t('content'),
    
'header' => t('header'),
    
'footer' => t('footer'),
    
'content_header' => t('header of main content'),
    
'prefooter' => t('prefooter'),
    
'inline_for_node' => t('inline region for nodes')
  );
}
?>

НазваниеТемы.info

regions[right] = right sidebar
regions[content] = content
regions[header] = header
regions[footer] = footer
regions[content_header] = header of main content
regions[prefooter] = prefooter
regions[inline_for_node] = inline region for nodes

Следовательно и вызываем в page.tpl.php <?php if ($prefooter) print $prefooter?>
<?php if($inline_for_node): print $inline_for_node; endif; ?>

'right' => t('right sidebar') - Правое меню
'left' => t('left sidebar') - Левое меню
'prefooter' => t('prefooter') - Новый регион, место перед подвалом.


Опубликовано knife в пн, 29/08/2011 - 15:46.

Подниму тему. Объясните человеку незнакомому с РНР как правильно прописать регионы при помощи table чтобы они выводились в строчку?

  <?php if (!$in_overlay): // hide in overlay ?>
    <?php if ($page['tertiary_content']): ?>
      <div id="tertiary-content">
        <?php print render($page['tertiary_content']); ?>
      </div>
    <?php endif; ?> 
    <?php if ($page['tertiary2_content']): ?>
      <div id="tertiary2-content">
        <?php print render($page['tertiary2_content']); ?>
      </div>
    <?php endif; ?> 
     <?php if ($page['tertiary3_content']): ?>
      <div id="tertiary3-content">
        <?php print render($page['tertiary3_content']); ?>
      </div>
    <?php endif; ?>

Сейчас они выводятся друг за другом вертикально, хотелось бы их разместить в горизонтальном порядке.


Опубликовано NurOff в вт, 30/08/2011 - 03:49.

Тему засоряете. Делайте обтекание блоков - CSS/float.
Таблицы еще проще.
Кто вам мешает в строку выставить регионы?

<table>
<tr>
<td>I регион</td>
<td>II регион</td>
<td>III регион</td>
</tr>
...
<table>

"knife" написал(а):

Объясните человеку незнакомому с РНР

Где тут PHP? В чистом виде работа с каскадными таблицами стилей(CSS) и с языком гипертекстовой разметки(HTML).


Опубликовано 0legka в пн, 12/12/2011 - 09:53.

таблицы рулят =))) очень удобно и самое главное всё панятно ))