Дополнительные изменения:
Снова открываем файл
setforums.php в котором ищем строку
CODE:asort($catarray,SORT_NUMERIC);
перед которой вставляем
CODE: $num = 0;
foreach ($catarray as $key=>$value)
{
$num++;
$cur_pos = ($num < 10) ? intval($catid).'0'.$num : intval($catid).$num;
$allforums[$key]['position'] = intval($cur_pos);
}
После этого идем в админку и пробуем двигать форумы.
Если
setforums.php был кривой не пытайтесь на этом этапе двигать самый первый пункт вниз или самый нижний вверх. Лучше выбрать любой форум из середины и сдвинуть в любую сторону. Если сдвинуть получилось, значить корректная индексация позиций в этой категории восстановлена и дальше можно уже двигать что попало и куда попало.
Пару слов о том, что делает приведённый выше код. Сразу после чтения структуры форумов в выбранной категории код делает принудительную переиндексацию позиций. Можно возразить, что это излишество и данный код нужен лишь на этапе исправления ошибок, однако я посчитал, что код не ресурсоёмкий и лишний раз правильно выстроить индексы позиций будет не лишним.
(Добавление)
Да, забыл предупредить!!!
Я вроде всё учел, но человеческий фактор исключать нельзя - сделайте на всякий случай резервную копию
allforums.php.