DMS specifieke functies
Voorbeeld voor het maken van een veld (in een formulier) waarin een folder (in dit geval een project) kan worden uitgekozen:
Veld “project” van type lijst: $form["metaspec"]["fields"]["project"]["type"] = "list"; Verkrijg toegang tot de projecten folder: uuse ("tree"); $tree = &MB_Ref ("ims_trees", IMS_SuperGroupName()."_documents"); $projects = &TREE_AccessObject(&$tree, "projects"); Doorloop alle kinderen van deze folder (de projecten) en zet ze in de lijst: foreach ($projects["children"] as $id => $dummy) { $child = &TREE_AccessObject(&$tree, $id); $form["metaspec"]["fields"]["project"]["values"][$child["shorttitle"]] = $id; } |
Voorbeeld voor het aanmaken van een nieuwe folder
Verkrijg toegang tot de directory boom: uuse ("case","tree"); $tree = &CASE_TreeRef ("ims_trees", $input["sgn"]."_documents"); Verkrijg toegang tot een gekozen folder: $object = &TREE_AccessObject($tree, $data["project"]); Selecteer in deze folder “Inkomende post” of maak aan als deze nog niet bestaat: $inbox=""; foreach ($object["children"] as $id => $dummy) { $sub = &TREE_AccessObject($tree, $id); if ($sub["shorttitle"]=="Inkomende post") $inbox = $id; } if (!$inbox) { $inbox = TREE_AddObject ($tree); $object = &TREE_AccessObject($tree, $inbox); $object["shorttitle"] = "Inkomende post"; $object["longtitle"] = "Inkomende post"; TREE_ConnectObject ($tree, $data["project"], $inbox); } |
Voorbeeld voor het aanmaken van een nieuwe (geupload) bestand in een folder:
Kies een geldige bestandsnaam: $filename = strtolower ($files["file"]["name"]); $filename = preg_replace (chr(39)."[^a-z0-9\.]".chr(39)."i", "_", $filename); Bepaal het type: $ext = N_KeepAfter ($filename, ".", true); Maak het object aan: $object_id = IMS_NewObject ($input["sgn"], "document"); $object = &IMS_AccessObject ($input["sgn"], $object_id); Vul de eigenschappen van het object: $object["directory"] = $inbox; $object["shorttitle"] = $data["name"]; $object["allocto"] = SHIELD_CurrentUser(IMS_SuperGroupName()); $object["workflow"] = "<<<workflow id>>>"; $object["meta_bedrijfsnaam"]=$data["bedrijfsnaam"]; $object["meta_contactpersoon"]= $data["contactpersoon"]; $object["meta_datum"]= $data["datum"]; $object["meta_uwkenmerk"]= $data["uwkenmerk"]; $object["meta_terattentievan"]= $data["terattentievan"]; $object["meta_onderwerp"]= $data["onderwerp"]; $object["filename"] = $filename; if ($ext=="doc") { $object["executable"]="winword.exe"; } else if ($ext=="xls") { $object["executable"]="excel.exe"; } else if ($ext=="htm" || $ext=="html") { $object["executable"]="notepad.exe"; } else if ($ext=="ppt") { $object["executable"]="powerpnt.exe"; } else { $object["executable"] = "auto"; } Zet het bijbehorende bestand op disk: N_WriteFile ("html::".$input["sgn"]."/preview/objects/".$object_id."/".$filename, $files["file"]["content"]); Zorg dat OpenIMS zich bewust is van het nieuwe bestand: uuse ("search"); IMS_ArchiveObject ($input["sgn"], $object_id, SHIELD_CurrentUser ($input["sgn"]), true); SEARCH_AddPreviewDocumentToDMSIndex ($input["sgn"], $object_id); |