Как перенести неопубликованные ресурсы в другой каталог

Есть структура вида:

Мероприятия (id1)
— Мероприятие 3
— Мероприятие 4

Архив мероприятий (id2)
— Мероприятие 1
— Мероприятие 2

Как сейчас всё работает: для каждого мероприятия выставляется дата снятия с публикации, после снятия с публикации мероприятие руками перетягивается в каталог «Архив мероприятий (id2)» и публикуется (чтобы анонимы могли видеть мероприятия из архива).

Вопрос: как это автоматизировать? полагаю что через cron, но не имею понятия как это сделать. Прошу помощи!
Владимир
26 мая 2018, 21:03
modx.pro
691
0

Комментарии: 5

Михаил
27 мая 2018, 07:51
+1
Выбирать все не опубликованные ресурсы, менять им родителя и публиковать. По крону к примеру раз в день запускать скрипт.

<?php
require_once '/absolute/path/to/modx/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');

$archive = ''; // тут id архива
$resources = $modx->ghetIterator('modResource', array('published' => 0))
foreach($resources as $res){
	$res->set('parent', $archive);
	$res->set('published', 1);
	$res->save();
}
    Владимир
    27 мая 2018, 13:01
    0
    А где указать id ресурса у которого выбирать эти неопубликованные ресурсы? т.к. есть и другие неопубликованные, но нужно делать выборку именно с «Мероприятия (id1)»
      Михаил
      27 мая 2018, 13:11
      +1
      $parent = ''; // id родителя
      $archive = ''; // тут id архива
      $resources = $modx->getIterator('modResource), array('parent' => $parent);
      foreach($resources as $res){
      	$res->set('parent', $archive);
      	$res->set('published', 1);
      	$res->save();
      }
        Владимир
        27 мая 2018, 13:40
        0
        Опробовал в консоли — перенесло все мероприятия в архив. Опубликованные и неопубликованные :(
          Владимир
          27 мая 2018, 13:45
          0
          всё, разобрался, забыли добавить 'published' => 0
          Спасибо большое!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5