ФорумПрограммированиеПыхнуть хотите?F.A.Q. → О шаблонных механизмах. XTemplate.

О шаблонных механизмах. XTemplate.

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 4 июня 2008 г. 16:00, спустя 4 минуты 52 секунды

    Вот тут вот еще

    <!– BEGIN:index–>
    {FILE {structure}}
    <!– END:index –>


    должен ли я в php файле прописать ($xtpl->parse('') ) что парсю блок из structure.xtpl ?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 4 июня 2008 г. 16:15, спустя 15 минут 20 секунд


    переменная должна называться именно inside как и название файла?
    нет, конечно. как угодно может называться, на то и функция дана assign_file чтобы сопоставлять


    не срабатывает
    где, какой файл лежит? точный код, в студию.


    Если я допустим подключаю файл шапка.xtpl, а шапка у меня динамическая. То тут как быть?
    ты не знаешь как в php динамически сформировать строку?


    должен ли я в php файле прописать ($xtpl->parse('') ) что парсю блок из structure.xtpl ?
    в parse прописывается последовательность вложенных блоков, в не зависимости от того как из инклюдов собирается шаблон.
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 4 июня 2008 г. 19:35, спустя 3 часа 20 минут

    www/index.php
    www/templates/index.xtpl
    www/templates/header.xtpl
    www/templates/footer.xtpl
    www/templates/category/guest.xtpl

    index.php
    ``````````````````
    require_once('../libs/xtemplate/xtemplate.class.php');
    $xtpl = new XTemplate('templates/index.xtpl');


    $action = $_GET['action'];
    switch($action){
    case "guest":
    $xtpl->assign_file('guest','templates/category/guest.xtpl');
    break;

    default:
    print 'default';
    break;
    }

    $xtpl->parse('index');
    $xtpl->out('index');


    index.xtpl
    ``````````````````
    <!– BEGIN:index –>
    {FILE "templates/header.xtpl"}

    {FILE {guest}}

    {FILE "templates/footer.xtpl"}
    <!– END:index –>



    guest.xtpl
    ``````````````````
    <!– BEGIN:index–>
    Это модуль guest
    <!– END:index –>
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 4 июня 2008 г. 19:51, спустя 16 минут 13 секунд

    А на кой во вложенном шаблоне блок index? Или тогда надо парсить …
    $xtpl->parse('index.index');
    $xtpl->parse('index');
    Но вообще там нахер блок не нужен.
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 4 июня 2008 г. 20:08, спустя 16 минут 52 секунды

    <!– BEGIN:index –>
    {FILE "templates/header.xtpl"}
    {FILE {structure}}
    {FILE "templates/footer.xtpl"}
    <!– END:index –>

    код тот же… только убрал блок index в guest.xtpl.
    Выводит только часть {FILE {structure}}
    если же {FILE "templates/header.xtpl"} и {FILE "templates/footer.xtpl"}
    вынести вне блока index то все хорошо… эм… что не так или правильно?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 4 июня 2008 г. 20:11, спустя 2 минуты 48 секунд

    Ни фига не понял. Что значит выводит часть? Если код тот же, то окуда возмется structure? Короче, давай опять все.

    И кстати, какой сакральный смысл в шаблонах header и footer? Они где-то еще нужны? Почему все не поместить в index.xtpl?
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 4 июня 2008 г. 20:46, спустя 34 минуты 54 секунды

    {FILE "templates/header.xtpl"}
    <!– BEGIN:index –>

    {FILE {structure}}

    <!– END:index –>
    {FILE "templates/footer.xtpl"}

    работает… выводит все


    <!– BEGIN:index –>
    {FILE "templates/header.xtpl"}
    {FILE {structure}}
    {FILE "templates/footer.xtpl"}
    <!– END:index –>

    выводит только содержимое {FILE {structure}}


    И кстати, какой сакральный смысл в шаблонах header и footer? Они где-то еще нужны? Почему все не поместить в index.xtpl?

    ну просто потом к каждому шаблону приписывать шапку и подвал ({FILE {шапка.xtpl}})
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 4 июня 2008 г. 22:10, спустя 1 час 24 минуты 30 секунд


    {FILE "templates/header.xtpl"}
    <!– BEGIN:index –>

    {FILE {structure}}

    <!– END:index –>
    {FILE "templates/footer.xtpl"}

    работает… выводит все


    <!– BEGIN:index –>
    {FILE "templates/header.xtpl"}
    {FILE {structure}}
    {FILE "templates/footer.xtpl"}
    <!– END:index –>

    выводит только содержимое {FILE {structure}}

    Я просто готов спорить на что угодно, что на самом деле все с точностью наоборот.

    ну просто потом к каждому шаблону приписывать шапку и подвал ({FILE {шапка.xtpl}})
    Зачем, если у тебя общий шаблон и к нему подключаются разные внутрянки? Получится, что открывающий тег может быть одном шаблоне (header), а закрывающий в другом (footer). Кривь, блин …
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 14 июня 2008 г. 22:00, спустя 9 дней 23 часа 49 минут

    А как сделать такое:
    Было

    <!– BEGIN:a –>
    <!– BEGIN:link –>
    http://www.example.com/
    <!– END:link –>
    Example
    <!– END:a –>


    Стало
    <a href="http://www.example.com/">Example</a>

    ???
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 15 июня 2008 г. 22:25, спустя 1 день 24 минуты

    Никак. XTemplate служит для разделения "PHP и HTML", а не "данных и HTML".
  • yugran

    Сообщения: 22 Репутация: N Группа: Кто попало

    Spritz 8 июля 2008 г. 8:21, спустя 22 дня 9 часов 56 минут


    XTemplate – шаблонный движок для “маленьких”

    Просто мега респект и мега уважуха! Твоя статья эксклюзив, по крайней мере я инфы по XTemplate больше не нашел.

    Ждем еще статей по XTemplate.
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 19 июля 2008 г. 15:17, спустя 11 дней 6 часов 56 минут

    а как пользоваться классом CachingXTemplate? я чего-то не воткну…
  • megabit

    Сообщения: 367 Репутация: N Группа: Кто попало

    Spritz 27 июля 2008 г. 20:34, спустя 8 дней 5 часов 16 минут

    Может кто обьяснить вот есть шаблон например
    main.xtpl

    <!– BEGIN:main –>
    <h1>{name}</h1>
    <p>{text}</p>
    <!– END:main –>

    как отпарсить ее? если надо вывести все из $row['name'] и $row['text']
    без шаблонизатора ето все просто

    while($row = mysql_fetch_array($query)){
    print '<h1>'.$row['name'].'<h1>';
    print '<p>'.$row['text'].'</p>';
    }

    так выведедуться все записи а как реализовать с шаблонизатором?
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 27 июля 2008 г. 20:52, спустя 18 минут 28 секунд

    Не понимаю, в чем проблема. Это в самом первом примере, который прилагается к xtemplate, описано:

    $xtemplate = new XTemplate('main.xtpl');
    $xtemplate -> assign("name", $row['name']);
    $xtemplate -> assign("text", $row['text']);
    $xtemplate -> parse('main');
    $xtemplate -> out('main');
  • megabit

    Сообщения: 367 Репутация: N Группа: Кто попало

    Spritz 27 июля 2008 г. 20:57, спустя 5 минут 3 секунды

    а ты сам пробывал? если например у нас такая таблица

    id | name | text |
    1 | Алексей | Бла бла бла |
    2 | Иван | да да да да |

    и получаеться что в $row['name'] у нас Алексей и Иван но вот как ты написал

    $xtemplate -> assign("name", $row['name']);

    выведеться только

    <h1>Иван</h1>
    <p> да да да да </p>

Пожалуйста, авторизуйтесь, чтобы написать комментарий!