function _deleteTree($folder) { // first delete all childs (recursive) $rs = $this->getChildrensById($folder->id); if ($rs !== FALSE) { $fc = new FoldersCollection($this, $rs); while ($child = $fc->getNext()) { $this->_deleteTree($child); } } $this->withOtherFields = FALSE; $result = parent::_deleteTree($folder); $this->withOtherFields = TRUE; // delete translations if ($result) { $query = "DELETE FROM " . $GLOBALS['prefix_fw'] . '_org_chart' . " WHERE id_dir = '" . (int) $folder->id . "'"; $this->_executeQuery($query); } $aclManager =& Docebo::user()->getACLManager(); $idST = $this->getGroupDescendantsST($folder->id); // detach this descendant group from parent descendant group $aclManager->removeFromGroup($this->getGroupDescendantsST($folder->idParent), $idST); // delete descendant group $aclManager->deleteGroup($idST); // delete OU group $aclManager->deleteGroup($this->getGroupST($folder->id)); return $result; }