/** * Перестраивает дерево комментариев * Восстанавливает значения left, right и level * * @param int $aTargetId Список ID владельцев * @param string $sTargetType Тип владельца */ public function RestoreTree($aTargetId = null, $sTargetType = null) { // обработать конкретную сущность if (!is_null($aTargetId) and !is_null($sTargetType)) { $this->oMapper->RestoreTree(null, 0, -1, $aTargetId, $sTargetType); return; } $aType = array(); // обработать все сущности конкретного типа if (!is_null($sTargetType)) { $aType[] = $sTargetType; } else { // обработать все сущности всех типов $aType = $this->oMapper->GetCommentTypes(); } foreach ($aType as $sTargetType) { // для каждого типа получаем порциями ID сущностей $iPage = 1; $iPerPage = 50; while ($aResult = $this->oMapper->GetTargetIdByType($sTargetType, $iPage, $iPerPage)) { foreach ($aResult as $Row) { $this->oMapper->RestoreTree(null, 0, -1, $Row['target_id'], $sTargetType); } $iPage++; } } }