Cистема управления сайтом

Оператор publish

Поддерживается в <dynamic>

Оператор publish используется для публикации документа.

Синтаксис:

<publish id=expr [dtpl=expr] [file=expr] [mode=instant|queue]>

где,

Параметр

Описание

id

id документа, который необходимо опубликовать

dtpl

id дизайн-шаблона, который используется при публикации. Если значение не задано, то используется тот ДШ, который присвоен документу

file

имя выходного файла. Если значение не задано, то используется значение, присвоенное документу

mode

режим публикации, по умолчанию instant:

• instant – документ публикуется сразу (значение по умолчанию);

• queue – документ помещается в очередь публикации. Очередь позволяет производить публикацию большего количества документов со сложной структурой в фоновом режиме. Подробнее

charset

кодировка выходного документа

          

Пример

Публикация текущего документа с шаблоном по умолчанию:

<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 раз. Вы можете изменить количество документов в скрипте в зависимости от настроек таймаута и мощности сервера.

Поиск по документации

О компании  |  Партнёрам

© 2005 — 2024 DJEM Solutions, все права защищены. | Дизайн — Студия Fractalla