BODY для трехколоночного v.1.9.1 новый Smarty

Как сделать трехколоночный вывод в шаблоне, на новом Smarty

 
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 1783
Подскажите пожалуйста кто знает, как сделать вывод трехколоночной структуры на новом Smarty для шаблона v.1.9.1
на этом примере:
Код PHP:
  1. <?php if ($mod_count['left']) { ?>
  2. <?php if ($mod_count['sidebar']){ ?>
  3. <!-- ***************** all ******************* -->
  4.  
  5. <!-- ************************************ -->
  6. <?php } else { ?>
  7. <!-- ****************** left center ****************** -->
  8.  
  9. <!-- ************************************ -->
  10. <?php } ?>
  11. <?php } else { ?>
  12. <?php if ($mod_count['sidebar']){ ?>
  13. <!-- ****************** center right****************** -->
  14.  
  15. <!-- ************************************ -->
  16. <?php } else { ?>
  17. <!-- ****************** center ****************** -->
  18.  
  19. <!-- ************************************ -->
  20. <?php } ?>
  21. <?php } ?>
Два вечера сижу, ни как не получается. Пробовал по разному, но или ошибка, или только одна колонка...
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 531
Разве есть отличия? Это же php,а не tpl. Точно так же,как и в 1.9

http://instantcms.ru/forum/thread11190.html
Редактировалось: 2 раз (Последний: 9 июля 2012 в 11:59)
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 1783
• Ɍɕβoṙη •, отличие есть, вот вывод для двухколоночного дефолтного:
Код PHP:
  1. <div id="mainbody" class="container_12">
  2. <div id="main" class="{if $count_sidebar != 0}grid_8{else}grid_12{/if} count{$count_sidebar}">
  3.  
  4. {if $count_maintop > 0}
  5. {print_modules position="maintop"}
  6. {/if}
  7.  
  8. {if $messages}
  9. <div class="sess_messages">
  10. {foreach $messages as $message}
  11. {$message}
  12. {/foreach}
  13. </div>
  14. {/if}
  15.  
  16. {print_body}
  17.  
  18. {if $count_mainbottom > 0}
  19. {print_modules position="mainbottom"}
  20. {/if}
  21.  
  22. </div>
  23.  
  24. {if $count_sidebar > 0}
  25. <div class="grid_4" id="sidebar">{print_modules position="sidebar"}</div>
  26. {/if}
  27.  
  28. </div>
  29. </div>
  30. <div class="pad"></div>
<?php не используется.
Редактировалось: 2 раз (Последний: 9 июля 2012 в 12:18)
Посетитель
small user social cms
Медаль
Сообщений: 172
делал трехколоночный макет для twitter bootstrap, в нем сетка по другому называется но суть будет понятна ...

Код PHP:
  1.  
  2.  
  3. <div class="row-fluid">
  4.  
  5. {if $count_sidebar_left > 0}
  6. <div class="span3">
  7. {print_modules position="sidebar_left"}
  8. </div>
  9. {/if}
  10.  
  11. <div class="{if $count_sidebar_left != 0 }{if $count_sidebar_right != 0 }span6{else}span9{/if}{elseif $count_sidebar_right != 0}{if $count_sidebar_left != 0 }span6{else}span9{/if}{else}span12{/if}">
  12. {if $count_maintop > 0}
  13. {print_modules position="maintop"}
  14. {/if}
  15.  
  16. {if $messages}
  17. <div class="sess_messages">
  18. {foreach $messages as $message}
  19. {$message}
  20. {/foreach}
  21. </div>
  22. {/if}
  23.  
  24. {print_body}
  25.  
  26. {if $count_mainbottom > 0}
  27. {print_modules position="mainbottom"}
  28. {/if}
  29.  
  30. <div class="row-fluid">
  31. {print_pathway separator="—›"}
  32. </div>
  33. </div>
  34. {if $count_sidebar_right > 0}
  35. <div class="span3">
  36. {print_modules position="sidebar_right"}
  37. </div>
  38. {/if}
  39.  
  40. </div>
  41.  

основное тут

<div class="{if $count_sidebar_left != 0 }{if $count_sidebar_right != 0 }span6{else}span9{/if}{elseif $count_sidebar_right != 0}{if $count_sidebar_left != 0 }span6{else}span9{/if}{else}span12{/if}">

шаблон имеет 12 колонок
для левого или правого сайдбара отведено по три колонки
проверяем есть ли модули в левом сайдбаре, если есть задаем центральной области ширину в 9 колонок

теперь перед тем как задать центру ширину проверяем есть ли модули в правом сайдбаре и если есть то
центральной области задаем ширину 6

и последняя проверка, если есть модули в правом сайдбаре, и нет модулей в левом, то центральной области задаем ширину 9

если ни одно из условий не выполнено центральной области будет задана ширина 12

Переделать под любую сетку - дело пяти минут .....

span заменить на grid ..... или пересчитать если сетка на 16, 24 колонок ......
Если я молчу, это еще не значит, что я ничего не читаю.
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 1783
mexanik, Спасибо (+)
Попробую разобраться ...
Посетитель
small user social cms
Медаль
Сообщений: 172
skaz, может так будет понятней

отформатировал код (просто для красоты вывода в шаблоне все лишние пробелы были убраны)

Код PHP:
  1.  
  2.  
  3. <div class="
  4.  
  5. {if $count_sidebar_left != 0 }
  6.  
  7. {if $count_sidebar_right != 0 }
  8. span6
  9. {else}
  10. span9
  11. {/if}
  12.  
  13. {elseif $count_sidebar_right != 0}
  14.  
  15. {if $count_sidebar_left != 0 }
  16. span6
  17. {else}
  18. span9
  19. {/if}
  20.  
  21. {else}
  22. span12
  23. {/if}
  24.  
  25. ">
  26.  
  27.  
Если я молчу, это еще не значит, что я ничего не читаю.
Посетитель
small user social cms
Медаль
Сообщений: 172
можно было бы упростить, сделать проверку модулей в сайдбарах сразу в правом и левом, но смарти не понимает оператора and zlo

пришлось извращаться ....
Если я молчу, это еще не значит, что я ничего не читаю.
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 1783
mexanik, все вроде понятно...
а вот допустим
span6
span9
у меня

ellayout-cell elcontent style="width:500px;"
ellayout-cell elcontent style="width:750px;"
то есть задение ширины будет понимать, или вынести в стили? потому что у меня стиль один (хотя конечно можно и задать разные)
Редактировалось: 1 раз (Последний: 9 июля 2012 в 13:37)
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 1783
ellayout-cell elcontent style="width:500px;" ellayout-cell elcontent style="width:750px;"

все понял так не будет, задал через стили.
Все работает dance
mexanik, ещё раз спасибо, наверно многим понадобится.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: