Как пересохранить ресурсы через Console

Добрый день!
Помогите, пожалуйста, в написании кода для выполнения через Console, так как сам плохо разбираюсь в php.
Есть раздел Tickets, в котором несколько сотен тикетов. У каждого тикета не сформирован alias (не спрашивайте, почему так получилось). Чтобы сформировать чпу alias, приходится каждый тикет сохранять вручную, что занимает длительное время.
Есть ли способ это автоматизировать?
Пробовал сделать так:
<?php
if(!$docs = $modx->getCollection('Ticket', array(
    'parent' => 1212
    
))){return;}

foreach($docs as $doc){
    $content = $doc->get('content');
    $doc->save();
}
но ничего не получилось.
Помогите дописать пару строк, чтобы автоматически формировались alias.
Спасибо!
Сергей
18 февраля 2019, 12:44
modx.pro
1 588
0

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

Андрей
18 февраля 2019, 13:09
1
+1
Попробуй так:
<?php
$pages = $modx->getIterator('modResource', ['parent:IN' => [1212]]);

foreach ($pages as $p) {
  $title = $p->get('pagetitle');
  $alias = $p->get('alias');	
  $alias = $p->cleanAlias($title);
  $p->set('alias', $alias);
  $p->save();
}
    Сергей
    18 февраля 2019, 13:11
    0
    Все получилось!
    ООООгромнейшее СПАСИБО!
      Сергей
      18 февраля 2019, 13:38
      0
      А это будет работать на 9000 ресурсах?
        Андрей
        18 февраля 2019, 13:47
        0
        По идее должно) пробовал на ~5000-7000, всё работало.
          Сергей
          18 февраля 2019, 13:49
          0
          ок. спасибо!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5