На главной сайта сделать общую шапку для модулей

визуально объединить модули

#1 3 марта 2015 в 23:53
Движок InstantCMS 1.9
Собственно что-то никак не пойму как сделать следующее.

На главной странице выводятся модули, в т.ч… модули доски объявлений.
Вывожу их в 3 колонки, последние объявления из разделов Авто, Недвижимость, Услуги
и хотел бы чтобы они были визуально объединены общим фоном и над модулями чтобы была шапка с надписью "Доска объявлений".

Вот так должно быть (на главной):


Не понимаю как правильно объединить модули как бы в один контейнер и сделать такую шапку, если вношу соответствующие изменения в template.php, то эта шапка выводится и на тех страницах сайта, где она не нужна.
#2 3 марта 2015 в 23:57
classics,
для этих модулей создать отдельные модульные позиции. например top1, top2 и т д.
в начале блока с этими модульными позициями поставить условия если есть модуль top1 — блок с этими модулями — конец условия.
Затем включить показ модулей только на главной.
#3 4 марта 2015 в 00:11
Сделать позицию и привязать к ней css класс
#4 4 марта 2015 в 00:29
Для этих модулей модульные позиции есть, три модуля, в них объявления и выводятся, классы привязаны.
в template.php для них такой код:
  1.  
  2. <table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
  3. <tr>
  4. <td class="pos"><div class="center4"><?php cmsModule('center4'); ?></div></td>
  5. <td class="pos"><div class="center5"><?php cmsModule('center5'); ?></div></td>
  6. <td class="pos"><div class="center6"><?php cmsModule('center6'); ?></div></td>
  7. </tr>
  8. </table>
Но модули выводится просто в 3 колонки без общего фона и без надписи над ними "Доска объявлений", а надо как на скрине в первом посте,
чтобы под модулями был общий фон(на скрине белый) и сверху над ними надпись .
Показ модулей только на главной включён.

Сейчас они выводятся так:


а надо чтобы они были визуально объединены, как в первом посте:
Иллюстрация
#5 4 марта 2015 в 09:00
Ну так и делайте свой блок
  1.  
  2. <div style="padding:10px;background:blue;...........">
  3. <h2>Заголовок блока</h2>
  4. <table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
  5. <tr>
  6. <td class="pos"><div class="center4"><?php cmsModule('center4'); ?></div></td>
  7. <td class="pos"><div class="center5"><?php cmsModule('center5'); ?></div></td>
  8. <td class="pos"><div class="center6"><?php cmsModule('center6'); ?></div></td>
  9. </tr>
  10. </table>
  11. <div>
  12.  
Но я бы отказался от всех этих танцев с кучей позиций в таблице. Для решения задачи достаточно ровно одной позиции и пары-тройки стилей.
#6 4 марта 2015 в 13:16
Так я сначала так и сделал. Примерно как у Вас в примере делал свой блок с шапкой, но! вся проблема в том что этот блок(шапка от него) стала выводиться не только на главной, но и на всех страницах сайта, в этом то и проблема.
Может и криво, но может в template.php ещё и проверку на главную страницу вставить, типа:

  1.  
  2. if(ГЛАВНАЯ СТРАНИЦА){
  3. <div style="padding:10px;background:blue;...........">
  4. <h2>Заголовок блока</h2>
  5. }
  6. <table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
  7. <tr>
  8. <td class="pos"><div class="center4"><?php cmsModule('center4'); ?></div></td>
  9. <td class="pos"><div class="center5"><?php cmsModule('center5'); ?></div></td>
  10. <td class="pos"><div class="center6"><?php cmsModule('center6'); ?></div></td>
  11. </tr>
  12. </table>
  13. if(ГЛАВНАЯ СТРАНИЦА){
  14. </div>
  15. }
  16.  
тогда теоретически шапка заработает только на главной?
Какой код правильней вписать в if(ГЛАВНАЯ СТРАНИЦА){ не подскажете?
Как правильнее проверить в template.php что мы на главной? Что-то типа?
  1. if($_SERVER["REQUEST_URI"] == "/") {
или по другому?

А что за вариант вы предлагаете с одной позицией и парой-тройкой стилей?
Отказаться от всех этих танцев с кучей позиций в таблице, хоть это и стандартные модули сайта типа "Последние материалы" из нужных категорий, настраиваемые в админке в "Модули сайта", и писать свой модуль? Но это тоже не очень хороший выход, нужно углубляться во все эти php/mysql запросы к б/д.
Неудобно, так как не только эти модули хотелось бы объединить под одной шапкой на главной, но и например стандартные модули "последние темы форума", "блоги", "последние комментарии" под общей шапкой "Общение", а модули "новые организации", "новости организаций", "события организаций" компонента InstantMaps под общей шапкой "Справочник организаций":

Переписывать код стандартных модулей — явно тут не good такое решение.
#7 4 марта 2015 в 14:25
В общем сделал так.
в папке /includes/myphp создал файл spr.php куда включил этот код с нужными 3 модулями(колонками).
В админке создал новый модуль сайта с нужным заголовком и указал вставить этот файл spr.php
В template.php убрал код с 3 модулями и вместо него вставил код с этим новым модулем.
Все заработало.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.