Не буду описывать что такое дизайн- и контент-шаблоны, будем считать что об этом уже все изветсно.
Нам потребуется два типа документов. Назовем их "Кронтаб / Раздел" и "Кронтаб / Запись".
Для "записи" делаем контент-шаблон вида:
и дизайн-шаблон (код специально оформлен без отступов, чтобы сформировать валидный файл):
<file name="/tmp/crontab.txt">
# generated via cms djem
<foreach name="x" path="<#_parent_id#>.$" sort="_sort">
<foreach[x].minute><if <foreach[x].minuteSlash>>/<foreach[x].minuteSlash></if> <foreach[x].hour><if <foreach[x].hourSlash>>/<foreach[x].hourSlash></if> <foreach[x].day><if <foreach[x].daySlash>>/<foreach[x].daySlash></if> <foreach[x].month><if <foreach[x].monthSlash>>/<foreach[x].monthSlash></if> <foreach[x].weekday><if <foreach[x].weekdaySlash>>/<foreach[x].weekdaySlash></if> <foreach[x].username> <foreach[x].interpritator> <foreach[x]._name.replace('::documentRoot::', <['main.system.php.config'].documentRoot>)>
</foreach>
</file>
Для "раздела" делаем очень большой дизайн-шаблон:
<exec name=e cmd="crontab.sh">
Файлики генерим в документах, так как сначала выполняются все действия, а потом записываются файлы.
То есть если вызов плагина и генерацию файла поместить в один дизайн-шаблон,
то сначала вызовется плагин, а потом запишется файл. Нам надо наоборот.
Исходный код плагина:
/bin/sh
crontab <['main.system.php.config'].documentRoot>/tmp/crontab.txt
rm -f <['main.system.php.config'].documentRoot>/tmp/crontab.txt
Warning! Этот плагин обновит кронтаб пользователя, под которым работает djem.