Оператор publishПоддерживается в <dynamic> Оператор publish используется для публикации документа.
Синтаксис: <publish id=expr [dtpl=expr] [file=expr] [mode=instant|queue]> где,
ПримерПубликация текущего документа с шаблоном по умолчанию: <publish id="<#_id#>">
Часто используется так называемая «восходящая публикация», когда при публикации документа публикуются все документы вверх по иерархии. При классическом построении архитектуры данных DJEM «публикация вверх» гарантирует, что изменения документа будут автоматически отражены во всех участках сайта, где используются данные документа. Пример восходящей публикации: <loop i=0 to <#_level#>-1>
<publish id=<parent[<loop[i]>]._id> </loop> ПримерКак опубликовать все документы <foreach name=x path="main.rus.*">
<publish id="<foreach[x]._id>"> </foreach> См. оператор foreach Если документов очень много, то процесс публикации может оборваться по таймауту. Мы рекомендуем использовать модуль публикации, но если он не доступен, вы можете использовать публикацию по частям с ограничением по количеству документов. Публикуем 200 документов, у которых дата последней публикации больше 15 минут. <foreach name=x path="main.rus.*" where="_last_publish_time lt
<print <#time()#> - 900>" limit="200">
<publish id=<foreach[x]._id>> </foreach> <if <foreach[x]._total> == 0> Ура! Все документы опубликованы. </if> Документ с данным скриптом можно публиковать до тех пор, пока не опубликуются все документы. Для проекта с 1000 документов данный файл следует опубликовать 5 раз. Вы можете изменить количество документов в скрипте в зависимости от настроек таймаута и мощности сервера. |
![]() |
Поиск по документации![]() |