Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с шаблонизатором
Форумы портала PHP.SU » » Если скрипт не работает » Проблема с шаблонизатором

Страниц (1): [1]
 

1. M1ke - 03 Марта, 2014 - 13:42:48 - перейти к сообщению
Есть шаблонизатор, вот его код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.   class QTemplate
  4.   {
  5.       private $content = NULL;
  6.       private $res_content = NULL;
  7.  
  8.       function QTemplate($tpl_dir, $tpl_name)
  9.       {
  10.           if ( ! file_exists($tpl_dir . $tpl_name . '.tpl') ) return;
  11.           $this->content = file_get_contents($tpl_dir . $tpl_name . '.tpl');
  12.       }
  13.  
  14.       function assign_vars($vars)
  15.       {
  16.           $this->res_content = $this->content;
  17.  
  18.           foreach( $vars as $blockname => $value )
  19.           {
  20.               $this->res_content = preg_replace('/{' . $blockname . '}/i', $value, $this->res_content);
  21.           }
  22.       }
  23.  
  24.       function render()
  25.       {
  26.           if ( $this->res_content == '' ) $this->res_content = $this->content;
  27.  
  28.           return $this->res_content;
  29.       }
  30.   }
  31.  
  32. ?>


Код вывода (index.php):

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.    $tpl_dir = 'template';
  3.    require 'inc/templater.php';
  4.    require 'inc/conf.php';
  5.   // Тут будет стоять получение списка форумов
  6.  
  7.   $main_tpl = new QTemplate($tpl_dir, 'index'); //--Загружаем шаблон index
  8.  
  9.   $content = '';
  10.  
  11.       // Включение данных в шаблон
  12.       $article_tpl->assign_vars( array(
  13.           'TITLE' =>         $forum_title,
  14.           'DESCRIBE' => $forum_describe,
  15.           'ADMINS' =>      require("inc/admins.php"),
  16.           'MODERS' =>      require("inc/moders.php"),
  17.           'NEW_ANSWERS' =>      require("inc/NEW_ANSWERS.php"),
  18.           'CONTENT' =>       require("inc/forums_list.php")
  19.           ) );
  20.       // Генерация HTML кода
  21.       echo $content .= $article_tpl->render();
  22. ?>


И код index.tpl:

CODE (html):
скопировать код в буфер обмена
  1. <!doctype html>
  2. <html>
  3. <head>
  4.   <meta charset="utf-8">
  5.   <link href="favicon.ico" rel="shortcut icon">
  6.   <link rel="stylesheet" href="css/style.css">
  7.   <title>{TITLE}</title>  
  8.   <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  9. </head>
  10.  
  11. <body>
  12.   <div class="container">
  13.  
  14.     <header class="header clearfix">
  15.       <div class="logo">{TITLE}</div>
  16.  
  17.       <nav class="menu_main">
  18.         <ul>
  19.           <li><a href="http://blockstudio.net">Главная</a></li>
  20.           <li><a href="index.php">Форум</a></li>
  21.         </ul>
  22.       </nav>
  23.     </header>
  24.  
  25.  
  26.     <div class="info">
  27.       <article class="hero clearfix">
  28.         <div class="col_100">
  29.           <p>{DESCRIBE}</p>
  30.         </div>
  31.       </article>
  32.  
  33.  
  34.       <article class="article clearfix">
  35.         <div class="col_33">
  36.           <h2>Администрация</h2>
  37.           <p>{ADMINS}</p>
  38.         </div>
  39.  
  40.         <div class="col_33">
  41.           <h2>Модераторы</h2>
  42.           <p>{MODERS}</p>
  43.         </div>
  44.  
  45.         <div class="col_33">
  46.           <h2>Обновления</h2>
  47.           <p>{NEW_ANSWERS}</p>
  48.         </div>
  49.  
  50.         <div class="clearfix"></div>
  51.  
  52.  
  53.         <h1>Список форумов</h1>
  54. <hr>  
  55. {CONTENT}
  56.         <div class="clearfix"></div>
  57.  
  58.       </article>
  59.     </div>
  60.    
  61.     <footer class="footer clearfix">
  62.       <div class="copyright">&copy <a href=http://blockstudio.net>Block Studio</a></div>
  63.    </footer>
  64.  
  65.  </div>
  66. </body>
  67. </html>


В результате всё это дело выдаёт обычное пустое окно Растерялся
Никак не могу найти ошибку...
2. DelphinPRO - 03 Марта, 2014 - 15:26:47 - перейти к сообщению
Пустого окна не бывает. Либо смотрите текст ошибки в исходном коде страницы в браузере. Либо включите отображение этих самых ошибок (вероятно выключены).
3. M1ke - 03 Марта, 2014 - 15:54:11 - перейти к сообщению
Дошли руки до журнала ошибок:

[Mon Mar 03 13:52:35 2014] [error] [client 91.221.179.72] PHP Notice: Undefined variable: article_tpl in /forum/index.php on line 12
[Mon Mar 03 13:52:35 2014] [error] [client 91.221.179.72] PHP Fatal error: Call to a member function assign_vars() on a non-object in /forum/index.php on line 12

 

Powered by ExBB FM 1.0 RC1