Для тех, кто использует модель MPTtree, реализующую вложенные множества в CodeIgniter. Не рекурсией же вы иерархические структуры читаете, смею надеяться?
В функциях move_to_first_child_of, move_to_last_child_of закралась ошибка. Соответственно, в модели не работает перемещение узлов. Эти же функции используются ORM, поэтому проблема глобальна.
Строки
<?php
if($this->lft != 1 || $node->orphan || $node->instance->tree_table != $this->instance->tree_table)
return false;
?>
бессмысленны, так левая граница перемещаемого узла всегда будет неравна единице, так как единица – это левая граница корневого узла. И наоборот, эта функция сработает, если отмечен корень, что не хорошо, ибо корень един и не изменяем.
Меняем $this->lft != 1 на $this->lft == 1 и радуемся.
Тем кто не в теме, срочно просвещаться.
P.S. В рассматриваемой модели поле уровня не используется, оно излишне. Необходимо и достаточно левой и правой границы.