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;
 }
示例#2
0
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();
}
示例#3
0
    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);
    $dokument->save();
    $revision->save();
    $api->output(array("success" => "1", "dokumentid" => $dokument->getDokumentID(), "identifier" => $revision->getIdentifier()));