Здравствуйте, необходимо выполнить данный скрипт
$q = $modx->newQuery('msProduct');
$q->where(array('parent' => '9'));
$col = $modx->getCollection('msProduct', $q);
foreach ($col as $item){
$oe_number = $item->get('oe_number');
$article = $item->get('article');
$old_price = $item->get('old_price');
$price = $old_price * 1.2;
$item->set('price', $price);
if (empty($oe_number)) {
$item->set('oe_number', $article);
}
$item->save();
}
Но так как товаров порядка 30 000, то нужно разбить на пошаговое выполнение, нашел данную шпаргалку — ilyaut.ru/cheats/step-by-step-the-script-in-console/, но мозгов доделать не хватает, вот что получилось
<?php
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
$_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;
// Формируем запрос
$q = $modx->newQuery('msProduct');
$q->where(array('parent' => '9'));
$total = $modx->getCount('msProduct', $q);
// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);
$resources = $modx->getCollection('msProduct', $q);
// Обработка
foreach ($resources as $resource){
$oe_number = $resource->get('oe_number');
$article = $resource->get('article');
$old_price = $resource->get('old_price');
$price = $old_price * 1.2;
$resource->set('price', $price);
if (empty($oe_number)) {
$resource->set('oe_number', $article);
}
$resource->save();
print "<p>Processing resource <b>".$resource->get('pagetitle')."</b></p>";
}
// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
$sucsess = 100;
$_SESSION['Console']['completed'] = true;
unset($_SESSION['console_offset']);
} else {
$sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
$_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
if ($i <= $sucsess) {
print '=';
} else {
print '_';
}
}
$current = isset($_SESSION['console_offset']) ?
$_SESSION['console_offset'] :
($sucsess == 100 ? $total : 0);
print "\n";
print $sucsess.'% ('.$current.')'."\n\n";
Подскажите, как правильно написать пошаговое выполнение скрипта