Помогите с разборкой шаблона _default_

#1 22 января 2013 в 11:10
Ребят нужна помощь пытаюсь разобраться как instant понимает где и че выводить, т.е. например как он понимает где вывести шаблон и модули только на главной, где выводить только полную статью без других модулей ну и т.д.
Пожалуйсто прокоментируйте кто нибудь дефолтный шаблон а именно template.php.
  1. <?php
  2.  
  3. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  4. $inUser = cmsUser::getInstance();
  5. $inPage = cmsPage::getInstance();
  6.  
  7. $mod_count['top'] = cmsCountModules('top');
  8. $mod_count['left'] = cmsCountModules('left');
  9. $mod_count['sidebar'] = cmsCountModules('sidebar');
  10. $mod_count['user1'] = cmsCountModules('user1');
  11.  
  12. ?>
  13. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  14. <html xmlns="http://www.w3.org/1999/xhtml">
  15. <head>
  16. <!-- HEAD !-->
  17. <?php cmsPrintHead(); ?>
  18. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  19. <?php if($inUser->is_admin){ ?>
  20. <script src="/admin/js/modconfig.js" type="text/javascript"></script>
  21. <script src="/templates/chutveselej/js/nyromodal.js" type="text/javascript"></script>
  22. <link href="/templates/chutveselej/css/modconfig.css" rel="stylesheet" type="text/css" />
  23. <link href="/templates/chutveselej/css/nyromodal.css" rel="stylesheet" type="text/css" />
  24.  
  25. <?php } ?>
  26. <link href="/templates/chutveselej/css/reset.css" rel="stylesheet" type="text/css" />
  27. <link href="/templates/chutveselej/css/text.css" rel="stylesheet" type="text/css" />
  28. <link href="/templates/chutveselej/css/styles.css" rel="stylesheet" type="text/css" />
  29. <link href="/templates/chutveselej/css/closed.css" rel="stylesheet" type="text/css" />
  30. <script type="text/javascript" src="/templates/chutveselej/js/jquery.treeview.js"></script>
  31. <script type="text/javascript" src="/templates/chutveselej/js/jquery.cookie.js"></script>
  32. <script type="text/javascript" src="/templates/chutveselej/js/jquery-fluid16.js"></script>
  33. <script src="/templates/chutveselej/js/totop.js" type="text/javascript"></script>
  34. <script language="javascript">
  35. $(document).ready(function(){
  36. $("#navigation").treeview({
  37. animated: "slow",
  38. collapsed: true,
  39. unique: true,
  40. persist: "location"
  41. });
  42. });
  43. </script>
  44. </head>
  45.  
  46. <body>
  47. <?php if (cmsConfig::getConfig('siteoff') && $inUser->is_admin) { ?>
  48. <div style="margin:4px; padding:5px; border:solid 1px red; background:#FFF; position: fixed;opacity: 0.8; z-index:999"><strong style="color:red">Сайт отключен.</strong> Только администраторы видят его содержимое.</div>
  49. <?php } ?>
  50. <div id="container">
  51. <div id="header">
  52. <div style="float:left; width:370px; height:68px">
  53.  
  54. </div>
  55. <div id="head">
  56. <?php $inPage->printModules('head');?>
  57. </div>
  58. <div style=" float:right; width:360px; height:68px">
  59. <div>
  60. <form name="searchform" action="/index.php" method="get">
  61. <input type="hidden" name="view" value="search"/>
  62. <input id="search_text" name="query" type="text" tabindex="1" onfocus="if(this.value=='Поиск...') this.value='';" onblur="if(this.value=='') this.value='Поиск...';" value="Поиск..." maxlength="200"/>
  63. <input id="search_button" name="gosearch" type="submit" alt="Поиск" value=" " onclick="document.searchform.submit()"/>
  64. </form>
  65. </div>
  66. </div>
  67. <div id="sitename" style="float:left; width:370px; height:60px padding:0px;">
  68. <a href="/"></a>
  69. </div>
  70. <div style=" float:right; width:630px; height:60px">
  71. <?php if (!$inUser->id){ ?>
  72. <div class="mod_user_menu">
  73. <span class="register"><a href="/registration">Регистрация</a></span>
  74. <span class="login"><a href="/login">Вход</a></span>
  75. </div>
  76. <?php } else { ?>
  77. <?php $inPage->printModules('header'); ?>
  78. <?php } ?>
  79. </div>
  80. </div>
  81. <div id="topmenu">
  82. <?php $inPage->printModules('topmenu');?>
  83. </div>
  84. <div id="center">
  85.  
  86. <?php if ($mod_count['top']) { ?>
  87. <div id="topwide" class="container_12">
  88. <div class="grid_12" id="topmod"><?php $inPage->printModules('top'); ?></div>
  89. </div>
  90. <div style="clear: both;"></div>
  91. <?php } else { ?>
  92. <div style="clear: both;height:15px;"></div>
  93. <?php } ?>
  94.  
  95. <?php if ($mod_count['left']) { ?>
  96. <?php if ($mod_count['sidebar']){ ?>
  97. <!-- ***************** all ******************* -->
  98. <div id="lmainr">
  99. <div id="pathway">
  100. <?php cmsPathway('&#8594;'); ?>
  101. </div>
  102. <div id="left" style="width: 240px; float: left;">
  103. <?php $inPage->printModules('left'); ?>
  104. </div>
  105. <div id="main" style="width: 484px; float: left;padding-left:7px;padding-right:7px;">
  106.  
  107. <?php $inPage->printModules('maintop'); ?>
  108.  
  109. <?php $messages = cmsCore::getSessionMessages(); ?>
  110. <?php if ($messages) { ?>
  111. <div class="sess_messages">
  112. <?php foreach($messages as $message){ ?>
  113. <?php echo $message; ?>
  114. <?php } ?>
  115. </div>
  116. <?php } ?>
  117.  
  118. <?php if($inPage->page_body){ ?>
  119. <div class="component">
  120. <?php $inPage->printBody(); ?>
  121. </div>
  122. <?php } ?>
  123. <?php $inPage->printModules('mainbottom'); ?>
  124. </div>
  125. <div id="sidebar" style="width: 240px; float: right;">
  126. <?php $inPage->printModules('sidebar'); ?>
  127. </div>
  128. <div style="clear: both;"></div>
  129. </div>
  130. <!-- ************************************ -->
  131. <?php } else { ?>
  132. <!-- ****************** left center ****************** -->
  133. <div id="lmain">
  134. <div id="pathway">
  135. <?php cmsPathway('&#8594;'); ?>
  136. </div>
  137. <div id="left" style="width: 240px; float: left;">
  138. <?php $inPage->printModules('left'); ?>
  139. </div>
  140. <div id="main" style="width: 730px; float: right;">
  141. <?php $inPage->printModules('maintop'); ?>
  142.  
  143. <?php $messages = cmsCore::getSessionMessages(); ?>
  144. <?php if ($messages) { ?>
  145. <div class="sess_messages">
  146. <?php foreach($messages as $message){ ?>
  147. <?php echo $message; ?>
  148. <?php } ?>
  149. </div>
  150. <?php } ?>
  151.  
  152. <?php if($inPage->page_body){ ?>
  153. <div class="component">
  154. <?php $inPage->printBody(); ?>
  155. </div>
  156. <?php } ?>
  157. <?php $inPage->printModules('mainbottom'); ?>
  158. </div>
  159. <div style="clear: both;"></div>
  160. </div>
  161. <!-- ************************************ -->
  162. <?php } ?>
  163. <?php } else { ?>
  164. <?php if ($mod_count['sidebar']){ ?>
  165. <!-- ****************** center right****************** -->
  166. <div id="mainr">
  167. <div id="pathway">
  168. <?php cmsPathway('&#8594;'); ?>
  169. </div>
  170. <div id="main" style="width: 730px; float: left;">
  171. <?php $inPage->printModules('maintop'); ?>
  172.  
  173. <?php $messages = cmsCore::getSessionMessages(); ?>
  174. <?php if ($messages) { ?>
  175. <div class="sess_messages">
  176. <?php foreach($messages as $message){ ?>
  177. <?php echo $message; ?>
  178. <?php } ?>
  179. </div>
  180. <?php } ?>
  181.  
  182. <?php if($inPage->page_body){ ?>
  183. <div class="component">
  184. <?php $inPage->printBody(); ?>
  185. </div>
  186. <?php } ?>
  187. <?php $inPage->printModules('mainbottom'); ?>
  188. </div>
  189. <div id="sidebar" style="width: 240px; float: right;">
#2 22 января 2013 в 11:46

Пожалуйсто прокоментируйте кто нибудь дефолтный шаблон а именно template.php.

Flaer
На примере шаблона комментировать нечего...
Понимайте, шаблон служит только графической оболочкой, сам по себе он не "думает" что выводить на главной а что нет. Он только расставляет все в нужном порядке (ты отступишь 10рх, ты будешь с лева, а ты с права.)
Если ничего не передается в шаблон, то соответственно ничего отображаться не будет.
Единственное что можно прокомментировать, это строки типа
  1. <?php $inPage->printModules('top'); ?>
Что означает здесь вывести все что имеет позицию 'top'
  1. $mod_count['top'] = cmsCountModules('top');
Означает: не показывать этот блок до тех пор пока в этой позиции не будет опубликован модуль
(Это нужно для того что бы небыло пустых пространств, отключите все модули с права, и правая колонка исчезнет)
Примерно так…
#3 22 января 2013 в 13:02
Так теперь почти все понятно, только скажите а зачем они объявляются в начале? Обязательно ли это?
#4 22 января 2013 в 13:42
что-то на дефолтный он не похож. какая версия движка у вас?
#5 22 января 2013 в 13:45
если не объявить $mod_count['top'] = cmsCountModules('top'); то проверки не будет и выводитс код будет всегда. даже если не выведен туда мод.

  1. <?php if (cmsConfig::getConfig('siteoff') && $inUser->is_admin) { ?>
  2. <div style="margin:4px; padding:5px; border:solid 1px red; background:#FFF; position: fixed;opacity: 0.8; z-index:999"><strong style="color:red">Сайт отключен.</strong> Только администраторы видят его содержимое.</div>
  3. <?php } ?>
если сайт выключен и пользователь админ. показываем это
  1.  
  2.  
  3. <?php if (!$inUser->id){ ?>
  4. <div class="mod_user_menu">
  5. <span class="register"><a href="/registration">Регистрация</a></span>
  6. <span class="login"><a href="/login">Вход</a></span>
  7. </div>
  8. <?php } else { ?>
  9. <?php $inPage->printModules('header'); ?>
  10. <?php } ?>
если авторизованный выводи это, а если нет то второй кусок.
остальное вроде описали. все по подобию.
#6 22 января 2013 в 13:48

зачем они объявляются в начале? Обязательно ли это?

Flaer
таким образом модули подключаются.
#7 22 января 2013 в 14:00
picaboo
1.10
#8 22 января 2013 в 14:06
А как мне сделать например на главной один шаблон, а на других другой?
#9 22 января 2013 в 14:30

А как мне сделать например на главной один шаблон, а на других другой?

Flaer
Это назначается в меню.
Иллюстрация
#10 22 января 2013 в 14:39
То есть для каждого раздела свой шаблон нужно делать?
#11 22 января 2013 в 14:50

То есть для каждого раздела свой шаблон нужно делать?

Flaer
а есть другие варианты?
Можно просто сменять стили, подгрузкой css при навигации, но если вам нужен новый шаблон на определенном разделе, то конечно он должен существовать!
если хотите уникальный шаб для каждого пункта меню, то нужно создать эти шаблоны и загрузить!
иначе от куда они будут подгружаться?)
#12 22 января 2013 в 14:56
А вот в данном коде который выше какой код отвечает за вывод всех новостей и вывод полной?
#13 22 января 2013 в 15:10

за вывод всех новостей и вывод полной?

Flaer
вывод контента может быть в любом модуле, если вы об этом.
вывод модулей в шаблоне обозначаются, например для шапки
  1. <?php $inPage->printModules('header'); ?>
для верхнего меню
  1. <?php $inPage->printModules('topmenu');?>
и т.д.
#14 22 января 2013 в 16:46

А вот в данном коде который выше какой код отвечает за вывод всех новостей и вывод полной?

Flaer
за это отвечает сам компонент и его шаблоны!
а template.php всего содержит позиции для вывода!
#15 22 января 2013 в 22:09
кстати по шаблону. в каком файле чего заменить, чтобы в профиле вместо

Мой контент
Блог Файлы Объявления

было

Мой контент
Блог Файлы мои фото

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.