FatCatтак я так и делаю =)
Вот смотри. Я принимаю 3 файла, создаю из них нумерованный массив, каждый элемент массива это строка из файла пропущенная через trim, ну например
[0] => <!DOCTYPE html>
[1] => <html>
[2] => <head>
[3] => <meta charset="utf-8" />
[4] => <meta name="robots" content="all">
[5] => <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
[6] => <title>TVSHOP.KZ-{HEAD.Title}</title>
[7] => <meta name="keywords" content="{HEAD.KeyWords}" />
[8] => <meta name="description" content="{HEAD.Description}" />
[9] => <meta name="author" content="{HEAD.Author}" />
[10] => <script src="{HEAD.Scripts}"></script>
[11] => <link rel="shortcut icon" href="/templates/tvs/img/favicon.ico" type="image/x-icon">
[12] => <link href="{HEAD.Styles}" rel="stylesheet">
[13] => </head>
Видишь там есть {SPECIAL.Tag}?
Для замены этих слов у меня есть специальная функция.
Моя функция принимает массив в формате
['HEAD']['Title'] = 'Название страницы';
['HEAD']['KeyWords'] = 'Ключевые,слова';
и т.д.
Дальше она ищет в массиве шаблона эти слова и заменяет их на значения.
Но вот если ей попадается ситуация, когда
для одной переменный заданы несколько значений['HEAD']['Scripts'][0] = 'ajax.js';
['HEAD']['Scripts'][1] = 'scripts.js';
Она замену не делает, потому-что
не знает как вставить сразу оба скрипта.
В данном конкретном примере, можно просто добавить следующим элементом массива копию предыдущего элемента, но с другим значением.
А если это целый DIV, а не просто имя скрипта? Понимаешь о чем я?
Ну вот как например заставить функцию скопировать див много раз и каждый раз подставлять новые значения? Рекурсией? Вариант, но не стабильный, я пробовал, например вот тут
<div id="goods">
<div class="block" id="{GOODS.Name}">
<div class="name">
<a href="{GOODS.Link}"><h2>{GOODS.Name}</h2>{GOODS.Descr}</a><img src="{GOODS.Logo}"/>
</div>
<div class="image"><img src="{GOODS.Image}"></div>
<input type="checkbox" id="{GOODS.Id}" name="{GOODS.Name}" value="{GOODS.Value}" class="buy"/>
<label for="{GOODS.Id}">
<span class="checked">В корзину</span>
<span class="unchecked">Убрать</span>
</label>
<span class="price">{GOODS.Price} T</span>
<div class="description">{GOODS.Description}</div>
</div>
</div>
Это блок в котором отображается информация о товаре. Таких блоков на странице может быть от одного до нескольких десятков. Как заставить скрипт продублировать именно эту часть массива, столько раз, сколько товаров пришло?
Это можно было бы легко сделать. если бы каким-то образом можно было получить точные координаты {SPECIAL.Tag}. т.е. номер строки и пизицию в строке, а дальше составив карту HTML просто скопировать несколько раз карту этого блока и вставить его в массив
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки