РАЗНОЕ / Скрипт прописывает всем элементам списков Url, если изначально они не были заданы

Заметка создана: 27 января 2024 г.

Скрипт загружается в корень сайта.

Для запуска скрипта нужно быть авторизованным в админ панели.

Адрес скрипта будет таким: https://site.ru/make-urls.php.

В процессе работы страница обновится несколько раз, если элементов списков много (за один прогон — 1000 элементов списков).

В самом конце будет вывод, типа:

done. Processed: {кол-во обработанных элементов}

<?php
header("Content-type: text/html; charset=UTF-8");
// Подключаем основные классы
require_once ('bootstrap.php');
if (!Core_Auth::logged()) {
    header('Location: /');
    exit();
}
$iLimit = 1000;
$iStart = intval(Core_Array::getRequest('total', 0));
$oListItems = Core_Entity::factory('List_Item');
$oListItems->queryBuilder()
    ->limit($iLimit)
    ->offset($iStart)
;
$aListItems = $oListItems->findAll();
foreach ($aListItems as $oListItem) {
    $oListItem->makePath();
    $oListItem->save();
    $iStart++;
}
>
if ($iStart - intval(Core_Array::getRequest('total', 0)) >= $iLimit) {
    header('Refresh:1; url=/' . basename(__FILE__) . '?total=' . $iStart);
    echo 'redirecting...';
}
else {
    echo 'done. Processed: ' . $iStart;
}
exit();