PageRenderTime 54ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/engine/includes/frontend.php

https://gitlab.com/dashkodo/dneprrun
PHP | 185 lines | 160 code | 14 blank | 11 comment | 47 complexity | 02a135f4ba09df95a75a395b7ef023e3 MD5 | raw file
  1. <?php
  2. if(!defined('PARENT_FILE')){
  3. die('Running banned');
  4. }
  5. //die('сайт закрыт на обслуживание');
  6. include_once(INC_PATH . 'core.php');
  7. $language_file = parse_ini_file(LANG_PATH . $current_language . '.ini', true);
  8. $l = $language_file['l'];
  9. $smarty->assign('l', $l);
  10. $smarty->assign('current_language', $current_language);
  11. if($settings['site_close'] && !isset($_SESSION['user'])){
  12. $smarty->setTemplateDir(ROOT_PATH . 'design/');
  13. if($smarty->templateExists('site-close.tpl')){
  14. $smarty->display('site-close.tpl', '', $settings['design']);
  15. }
  16. else{
  17. print_r('Файл не найден - site-close.tpl');
  18. }
  19. die();
  20. }
  21. else{
  22. if(file_exists(ROOT_PATH . 'design/' . $settings['design'])){
  23. $smarty->setTemplateDir(ROOT_PATH . 'design/' . $settings['design'] . '/');
  24. $smarty->assign('design', $host . 'design/' . $settings['design'] . '/style/');
  25. }
  26. else{
  27. die('Папка с шаблоном отсутствует! Выберите в настройках шаблон и сохраните настройки.');
  28. }
  29. }
  30. // Каптча
  31. render_captcha();
  32. $smarty->assign('settings', $settings);
  33. // home page
  34. if(empty($query)){
  35. $queries[0] = $settings['home_page'];
  36. }
  37. elseif($queries[0] == $settings['home_page']){
  38. redirect( - 1);
  39. }
  40. // get list all modules and return variable $mapped_modules
  41. $mapped_modules = get_mapped_modules();
  42. // Генерация sitemap.xml
  43. if($query == 'sitemap.xml'){
  44. render_sitemap();
  45. }
  46. // search module
  47. $module = search_module($mapped_modules);
  48. // identifity page
  49. $uniqid_pages = array();
  50. $uniqid_pages[] = $module['id'];
  51. if(isset($module['item'])){
  52. $uniqid_pages[] = $module['id'] . 'i' . $module['item']['id'];
  53. }
  54. elseif(isset($module['category'])){
  55. $uniqid_pages[] = $module['id'] . 'c' . $module['category']['id'];
  56. }
  57. // breadcrumbs
  58. render_breadcrumbs();
  59. set_seo($settings['sitename'], $settings['title'], $settings['desc'], $settings['key']);
  60. // run module if found
  61. if($module_path = load_module($smarty,$module,MODULES_PATH)){
  62. include_once($module_path);
  63. }
  64. else{
  65. error_404();
  66. }
  67. // blocks
  68. $blocks = select_rows('blocks-' . $current_language, '`disp`=1', '`sort`, `id` DESC');
  69. if(count($blocks)){
  70. foreach($blocks as $block){
  71. foreach($uniqid_pages as $uniqid_page){
  72. if($block['show'] == '0'){
  73. $continue = false;
  74. break;
  75. }
  76. elseif($block['show'] == '1' && in_array($uniqid_page, $block['to_show'])){
  77. $continue = false;
  78. break;
  79. }
  80. elseif($block['show'] == '2' && !in_array($uniqid_page, $block['to_show'])){
  81. if(!$continue){
  82. $continue = false;
  83. }
  84. }
  85. else{
  86. $continue = true;
  87. }
  88. }
  89. if($continue){
  90. continue;
  91. }
  92. if($block['type'] == 1){
  93. $block['full_cont'] = get_block_in_file($block['file']);
  94. }
  95. if($block['pos'] == 0){
  96. $smarty->append('l_blocks', $block);
  97. }
  98. elseif($block['pos'] == 1){
  99. $smarty->append('t_blocks', $block);
  100. }
  101. elseif($block['pos'] == 2){
  102. $smarty->append('b_blocks', $block);
  103. }
  104. elseif($block['pos'] == 3){
  105. $smarty->append('r_blocks', $block);
  106. }
  107. elseif($block['pos'] == 4){
  108. if($block['disp_name']){
  109. $smarty->assign('n' . $block['id'], $block['name']);
  110. }
  111. $smarty->assign('b' . $block['id'], $block['full_cont']);
  112. }
  113. }
  114. }
  115. // menu
  116. if($menus = select_rows('menu-' . $current_language, 'disp=1', 'id DESC')){
  117. foreach($menus as $menu){
  118. if($menu['menu']){
  119. foreach($menu['menu'] as $key => $m){
  120. $menu['menu'][$key]['level'] = recursion_level($menu['menu'], $m['parent']);
  121. $active = false;
  122. if(!parse_url($m['link'], PHP_URL_SCHEME) && $m['link'][0] != '#'){
  123. if($m['link'] == $query || $m['link'] == $queries[0]){
  124. $active = true;
  125. if($m['parent']){
  126. foreach($menu['menu'] as $i => $value){
  127. if($value['id'] == $m['parent']){
  128. $menu['menu'][$i]['active'] = true;
  129. }
  130. }
  131. }
  132. }
  133. $menu['menu'][$key]['link'] = $host . $language_prefix . $m['link'];
  134. }
  135. else{
  136. if($m['link'] == $host . $query){
  137. $active = true;
  138. }
  139. }
  140. $menu['menu'][$key]['active'] = $active;
  141. }
  142. }
  143. $smarty->assign('m' . $menu['id'], $menu['menu']);
  144. }
  145. }
  146. if(empty($settings['title_format'])){
  147. $title = $seo['title'];
  148. }
  149. else{
  150. $title_tags = array(
  151. 'title' => $seo['title'],
  152. 'sitename'=> $settings['sitename']
  153. );
  154. $title = $settings['title_format'];
  155. foreach($title_tags as $tag => $value){
  156. if(strpos($title, '%' . $tag . '%') !== false){
  157. $title = str_ireplace('%' . $tag . '%', $value, $title);
  158. }
  159. }
  160. }
  161. $smarty->assign('title', $title);
  162. $smarty->assign('desc', $seo['desc']);
  163. $smarty->assign('key', $seo['key']);
  164. if(isset($_SESSION['profile'])) $smarty->assign('profile', $_SESSION['profile']);
  165. if($smarty->templateExists('index.tpl')){
  166. $smarty->display('index.tpl', '', $settings['design']);
  167. }
  168. else{
  169. die('Файл не найден - index.tpl');
  170. }
  171. ?>