oFolder =& $oFolder; $this->oStorage =& $oStorage; $this->oUser =& $oUser; $this->aOptions =& $aOptions; if (is_null($aOptions)) { $aOptions = array(); } $this->aMetadata = KTUtil::arrayGet($aOptions, 'metadata', array()); } function import() { $res = $this->oStorage->init(); if (PEAR::isError($res)) { $this->oStorage->cleanup(); return $res; } $res = $this->_importfolder($this->oFolder, "/"); if (PEAR::isError($res)) { $this->oStorage->cleanup(); return $res; } $this->oStorage->cleanup(); return; } function _importfolder($oFolder, $sPath) { $aDocPaths = $this->oStorage->listDocuments($sPath); if (PEAR::isError($aDocPaths)) { return $aDocPaths; } foreach ($aDocPaths as $sDocumentPath) { $res = $this->_importdocument($oFolder, $sDocumentPath); if (PEAR::isError($res)) { return $res; } } $aFolderPaths = $this->oStorage->listFolders($sPath); if (PEAR::isError($aFolderPaths)) { return $aFolderPaths; } foreach ($aFolderPaths as $sFolderPath) { $oThisFolder = KTFolderUtil::add($oFolder, basename($sFolderPath), $this->oUser); if (PEAR::isError($oThisFolder)) { return $oThisFolder; } $res = $this->_importfolder($oThisFolder, $sFolderPath); if (PEAR::isError($res)) { return $res; } } } function _importdocument($oFolder, $sPath) { $aInfo = $this->oStorage->getDocumentInfo($sPath); if (PEAR::isError($aInfo)) { return $aInfo; } $aOptions = array( // XXX: Multiversion Import 'contents' => $aInfo->aVersions[0], 'metadata' => $this->aMetadata, ); $oDocument =& KTDocumentUtil::add($oFolder, basename($sPath), $this->oUser, $aOptions); return $oDocument; } } ?>