По умолчанию в modx при достижении даты снятия с публикации у ресурса помимо галки "опубликованности" (published) обнуляются также дата публикации (publishedon), дата автоматической публикации (pub_date) и дата снятия с публикации (unpub_date), что не очень удобно, т.к. полезно знать даты, когда ресурс был опубликован, даже когда он более не актуален. Примером может быть размещенный на сайте календарь - нам могут быть интересны уже прошедшие события, а плодить новые поля для указания дат, на мой взгляд, излишне.
Проверка наступления unpub_date производится в двух местах:
при ручном сохранении материала - в файле /core/model/modx/processors/resource/update.class.php, комментируем следующие строки:
public function setUnPublishDate() {
...
/*$this->setProperty('published',0);
$this->setProperty('unpub_date',0);
$this->setProperty('pub_date',0);
$this->setProperty('publishedon',0);*/
...
а также в менеджере кэша: /core/model/modx/modcachemanager.class.php:
public function autoPublish(array $options = array()) {
...
//$publishingResults['unpublished']= $this->modx->exec("UPDATE $tblResource SET published=0, publishedon=0, pub_date=0, unpub_date=0 WHERE unpub_date IS NOT NULL AND unpub_date < {$timeNow} AND unpub_date > 0");
...