За последние 24 часа нас посетили 30644 программиста и 1479 роботов. Сейчас ищут 808 программистов ...

Проблема с использованием Twig

Тема в разделе "PHP для новичков", создана пользователем dots_rei, 31 авг 2010.

  1. dots_rei

    dots_rei Активный пользователь

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    Доброго времени суток!

    Возникла проблема, не могу разобраться.

    Использую в проекте шаблонизатор twig.

    Главный файл-шаблон имеет вид:
    HTML:
    1.  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    4. <html xmlns="http://www.w3.org/1999/xhtml">
    5.  
    6. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    7. <link rel="stylesheet" type="text/css" href="/css/main.css">
    8. {% block styles %}{% endblock %}
    9. <title>Сайт</title>
    10. </head>
    11.  
    12.     {% block body %}{% endblock %}
    13. </body>
    14.  
    15. </html>
    16.  
    Дочерние файлы имеют вид:
    HTML:
    1.  
    2. {% extends "main.html" %}
    3.  
    4. {% block styles %}
    5. <link rel="stylesheet" type="text/css" href="/css/admin.css">
    6. {% endblock %}
    7.  
    8. {% block body %}
    9. <img src="/images/p1.jpg">
    10. Тут какое-то содержимое
    11. {% endblock %}
    12.  
    Использую в проекте чпу, и строка разбирается таким образом:
    PHP:
    1.  
    2. <?php
    3.     $path=$_SERVER['REQUEST_URI'];
    4.     $path=explode('/',$path);
    5.     if ($path[1]=='')
    6.         $name_module=DEFAULT_MODULE;
    7.     else
    8.         $name_module=$path[1];
    9. ?>
    10.  
    После этого идет формирование пути для полученного $name_module, проверка, существует ли такой путь (если нет, выдается сообщение об ошибке) и включение соответствующего файла.

    Собственно проблема:
    Выдается сообщение об ошибке о том, что такого пути не существует, для всех файлов, где в блоках для шаблонизатора ({% block styles %}, {% block body %}) существуют теги, имеющее пути (css, image).
    Когда удаляю эти строки в соответствующих дочерних шаблонах, сообщение об ошибке исчезает.

    Как решить данную проблему? Заранее спасибо за помощь
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Составьте список папок для исключений (css, images) и не обрабатывайте их.
    Ваш код
    PHP:
    1.  <?php
    2.      $path=$_SERVER['REQUEST_URI'];
    3.      $path=explode('/',$path);
    4.      if ($path[1]=='')
    5.          $name_module=DEFAULT_MODULE;
    6.      else
    7.          $name_module=$path[1];
    8.  ?>
    видимо обрабатывает все запросы.
     
  3. dots_rei

    dots_rei Активный пользователь

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    neverlose
    спасибо! проблема решена :)