ФорумПрограммированиеPHP для идиотов → Снова парсер шаблонов

Снова парсер шаблонов

  • artoodetoo

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

    Spritz 24 февраля 2009 г. 4:50, спустя 1 минуту 51 секунду

    да забей. пользователи все-равно не знают что у нас там внутре



    (сперто с хабра)
    ιιlllιlllι унц-унц
  • adw0rd

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

    Spritz 24 февраля 2009 г. 5:17, спустя 27 минут 43 секунды

    artoodetoo,




    adw/0
  • phpdude

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

    Spritz 24 февраля 2009 г. 5:18, спустя 55 секунд

    хабр отстой!
    Сапожник без сапог
  • Lirck

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

    Spritz 24 февраля 2009 г. 5:25, спустя 7 минут 1 секунду


    хабр отстой!

    откуда знаешь что оттуда?)
  • phpdude

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

    Spritz 24 февраля 2009 г. 5:28, спустя 2 минуты 49 секунд



    хабр отстой!

    откуда знаешь что оттуда?)
    видел месяца 2 назад
    Сапожник без сапог
  • artoodetoo

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

    Spritz 4 марта 2009 г. 19:11, спустя 8 дней 13 часов 43 минуты

    просто чтобы был happy end по теме "парсер шаблонов":
    финальная версия умеет:

    • эскейпить html-теги в выводе

    • выбирать элемент массива любой размерности

    • include под-шаблон

    • if-else

    • foreach


    пример шаблона:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>{title}</title>
    </head>

    <body>

    {%INCLUDE header}

    <p>Code: {code}</p>
    <p>Escaped code: {@code}</p>

    <hr />

    {%IF cond}
    <p>Condition: true<br />
    Foo: <strong>{foo}</strong></p>
    { %IF link}
    <p>Link: <a href="xxx.php?id={link:id}">{@link:name}</a></p>
    { %ELSE}
    <p>Link isn't set</p>
    { %END}
    {%ELSE}
    <p>Condition: false</p>
    {%END}

    <hr />

    <p><strong>Array:</strong></p>
    {%IF items}
    { %FOREACH items AS item}
    <p>{item:a} » {item:b}</p>
    { %END}
    {%ELSE}
    <p>Array is not set or empty</p>
    {%END}

    </body>
    </html>


    пример использования (без БД):

    <?php

    error_reporting(E_ALL);

    include './a2temple.php';

    $linkArr = array('id' => 1, 'name' => 'john');
    $loopArr = array(
    array('a' => '1', 'b' => '1'),
    array('a' => '2', 'b' => '4'),
    array('a' => '3', 'b' => '9'),
    array('a' => '4', 'b' => '16')
    );

    $data = array(
    'title' => 'The Example page',
    'code' => 'The <b>bold</b> text',
    'cond' => TRUE,
    'foo' => 'bar',
    'link' => &$linkArr,
    'items' => &$loopArr
    );


    echo parseTemplate($data, './template/first.tpl');

    парсер ~ 150 строк, 4K

    не за что!
    ιιlllιlllι унц-унц
  • AlexB

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

    Spritz 5 марта 2009 г. 4:50, спустя 9 часов 38 минут 26 секунд

    Молчу, молчу, молчу … (с) Поручик Ржевский
  • md5

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

    Spritz 5 марта 2009 г. 4:54, спустя 4 минуты 22 секунды


    Молчу, молчу, молчу … (с) Поручик Ржевский
    присоединяюсь к молчанию!
    все умрут, а я изумруд
  • artoodetoo

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

    Spritz 5 марта 2009 г. 5:14, спустя 20 минут 2 секунды

    какие вы все молодцы!
    ιιlllιlllι унц-унц
  • md5

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

    Spritz 5 марта 2009 г. 5:20, спустя 6 минут 13 секунд


    какие вы все молодцы!
    синтакс РИАЛЬНЕ ЖОСТЬ
    для себя смысла в использовании не вижу. простите
    все умрут, а я изумруд
  • artoodetoo

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

    Spritz 5 марта 2009 г. 5:24, спустя 3 минуты 33 секунды

    прощаю
    ιιlllιlllι унц-унц
  • AlexB

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

    Spritz 5 марта 2009 г. 6:02, спустя 37 минут 59 секунд


    синтакс РИАЛЬНЕ ЖОСТЬ
    Да дело не синтаксисе, в конце концов ситаксис сменить несложно ….
  • artoodetoo

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

    Spritz 5 марта 2009 г. 6:04, спустя 1 минуту 48 секунд

    AlexB, не сдерживай себя, это вредно
    ιιlllιlllι унц-унц
  • md5

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

    Spritz 5 марта 2009 г. 6:08, спустя 3 минуты 57 секунд



    синтакс РИАЛЬНЕ ЖОСТЬ
    Да дело не синтаксисе, в конце концов ситаксис сменить несложно ….
    да я и не говорю, что только в синтаксисе
    все умрут, а я изумруд
  • AlexB

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

    Spritz 5 марта 2009 г. 6:09, спустя 1 минуту 20 секунд


    AlexB, не сдерживай себя, это вредно
    Что делать, приходится жертвовать собой ради мира на земле.

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