AlexDru
Новичок
День добрый, требуется оптимизировать функцию шаблонитизатора (формат и идею самих шаблонов менять нельзя).
Идея следующая – есть 2х мерный массив данные, из которого нужно вывести по шаблону. Все было бы просто, но каждый элемент в строке может иметь свою обработку параметры которой задаются так же в шаблоне (но при этому остальные данные из аналогичного элемента из другой строки выводится так же). В шаблоне каждый элементы строки обозначается тегом.
Тег может быть одинарный, или парный (в последнем случае требуется манипулировать данными внутри). Так же может иметь параметры. Кроме того, в шаблоне могут быть теги которые будут обработаны другими скриптами. Мы обрабатываем только заявленные нами теги.
Пример шаблона:
tag_1, tag_2, tag_3, tag_4, tag_5 (и т.д.)- теги, их название известны заранее ( мы передаем ее в функцию в виде массива Array("tag_1", "tag_2", "tag_3" ...))
par="x" par2="2" – parameters (возможны разные, количество в одном блоке не ограниченно)
{other} – tag который нам трогать не надо
:relax – subtag (возможны разные, заранее названия не известны)
subdata – данные между парными тегами (закрывающий тег со слешем)
В приложении func.txt это работающая функция выполняющая нужные манипуляции, но как по мне, она не оптимальная. По ее алгоритму мы обрабатываем шаблон, ищим тег, разбиваем его на составляющие, вытаскиваем параметры и так тег за тегом. Повторяем для всех строк в нашем массиве.
Бюджет: $60 (обсуждается).
p.s. если что-то не понятно или информации недостаточно - спрашивайте, я отвечу.
Идея следующая – есть 2х мерный массив данные, из которого нужно вывести по шаблону. Все было бы просто, но каждый элемент в строке может иметь свою обработку параметры которой задаются так же в шаблоне (но при этому остальные данные из аналогичного элемента из другой строки выводится так же). В шаблоне каждый элементы строки обозначается тегом.
Тег может быть одинарный, или парный (в последнем случае требуется манипулировать данными внутри). Так же может иметь параметры. Кроме того, в шаблоне могут быть теги которые будут обработаны другими скриптами. Мы обрабатываем только заявленные нами теги.
Пример шаблона:
PHP:
{tag_1} {tag_2:relax} {tag_3} {tag_4}
{tag_4 par="x"} {tag_5 par="x" par2="2"} {tag_1:agree} {tag_3 hello="world"} subdata {other} {tag_4} {/tag_3}
par="x" par2="2" – parameters (возможны разные, количество в одном блоке не ограниченно)
{other} – tag который нам трогать не надо
:relax – subtag (возможны разные, заранее названия не известны)
subdata – данные между парными тегами (закрывающий тег со слешем)
В приложении func.txt это работающая функция выполняющая нужные манипуляции, но как по мне, она не оптимальная. По ее алгоритму мы обрабатываем шаблон, ищим тег, разбиваем его на составляющие, вытаскиваем параметры и так тег за тегом. Повторяем для всех строк в нашем массиве.
Бюджет: $60 (обсуждается).
p.s. если что-то не понятно или информации недостаточно - спрашивайте, я отвечу.