public function fork() { $r = new DokumentRevision($this->getStorage()); $r->setDokumentID($this->getDokumentID()); $r->setGliederungID($this->getGliederungID()); $r->setKategorieID($this->getKategorieID()); $r->setStatusID($this->getStatusID()); $r->setIdentifier($this->getIdentifier()); $r->setLabel($this->getLabel()); $r->setContent($this->getContent()); $r->setData($this->getData()); $r->setFileID($this->getFileID()); foreach ($this->getFlags() as $flag) { $r->setFlag($flag); } return $r; }
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(); }
$file = $dokumenttemplate->getDokumentFile($session); if (!$session->isAllowed("dokumente_create", $gliederungid)) { $api->output(array("failed" => "PERMISSION_DENIED"), 403); exit; } 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);