function validate() { if(!$result = parent :: validate()) return $result; $ids = $this->dataspace->get('ids', array()); $new_parent_node_id = $this->dataspace->get('parent_node_id'); if(!sizeof($ids)) return false; $objects = $this->_get_objects_to_move(array_keys($ids)); $tree =& tree :: instance(); foreach($objects as $id => $item) { $site_object =& wrap_with_site_object($item); if(!$tree->can_move_tree($site_object->get_node_id(), $new_parent_node_id)) { $this->validator->add_error('parent_node_id', strings :: get('tree_move_recursion_error', 'error')); return false; } } return true; }