public static function factory(Storage $storage, $row) { $revision = new DokumentRevision($storage); $revision->setRevisionID($row["revisionid"]); $revision->setTimestamp($row["timestamp"]); $revision->setUserID($row["userid"]); $revision->setDokumentID($row["dokumentid"]); $revision->setGliederungID($row["gliederungid"]); $revision->setKategorieID($row["kategorieid"]); $revision->setStatusID($row["statusid"]); $revision->setIdentifier($row["identifier"]); $revision->setLabel($row["label"]); $revision->setContent($row["content"]); $revision->setData(unserialize($row["data"])); $revision->setFileID($row["fileid"]); $revision->setKommentar($row["kommentar"]); return $revision; }
function parseDokumentFormular($ui, $session, &$dokument = null) { $gliederungid = $dokument->getLatestRevision()->getGliederungID(); if ($session->hasFileVariable("file")) { $file = $session->getFileVariable("file"); } else { $file = $dokument->getLatestRevision()->getFile(); } $data = $dokument->getLatestRevision()->getData(); $content = $dokument->getLatestRevision()->getContent(); $kategorieid = $session->getIntVariable("kategorieid"); $statusid = $session->getIntVariable("statusid"); $flagids = array_keys($session->getListVariable("flags")); $label = $session->getVariable("label"); $identifier = $session->getVariable("identifier"); $kommentar = $session->getVariable("kommentar"); if (!$session->isAllowed("dokumente_modify", $gliederungid)) { $ui->viewLogin(); exit; } $revision = new DokumentRevision($session->getStorage()); $revision->setDokument($dokument); $revision->setUser($session->getUser()); $revision->setTimestamp(time()); $revision->setGliederungID($gliederungid); $revision->setKategorieID($kategorieid); $revision->setStatusID($statusid); $revision->setIdentifier($identifier); $revision->setLabel($label); $revision->setFile($file); foreach ($flagids as $flagid) { $flag = $session->getStorage()->getDokumentFlag($flagid); $revision->setFlag($flag); } $revision->setContent($content); $revision->setData($data); $revision->setKommentar($kommentar); $revision->save(); $revision->notify(); }
} if ($file == null) { $api->output(array("failed" => "FILE_MISSING"), 400); } else { $dokument = new Dokument($session->getStorage()); // Zwischenspeichern um die ID zu bekommen $dokument->save(); $revision = new DokumentRevision($session->getStorage()); $revision->setDokument($dokument); $revision->setUser($session->getUser()); $revision->setTimestamp(time()); $revision->setGliederungID($gliederungid); $revision->setKategorieID($kategorieid); $revision->setStatusID($statusid); $revision->setIdentifier($dokumenttemplate->getDokumentIdentifier($session)); $revision->setLabel($dokumenttemplate->getDokumentLabel($session)); $revision->setFile($file); $revision->setData($dokumenttemplate->getDokumentData($session)); $revision->setKommentar($dokumenttemplate->getDokumentKommentar($session)); foreach ($dokumenttemplate->getDokumentFlags($session) as $flagid) { $flag = $session->getStorage()->getDokumentFlag($flagid); $revision->setFlag($flag); } $revision->save(); $revision->notify(); // Nachdem wir alle IDs haben ggf. Nachbehandlung $dokumenttemplate->postCreateHook($session, $dokument, $revision); $dokument->save(); $revision->save(); $api->output(array("success" => "1", "dokumentid" => $dokument->getDokumentID(), "identifier" => $revision->getIdentifier())); }