Оператор fileС помощью оператора file можно организовать публикацию
нескольких файлов из одного Синтаксис: <file name=expr [charset=expr]> где,
Непосредственно перед именем файла может быть указан один из модификаторов поведения:
Оператор file обладает рядом особенностей: Система автоматически обьединяет в один файл несколько последовательных записей в файл с одним и тем же именем в рамках одной публикации. При самом первом вызове файл создается, а каждый последующий вызов просто дописывает тело оператора к уже существующему файлу. Пример: <file name="/a.shtml">Hello</file>
<file name="/b.shtml">Tatsuya Ishida</file> <file name="/a.shtml"> world</file> В результате мы получим два файла a.shtml, в котором будет «Hello world», и файл b.shtml, в котором будет «Tatsuya Ishida». Однако, если мы выполним этот скрипт ещё раз файл a.shtml будет содержать текст «Hello world», а не «Hello world Hello world». Создаваемые посредством оператора file файловые фрагменты
контролируются Сборщиком Мусора это значит, что при удалении документа будут
также удалены созданные при его публикации файловые фрагменты (подробная работа
описания работа Сборщика Мусора описана в разделе
), а также, если в
процессе публикации документы будут созданы другие файловые фрагменты взамен
текущих. Например, если в процессе предыдущей публикации ваш
Оператор file по умолчанию вырезает содержимое тэгов <file> из
исходного Пример: Мы хотим <file name="+/keywords.shtml">купить DJEM</file>
у правильного дилера.
В результате мы получим основной документ, содержащий «Мы хотим купить DJEM у правильного дилера.», и файл keywords.shtml, содержащий слова «купить DJEM». Операторы file могут быть вложены друг в друга. Это очень полезно для формирования сразу нескольких файлов, использующих один и тот же элемент информации в одинаковом обрамлении. Например, товар может публиковаться как в ленту товаров, так и в ленту новинок. Пример: <foreach name=x path="main.goods.$">
<file name="/goods/index.shtml"> <file name="+/goods/newitems.shtml"> Товар <foreach[x]._name>, цена <foreach[x].price> </file> </file> </foreach> Разумеется, при этом все внутренние операторы file должны указывать «+» перед именем выходного файла, а самый верхний указывать или не указывать в зависимости от того, хотите ли вы оставить фрагмент в теле основного документа или нет. |
![]() |
Поиск по документации![]() |