Вопрос по поводу создания собственного шаблона.

#1 16 мая 2011 в 17:26
Всем привет! Скажите, я вот хочу создать шаблон для сайта, но чтобы он был динамическим, т.е. информация отображалась на сайте с учетом включенных колонок — правой или левой. Я внес необходимые правила в индексный файл шаблона через php, но у меня эти правила работаю только если на сайте включена правая колонка и основной контент или левая колонка и основной контент. А как сделать, чтобы когда включаешь обе колонки и правую и левую центральный блок с контентом не съезжал вниз? Я так понимаю надо добавить еще одно правило, которое определяет что на сайте включены обе колонки. Спасибо заранее…
#2 16 мая 2011 в 18:12
или необходимо переопределить стили ксс, блок контента может просто “выталкиваться” вниз если нарушает нормальный поток элементов, например фиксированными размерами или определением позиции (position) или обтеканием (float)…
#3 16 мая 2011 в 18:16

Я внес необходимые правила в индексный файл шаблона через php, но у меня

Zaur

я так понял, проблема в верстке, а не в

Я так понимаю надо добавить еще одно правило, которое определяет что на сайте включены обе колонки.

Zaur
#4 16 мая 2011 в 18:31
2 div`а, один с фиксированной шириной.
Если нужна только одна колонка, то div в фиксированной шириной просто не выводится, тогда оставшийся div будет заполнять всю область.
#5 16 мая 2011 в 18:53
у человека три колонки, а задаёт он просто условия видимости без задания свойств, насколько я понял…
#6 16 мая 2011 в 20:33

2 div`а, один с фиксированной шириной.

rim89

а я понял, что две колонки
#7 16 мая 2011 в 21:18
Ребят вы все неправильно поняли. Верстку я делаю правильно и стили я все указываю, я этих шаблонов на инстанте уже не один десяток сделал. Просто до этого они все были статическими, т.е. в трехколоночном шаблоне отключить к примеру правую колонку, то центральный блок не растягивается на ширину правой колонки, а остается на месте. Мне же нужно чтобы центральный блок с контентом растягивался и сужался в зависимости от появления колонок. Вот пример: У нас есть трехколоночный макет.
1. Включены все три колонки — центаральный блок принимает класс, к примеру, class="wrap", левая колонка class="left", правая class="right". В данном случае блоку wrap задаются одни стили.
2. Включена левая колонка и центральный блок, здесь уже центральный блок принимает class="wrap_left" и для него задаются уже другие стили
3. Включена правая колонка и центарльный блок, здесь уже задается class="wrap_right" и уже для центрального блока задаются другие стили.
4. Выключена и правая и левая колонки, центральный блок растягивается на всю ширину.
Теперь собственно вопрос, как прописать через php, чтобы центральный блок менял свой класс в зависимости от того какая колонка включена? Я это все не из воздуха взял. Данную методику применил на Джумла и все прекрасно работает, я пользовался шпаргалкой из другого шаблона. На иснстанте же нет такой шпаргалки, вот я и прошу у вас помощи.
#8 16 мая 2011 в 21:34
Допустим в левой колонке у вас позиция left, в правой — right

в начале шаблона вычисляете класс:
  1.  
  2. $is_left = cmsCountModules('left');
  3. $is_right = cmsCountModules('right');
  4.  
  5. if ($is_left && $is_right) {
  6. //включена левая и правая колонка
  7. $class = "both";
  8. } else if ($is_left) {
  9. //включена только левая колонка
  10. $class = "only_left";
  11. } else if ($is_right) {
  12. //включена только правая колонка
  13. $class = "only_right";
  14. } else {
  15. //боковых колонок нет
  16. $class = "no_sides";
  17. }
  18.  
Затем к центральному диву класс привязываете:

  1. <div class="<?php echo $class; ?>"> ... </div>
#9 17 мая 2011 в 09:34
Спасибо за помощь. Попробую ваш вариант. smile
#10 20 мая 2011 в 03:47
отличный универсальный шаблон получился..
Админ спасибо за быстрый ответ!!!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.