(Решено) Создание Региона в конкретном! месте страници, как?

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

Аватар пользователя Gelik Gelik 19 февраля 2009 в 14:12

Привет, прошу помочь в решении следующей задачи -
Вступление -
Дезайн верхней части моего сайта похож на дезайн drupal.ru, то есть, в левом верхнем углу распологается логотип, который выводится кодом -

<?php if ($logo): ?>                                   
<a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>">
<img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
</a>

из page.tpl.php

В правом верхнем углу распологается поле для поиска, то есть, весь блок кода верхней части сайта такой -

<div id="page">
        <div id="masthead">
                        <div id="header" class="clear-block">

                                <?php print $search_box; ?>  
                                <?php if ($logo): ?>                                   
                                      <a href="<?php print $base_path; ?>" title="<?php print t('Home'); ?>">
                                      <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
                                      </a>

                        </div> <!-- /header -->
               

        </div>

Логотип и поле для поиск распологаютя на одном уровне относительно горизонта, то есть поле для поиска расположено не ниже и не выше логотипа, а паралено ему, только в правой части сайта, точно так же, как и на drupal.ru

Я совершенно не разбираюст в php, но методом "тыка" понял что к чему......

Теперь задача -

Нужно поместить новый регион между логотипом и полем для поиска, то есть, туда, где на drupal.ru располагается меню (О Drupal | Документация | Семинары | Правила | Теги )

я завел новый регион в template.php -

'above' => t('Above'),

И начал эксперементировать с page.tpl.php, пытался во все возможные места кода, написанного выше, вставить новый регион, код -

<div id="above" class="clear-block">
<?php if ($above): ?><?php print $above; ?><?php endif; ?>
</div>

При любом расположении, регион 'above' получается размером на всю ширину сайта и распологается, или над логотипом и полем для поиска, или под поиском, но над логтипом, либо под логотипом и под поском, в общем, никак не могу расположить его между логотипом и поиском.

Прошу помощи, подскажите, как же его расположить в нужном мне месте?

Комментарии

Аватар пользователя Gelik Gelik 19 февраля 2009 в 15:33

"EzS" wrote:
Учите css

Полазил в style.css темы, которую натянул на drupal, там нет никаких упоминаний о размерах, или расположении какого либо региона.......не понимаю, при чем тут css.....мне кажется решение где-то в php, а вот где, не знаю......

Аватар пользователя Stan.Ezersky Stan.Ezersky 19 февраля 2009 в 15:47

Вы хотите, чтобы ваш блок автоматически красиво прописался на странице без позиционирования/указания размеров/выравнивая и т.п.?

Аватар пользователя Gelik Gelik 19 февраля 2009 в 15:53

"EzS" wrote:
Вы хотите, чтобы ваш блок автоматически красиво прописался на странице без позиционирования/указания размеров/выравнивая и т.п.?

Мне бы подошло любое решение, если есть возможность сделать это автоматически, то можно и так, только как? ))
Если нельзя автоматически, а нужно где-то указывать размеры, позиционирование и т.д., то и так можно, только где это указывать?

Аватар пользователя Stan.Ezersky Stan.Ezersky 19 февраля 2009 в 16:02

"Gelik" wrote:
Если нельзя автоматически, а нужно где-то указывать размеры, позиционирование и т.д., то и так можно, только где это указывать?

В style.css

Аватар пользователя Gelik Gelik 19 февраля 2009 в 16:11

"EzS" wrote:
В style.css

Если не сложно, подскажите где почитать про то, как это можно сделать с помощью css

Аватар пользователя Stan.Ezersky Stan.Ezersky 19 февраля 2009 в 16:18

Батенька, с вашими знаниями, которых как видно нет, вам стоит найти книжку по css и очень внимательно её прочитать.

Я могу посоветовать:
Э. Мейер "CSS - каскадные таблицы стилей"
К. Шмитт "CSS. Рецепты программирования"
В инете есть pdf-версии

Не хотите читать, google в помощь

Аватар пользователя kalugin kalugin 19 февраля 2009 в 16:25

Оберните свой регион в div например

<div class="имя_класса"><?php print $above; ?></div>

и далее в CSS задайте позицию, размер и проч для элемента .имя_класса

Аватар пользователя Gelik Gelik 19 февраля 2009 в 16:42

"kalugin" wrote:
и далее в CSS задайте позицию, размер и проч для элемента .имя_класса

Спасибо, а в "имя_класса" может быть использовано любое слово, например "abc", или есть какие то специальные (обязательные) названия, например "clear-block"? Кстати, мой регион, вроде, уже обернут -

div id="above" class="clear-block">
?php if ($above): ?><?php print $above; ?><?php endif; ?>
/div>

Значит, по идее, мне остальсь только прописать в style.css его позицию, размер и проч.?
Может быть, еще подскажите, как это прописать в style.css? мне бы хватило любой вырезки из кода для примера, что бы теги посмотреть, по аналогии, думаю, я бы справился......заранее благодарен!!!

Аватар пользователя Stan.Ezersky Stan.Ezersky 19 февраля 2009 в 18:58

Gelik, за вас может быть напишут класс, но если вы не можете справиться с маленьким блоком, то что же будет в дальнейшем? Будите просить: "сделайте за меня, а"?
Вряд ли пройдут такие вещи.

Аватар пользователя Gelik Gelik 19 февраля 2009 в 22:23

И так, пишу решение проблемы, для тех у кого она возникнет в будующем, решение оказалось до смешного простым, странно, что его никто не озвучил, кстати, css, как я и предполагал, здесь оказался не при чем -

В общем к коду вывода региона в page.tpl.php -

<div id="above" class="clear-block">
<?php if ($above): ?><?php print $above; ?><?php endif; ?>
</div>

нужно добавить простые характеристики, а именно - "style="width: Значение px; height: Значение px", например, вот так -

<div id="above" class="clear-block" style="width: 600px; height: 10px;">
<?php if ($above): ?><?php print $above; ?><?php endif; ?>
</div>

Размер региона становится таким, какой нужен и легко помещается между логотипом и полем для поиска.

Аватар пользователя Stan.Ezersky Stan.Ezersky 19 февраля 2009 в 22:43

"Gelik" wrote:
кстати, css, как я и предполагал, здесь оказался не при чем -

а это что?
"Gelik" wrote:
width: Значение px; height: Значение px

css, в общем, совсем не при чём-) Спасибо, поржал-))

<div id="above" class="clear-block" style="width: 600px; height: 10px;">

Прописать свойства в css не судьба, проще завалить страницу такой вот фигнёй

Не советуйте подобной чуши, особенно ткать css в тело страницы (бывают случаи, когда это нужно, но здесь, не тот случай). У каждого не только тема гарланд стоит и класс блока может быть с выравниванием или с позиционированием.
Живой пример:
у класса (идентификатора) блока с логотипом стоит float: left;, куда покатиться ваш блок с id above?

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

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

Аватар пользователя Gelik Gelik 19 февраля 2009 в 22:56

"EzS" wrote:
Прописать свойства в css не судьба, проще завалить страницу такой вот фигнёй

Не советуйте подобной чуши, особенно ткать css в тело страницы (бывают случаи, когда это нужно, но здесь, не тот случай). У каждого не только тема гарланд стоит и класс блока может быть с выравниванием или с позиционированием.
Живой пример:
у класса (идентификатора) блока с логотипом стоит float: left;, куда покатиться ваш блок с id above?

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

И так, что и куда советуете прописать? (Паралельно читаю умные книги)

Аватар пользователя Stan.Ezersky Stan.Ezersky 19 февраля 2009 в 23:55

Ваша настырность мне начинает нравится-)

<div id="above" class="clear-block" style="width: 600px; height: 10px;">
<?php if ($above): ?><?php print $above; ?><?php endif; ?>
</div>

так

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

или так

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

То есть выбираете: или идентификатор, или класс. Если нет обращения к этому блоку, то стоит поставить класс. Идентификатор может быть использован вместе с классом

В style.css пропишем

#above {width: 600px; height: 10px; } /*Это комментарий к идентификатору т.е. id="above")*/

или

.above {width: 600px; height: 10px; } /*Это комментарий к классу (т.е. class="above")*/

Вот тут очень нужный справочник (CSS 2.1).

P.S. Удачи в начинаниях. Всё-таки советую книги, про которые я написал выше.

Аватар пользователя Gelik Gelik 20 февраля 2009 в 2:02

"EzS" wrote:

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