Если достаточно переключения через контекстное меню дерева, то можно сделать плагин на событие
OnDocUnPublished:
<?php
$id = $resource->get('id');
$query = $modx->newQuery('modResource', array('parent'=> $id));
$resources = $modx->getCollection('modResource', $query);
foreach($resources as $res) {
$res->set('published', 0);
$res->save();
}
Если же нужно полностью синхронизировать родителя и потомков (и на публикацию и на отмену публикации + чтобы работало не только из контекстного меню), то сделайте так:
<?php
$id = $resource->get('id');
$pub = $resource->get('published');
$query = $modx->newQuery('modResource', array('parent'=> $id));
$resources = $modx->getCollection('modResource', $query);
foreach($resources as $res) {
$res->set('published', $pub);
$res->save();
}
И повесить его на три события:
OnDocFormSave,
OnDocPublished и
OnDocUnPublished
[ed. note: rpadesign last edited this post 7 years, 3 months ago.]