API Documents
Aus TecArt-CRM Developer-Wiki
Inhaltsverzeichnis |
Hinweis
API Klassen und deren Funktionen können nur mit CRM System mit Version >= 3.2 genutzt werden
Methoden
addTree
Syntax:
int addTree( string $module, array $crmFileTree, int $user_id, int $object_id)
Beschreibung:
Erstellt einen kompletten Dateibaum. Gibt 1 zurück, wenn der Dateibaum komplett erstellt wurde oder 0 einen teilweisen Erfolg.
Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.
Hinweis: addTree() hält nicht an, wenn Fehler auftreten (z.B. wenn Strukturen bereits existieren), sondern gibt stattdessen 0 zurück.
$module (obligatorisch): diese Variable muss einen der folgenden Strings beinhalten:
- offers: holt alle Dokumente vom ausgewähltem Angebot (das Setzen der Variable $object_id ist obligatorisch) - contracts: holt alle Dokumente vom ausgewähltem Vertrag (das Setzen der Variable $object_id ist obligatorisch) - calls: holt alle Dokumente vom ausgewähltem Anruf (das Setzen der Variable $object_id ist obligatorisch) - todo: holt alle Dokumente von der ausgewählten Aufgabe (das Setzen der Variable $object_id ist obligatorisch) - dates: holt alle Dokumente vom ausgewähltem Termin (das Setzen der Variable $object_id ist obligatorisch) - projects: holt alle Dokumente vom ausgewähltem Projekt (das Setzen der Variable $object_id ist obligatorisch) - contacts: holt alle Dokumente vom ausgewähltem Kontakt(das Setzen der Variable $object_id ist obligatorisch) - tickets: holt alle Dokumente vom ausgewähltem Ticket(das Setzen der Variable $object_id ist obligatorisch) - user_docs: holt alle Dokumente vom ausgewähltem Nutzer (das Setzen der Variable $user_id ist obligatorisch) - common: holt alle Dokumente aus den gemeinsamen Dokumenten - domaintemplates: holt alle domaintemplate Dokumente - drafts: holt alle Vorlagen - mailtemplates: holt alle mailtemplate Dokumente - reportingtemplates: holt alle reportingtemplate Dokumente
$crmFileTree (obligatorisch):
- ist ein Array, welches Informationen über den Dateibaum enthält
$user_id (optional, -1 wenn ungenutzt):
- muss gesetzt sein, wenn $module auf user_docs gesetzt ist
$object_id (optional, -1 wenn ungenutzt):
- muss gesetzt sein, wenn $module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
Beispiel:
<?php /** - in diesem Beispiel werden 3 Verzeichnisbäume und 2 Dokumente erstellt - Das Dokument "file1" enthält einen unkomprimierten, Base64-kodierten String - the document "file2" enthält einen GZIP- / Base64-kodierten String - Hinweis: Alle Strukturen werden rekursiv erstellt **/ try { $file1 = array( 'path' => '/new_path/inner_path/file1.doc', 'content' => base64_encode('testcontent'), 'is_path' => 0, 'is_compressed' => 0); $file2 = array( 'path' => '/new_path/inner_path/inner_path2/file2.txt', 'content' => base64_encode('testcontent'), 'is_path' => 0, 'is_compressed' => 1); $path = array( 'path' => utf8_encode("/new_path_a/emty_path"), 'is_path' => 1); $filetree = array($file1, $file2, $path); $crmapi_docs = crmapi::docs(); $success = $crmapi_docs->addTree("common", $filetree, -1, -1); } catch (CRMException $e) { echo $e->getMessage(); } echo $success; ?>
getTree
Syntax:
array getTree(string $module, string $root_path, int $recursive, int $changed_timestamp, int $user_id, int $object_id, int $get_readable_only)
Beschreibung:
Gibt ein Array mit dem angegebenen Dateibaum (Dokumente und Ordner) zurück.
Wirft eine CRMException im Fehlerfall.
Die zurückgegebenen Dokumente müssen zunächst im CRM-System angegeben werden.
$module (obligatorisch):
- die gleichen Eigenschaften wie für #addTree
$root_path (obligatorisch):
- der relative Basispfad zur Wurzel des ausgewählten Moduls oder Objekts
- ein UTF-8 kodierter String wird erwartet
$recursive (optional):
- kann 0 sein(gibt nur Dokumente vom ersten $root_path level) oder 1 (gibt alle Dokumente rekursiv zurück, beginnend mit dem $root_path level)
$changed_timestamp (optional, -1 wenn nicht genutzt):
- wenn gesetzt (UNIX timestamp format) werden alle nach dem Datum des $changed_timestamp geänderten oder erstellten Dateibaumobjekte zurückgegeben
- wenn auf -1 gesetzt, werden alle Dokumente zurückgegeben
$user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
- Gibt die Dokumente des CRM-Nutzers mit der gegebenen User ID zurück
$object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
$get_readable_only (optional, -1 wenn nicht genutzt):
- wenn auf 1 gesetzt werden nur Dokumente/Ordner zurückgegeben, bei denen der authentifizierte Nutzter Leseberechtigungen hat
Eigenschaften des zurückgegebenen document array :
Type(Length) Eigenschaft Beschreibung --------------------------------------------------------------------------------------------- string(255) $path relativer Pfad zum Dokument string(255) $title Titel des Dokuments string(255) $keywords Dokumenten-Stichwörter int $category ID einer einzelnen Kategorie int $filesize Die Dateigröße des Dokuments (0 bei Verzeichnissen) int $dtime Unix-Timestamp der Löschung int $duser Userid des Nutzers, der das Dokument gelöscht hat int $ctime Unix-Timestamp der Erstellung int $cuser Userid des Nutzers, der das Dokument erstellt hat int $otime Unix-Timestamp des letzten Dokumenten-Downloads/des letzten Öffnens int $ouser Userid vom Nutzer, welcher das Dokument zuletzt gedownloaded/geöffnet hat int $etime Unix-Timestamp der letzten Änderung int $euser Userid des Nutzers, der die letzte Änderung vorgenommen hat int $itime Unix-Timestamp der letzten Indizierung int $iuser Userid des Nutzers, der die letzte Indizierung durchgeführt hat int $edit 1 wenn das Dokument gerade bearbeitet wird, 0 wenn nicht int $edituser Userid des Nutzers, der das Dokument gerade bearbeitet int $authuser Userid des authentifizierten Session-Users int $version Die Dokumentenversion int $folder 0 wenn das Dokument eine Datei ist, 1 wenn das Dokument ein Ordner ist string(255) $mimetype Der MIME-Type des Dokuments string(255) $modul Der Name des Moduls text $content Base64-kodierter (optional: komprimierter) Dokumenteninhalt, nur in crmgetDocument genutzt array $group_permission Array mit Gruppenberechtigungen array $user_permission Array mit Nutzerberechtigungen
Eigenschaften von $group_permission und $user_permission array :
Type(Length) Eigenschaft Beschreibung --------------------------------------------------------------------------------------------- int $id Nutzer- oder Gruppen-ID des Dokuments int $read 1 = Leseberechtigungen, 0 = keine Leseberechtigungen, -1 = keine Leseberechtigungen und keine Vererbung von Gruppenrechten int $write 1 = Schreibberechtigungen, 0 = keine Schreibberechtigungen, -1 = keine Schreibberechtigungen und keine Vererbung von Gruppenrechten int $delete 1 = Löschberechtigung, 0 = keine Löschberechtigung, -1 = keine Löschberechtigung und keine Vererbung von Gruppenrechten
Beispiel:
<?php try { /** * this example fetches all common documents changed after 01.08.2008 */ // the CRM module $module = "common"; // we want all the docs from the parent directory "new_docs" $base_directory = utf8_encode("new_docs"); // fetch the complete tree - recursive $recursive = 1; // the timestamp for 01.08.2008 $timestamp = 1217541600; // no user ID needed when using not the own docs $userid = -1; // the common docs module needs no object ID $objectid = -1; // we want all the documents, not only the read only docs for the current session user $readonly_docs = -1; // get API Doc object $crmapi_docs = crmapi::docs(); // send the request and fetch the result $result = $crmapi_docs->getTree($module, $base_directory, $recursive, $timestamp, $userid, $objectid, $readonly_docs); // loop through the result set foreach ($result as $doc) { // handle an Beispiel return value // is the current dataset a directory? if ($doc['folder'] == 1) { echo $doc['path'] . " is an DIRECTORY!<br>"; } else echo $doc['path'] . " is an FILE!<br>"; // show the user permissions for the current dataset foreach ($doc['$user_permission'] as $perm) { //display the read, write and delete rights for the current user echo "User with ID " .$perm['id'] . ": can read - " . ($perm['read'] == 1 ? "YES<br>" : "NO<br>"); echo "User with ID " .$perm['id'] . ": can write - " . ($perm['write'] == 1 ? "YES<br>" : "NO<br>"); echo "User with ID " .$perm['id'] . ": can delete - " . ($perm['delete'] == 1 ? "YES<br>" : "NO<br>"); } } } catch (CRMException $e) { echo $e->getMessage(); } ?>
uploadDocument
Syntax:
int uploadDocument(string $module, string $document_path, string $document_content, int $user_id, int $object_id, int $compress)
Beschreibung:
Läd ein Dokument hoch und gibt 1 bei Erfolg zurück.
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): siehe #addTree
$document_path (obligatorisch):
- Der relative Pfad des Dokuments, einschließlich Verzeichnis und Dateiname
- Der angegebene Pfad muss gültig sein, uploadDocument() erstellt keine Verzeichnisse
- ein UTF-8 kodierter String wird erwartet
$document_content (obligatorisch):
- Der Inhalt des Elements
- ein UTF-8 kodierter String wird erwartet
- Kann komprimiert sein(vor dem Base64-Codieren unter Zuhilfenahme von GZIP)
$user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module als user_docs gesetzt wird
- Läd das Dokument in die Eigenen Dateien des Nutzers
$object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf einen der folgenden Werte gesetzt ist: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des entsprechenden Objekts
$compress (optional, -1 wenn nicht genutzt):
- muss auf 1 gesetzt sein, wenn der hochgeladene Content mit GZIP (Spezifikationen: http://www.faqs.org/rfcs/rfc1952 ) komprimiert wurde (vor der Base64-Codierung)
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); $base64_content = base64_encode('testcontent'); $new_doc_full_name = utf8_encode("/temp/uploaded_document.doc"); //Uploads a document into the existing directory "temp" of the contacts (ID 4978) document collection: $result = $crmapi_docs->uploadDocument("contacts", $new_doc_full_name, $base64_content, -1, 4978, -1); } catch (CRMException $f) { echo $e->getMessage(); } echo $result; ?>
createDocument
Syntax:
int createDocument(string $module, string $document_path, string $draft_path, int $user_id, int $object_id, string $draft_contact, int $draft_project)
Beschreibung:
Erstellt ein Dokument basierend auf einem existierenden Entwurf und gibt 1 zurück.
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): siehe #addTree
$document_path (obligatory):
- der relative Pfad des neuen Dokuments, einschließlich Verzeichnis und Dateiname
- der gesetzte Verzeichnispfad muss existieren, crmcreateDocument erstellt keine Verzeichnisse
- ein UTF-8 kodierter String wird erwartet
$draft_path (obligatorisch):
- der relative Pfad des Entwurf-Dokuments, einschließlich Verzeichnis und Dateiname
- ein UTF-8 kodierter String wird erwartet
$user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
- läd das Dokument in die Eigenen Dateien des Nutzers
$object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf einen der folgenden Werte gesetzt ist: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des entsprechenden Objekts
$draft_contact (optional, -1 wenn nicht genutzt):
- Die Kontakt- / Personen-ID die vom Entwurfsparser genutzt wird (Kontakt-Platzhalter im Entwurf werden mit den Informationen des ausgewählten Kontakts / der ausgewählten Person ersetzt)
- Format: Contact-Id:Person-Id
$draft_project (optional, -1 wenn nicht genutzt):
- die Projekt-ID die für den Entwurfsparser genutzt wird (Projekt-Platzhalter im Entwurf werden mit den Informationen des gewählten Projekts ersetzt)
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); //Creates a new document based on a draft for contact 4978: $draft_doc_full_name = utf8_encode("Mappe1.xls"); $new_doc_full_name = utf8_encode("Document.xls"); $result = $crmapi_docs->createDocument("contacts", $new_doc_full_name, $draft_doc_full_name, -1, 4978, "4978:4829", 362); } catch (CRMException $f) { echo $e->getMessage(); } echo $result; ?>
renameDocument
Syntax:
int renameDocument(string $module, string $from_name, string $to_name, int $user_id, int $object_id)
Beschreibung:
Benennt ein Dokument oder einen Ordner um und gibt 1 zurück.
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): siehe module bei #addTree
$from_path (obligatorisch):
- der relative Pfad des Dokuments oder des Verzeichnisses, das umbenannt werden soll
- ein UTF-8 kodierter String wird erwartet
$to_path (obligatorisch):
- der relative Pfad des umbenannten Dokuments oder Verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
$object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf einen der folgenden Werte gesetzt ist: offers, contracts, calls, todo, dates, projects, contacts
- enthält die entsprechende Objekt-ID
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); // renames the directory "newdir" into "newdir_renamed" from contact ID 4978 $from_doc_name = utf8_encode("newdir"); $to_doc_name = utf8_encode("newdir_renamed"); $result = $crmapi_docs->renameDocument($session_id , "contacts", $from_doc_name, $to_doc_name, -1, 4978); } catch (CRMException $f) { echo $e->getMessage(); } echo $result; ?>
getDocument
Syntax:
array getDocument(string $module, string $root_path, int $user_id, int $object_id, int $compress)
Beschreibung:
Gibt alle Information eines einzelnen Verzeichnisses oder Dokuments zurück, wenn ein Dokument angefordert wird, wird der Inhalt zurückgegeben( Base64-codiert und - optional - GZIP komprimiert).
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): siehe #addTree
$root_path (obligatorisch):
- der relative Pfade des angeforderten Dokuments oder Verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
- gibt die Dokumente des Nutzers mit der gegebenen ID zurück
$object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
$compress (optional, -1 wenn nicht genutzt):
- wenn auf 1 gesetzt, wird der Inhalt mit GZIP (Spezifikationen: http://www.faqs.org/rfcs/rfc1952 ) komprimiert (vor der Base64-Codierung)
Eigenschaften des zurückgegebenen Document array :
Type(Length) Eigenschaft Beschreibung --------------------------------------------------------------------------------------------- string(255) $path relativer Pfad des Dokuments string(255) $title Titel des Dokuments string(255) $keywords Dokument Stichwort int $category ID einer einzigen Kategorie int $filesize die Dateigröße des Dokuments (0 bei Verzeichnissen) int $dtime Unix-Timestamp der Löschung int $duser Userid des Nutzers, der das Dokument gelöscht hat int $ctime Unix-Timestamp der Erstellung int $cuser Userid des Nutzers, der das Dokument erstellt hat int $otime Unix-Timestamp des letzten Dokumenten-Downloads/des letzten Öffnens int $ouser Userid vom Nutzer, welcher das Dokument zuletzt gedownloaded/geöffnet hat int $etime Unix-Timestamp der letzten Änderung int $euser Userid des Nutzers, der die letzte Änderung vorgenommen hat int $itime Unix-Timestamp der letzten Indizierung int $iuser Userid des Nutzers, der die letzte Indizierung durchgeführt hat int $edit 1 wenn das Dokument gerade bearbeitet wird, 0 wenn nicht int $edituser Userid des Nutzers, der das Dokument gerade bearbeitet int $authuser Userid des authentifizierten Session-Users int $version Die Dokumentenversion int $folder 0 wenn das Dokument eine Datei ist, 1 wenn das Dokument ein Ordner ist string(255) $mimetype Der MIME-Type des Dokuments string(255) $modul Der Name des Moduls text $content Base64-kodierter (optional: komprimierter) Dokumenteninhalt, nur in crmgetDocument genutzt array $group_permission Array mit Gruppenberechtigungen array $user_permission Array mit Nutzerberechtigungen
Eigenschaften des $group_permission und $user_permission arrays :
Type(Length) Eigenschaft Beschreibung --------------------------------------------------------------------------------------------- int $id Nutzer- oder Gruppen-ID des Dokuments int $read 1 = Leseberechtigungen, 0 = keine Leseberechtigungen, -1 = keine Leseberechtigungen und keine Vererbung von Gruppenrechten int $write 1 = Schreibberechtigungen, 0 = keine Schreibberechtigungen, -1 = keine Schreibberechtigungen und keine Vererbung von Gruppenrechten int $delete 1 = Löschberechtigung, 0 = keine Löschberechtigung, -1 = keine Löschberechtigung und keine Vererbung von Gruppenrechten
Beispiel:
<?php try { /** * this Beispiel fetches all the information from a document * the document is located in the archive of the contact with ID 4978 */ // the CRM module $module = "contacts"; // the full path to the document $docpath = utf8_encode("directory/Creek.jpg"); // no user ID needed when using not the own docs $userid = -1; // the contact ID is 4878 $objectid = 4978; // the document should be compressed $compress = 1; // get API Doc object $crmapi_docs = crmapi::docs(); // send the request and fetch the result $result = $crmapi_docs->getDocument($module, $docpath, $userid, $objectid, $compress); // handle an Beispiel return value // is the current dataset a directory? if ($result[0]['folder'] == 1) { echo $result[0]['path'] . " is an DIRECTORY!<br>"; } else echo $result[0]['path'] . " is an FILE!<br>"; // show the user permissions for the current dataset foreach ($result[0]['user_permission'] as $perm) { //display the read, write and delete rights for the current user echo "User with ID " .$perm['id'] . ": can read - " . ($perm['read'] == 1 ? "YES<br>" : "NO<br>"); echo "User with ID " .$perm['id'] . ": can write - " . ($perm['write'] == 1 ? "YES<br>" : "NO<br>"); echo "User with ID " .$perm['id'] . ": can delete - " . ($perm['delete'] == 1 ? "YES<br>" : "NO<br>"); } } catch (CRMException $f) { echo $e->getMessage(); } ?>
createDirectory
Syntax:
int createDirectory(string $module, string $directory_path, int $user_id, int $object_id)
Beschreibung:
Erstellt rekursiv ein Verzeichnis im gegebenen Eltern-Verzeichnis ($directory_path) und gibt 1 zurück.
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): see module at #addTree
$directory_path (obligatorisch):
- der relative Pfad des neuen Verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
$object_id (optional, -1 if not used):
- muss gesetzt sein wenn $module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); // creates a new directory "newdir" in the root path of the contact documents from contact ID 4978 $new_directory = utf8_encode("newdir"); $result = $crmapi_docs->createDirectory("contacts", $new_directory, -1, 4978); } catch (CRMException $e) { echo $e->getMessage(); } echo $result; ?>
moveDocument
Syntax:
int moveDocument(string $from_module, string $from_document_path, int $from_user_id, int $from_object_id,
string $to_module, string $to_document_path, int $to_user_id, int $to_object_id, int $copy_rights)
Beschreibung:
Verschiebt ein Verzeichnis (einschließlich aller Unterverzeichnisse) oder ein einzelnes Dokument von einem Ort zum anderen und gibt 1 zurück. Ein Multi-Modul-Verschieben wird unterstützt, die Zugriffsrechte der verschoben Dokumente werden erhalten (optional).
Wirft eine CRMException im Fehlerfall.
$from_module (obligatorisch): see module at #addTree
$from_document_path (obligatorisch):
- der relative des Quelldokuments/-Verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$from_user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $from_module auf user_docs gesetzt ist
$from_object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $from_module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
$to_module (obligatorisch): see module at #addTree
$to_document_path (obligatorisch):
- der relative des Zieldokuments/-Verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$to_user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $to_module auf user_docs gesetzt ist
$to_object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $to_module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
$copy_rights (optional, -1 wenn nicht genutzt):
- wenn auf 1 gesetzt, werden auch alle Dokumentenrechte kopiert(Nutzer und Gruppenrechte)
- wenn auf -1 gesetzt, werden die Rechte vom Elternelement von $to_document_path geerbt
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); // move the file Document.doc from the contact with the ID 4878 to the file Test.doc in the user docs of user with ID 4 // keep the permission setting of the moved file $original_doc_full_name = utf8_encode("Document.doc"); $copy_doc_full_name = utf8_encode("Test.doc"); $result = $crmapi_docs->moveDocument( "contacts", $original_doc_full_name, -1, 4978, "user_docs", $copy_doc_full_name, 4, -1, true ); } catch (CRMException $f) { echo $e->getMessage(); } echo $result; ?>
copyDocument
Syntax:
int copyDocument(string $from_module, string $from_document_path, int $from_user_id, int $from_object_id,
string $to_module, string $to_document_path, int $to_user_id, int $to_object_id, int $copy_rights)
Beschreibung:
Kopiert ein Verzeichnis (einschließlich Unterverzeichnisse) oder ein einzelnes Dokument von einer Stelle zu einer anderen und gibt 1 zurück. Ein Multi-Modul-Kopieren wird unterstützt, die Zugriffsrechte der kopierten Dokumente werden erhalten (optional).
Wirft eine CRMException im Fehlerfall.
Hinweis: Diese Funktion bietet nicht die Möglichkeit, ein Dokument (oder ein Verzeichnis) in den selben Ordner zu kopieren. In CRM mit der Version >= 3.4.5083 kann man dieses machen mit der Funktion copyDoc().
Die copyDoc() Funktion benutzt man genau wie diese copyDocument() Funktion.
$from_module (obligatorisch): siehe module bei #addTree
$from_document_path (obligatorisch):
- der relative Pfad des Quelldokuments/-verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$from_user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $from_module auf user_docs gesetzt ist
$from_object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $from_module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
$to_module (obligatorisch): siehe module bei #addTree
$to_document_path (obligatorisch):
- der relative Pfad des Zieldokuments/-verzeichnisses
- ein UTF-8 kodierter String wird erwartet
$to_user_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $to_module auf user_docs gesetzt ist
$to_object_id (optional, -1 wenn nicht genutzt):
- muss gesetzt sein wenn $to_module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
$copy_rights (optional, -1 wenn nicht genutzt):
- wenn auf 1 gesetzt, werden auch alle Dokumentenrechte kopiert(Nutzer und Gruppenrechte)
- wenn auf -1 gesetzt, werden die Rechte vom Elternelement von $to_document_path geerbt
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); // copy the entire directory directory_a from the contact with the ID 4878 to a new directory in the user docs of user with ID 4 // keep the permission setting of each file / directory $original_doc_full_name = utf8_encode("directory_a"); $copy_doc_full_name = utf8_encode("directory_b"); $result = $crmapi_docs->copyDocument( "contacts", $original_doc_full_name, -1, 4978, "user_docs" , $copy_doc_full_name, 4, -1, 1 ); } catch (CRMException $e) { echo $e->getMessage(); } echo $result; ?>
searchDocument
Syntax:
array searchDocument(string $searchterm, string $module, string $path, int $fulltext )
Beschreibung:
Gibt ein Array mit Dokumenten, welche den Suchausdruck enthalten, zurück.
Wirft eine CRMException im Fehlerfall.
$searchterm (obligatorisch):
- der gesuchte Ausdruck
$module (obligatorisch): siehe #addTree
$path (optional, "" wenn nicht genutzt):
- der relative Basispfad zur Wurzel des ausgewählten Moduls
- ein UTF-8 kodierter String wird erwartet
$fulltext (obligatorisch):
- 0 = keine Volltextsuche
- 1 = Volltextsuche
Eigenschaften der zurückgegebenen document arrays :
Type(Length) Eigenschaft Beschreibung
---------------------------------------------------------------------------------------------
string(255) $path relativer Pfad zum Dokument
string(255) $title Titel des Dokuments
string(255) $keywords Dokumentenstichwörter
int $category ID einer einzelnen Kategorie
int $filesize Die Dateigröße des Dokuments (0 bei Verzeichnissen)
int $dtime Unix-Timestamp der Löschung
int $duser Userid des Nutzers, der das Dokument gelöscht hat
int $ctime Unix-Timestamp der Erstellung
int $cuser Userid des Nutzers, der das Dokument erstellt hat
int $otime Unix-Timestamp des letzten Dokumenten-Downloads/des letzten Öffnens
int $ouser Userid vom Nutzer, welcher das Dokument zuletzt gedownloaded/geöffnet hat
int $etime Unix-Timestamp der letzten Änderung
int $euser Userid des Nutzers, der die letzte Änderung vorgenommen hat
int $itime Unix-Timestamp der letzten Indizierung
int $iuser Userid des Nutzers, der die letzte Indizierung durchgeführt hat
int $edit 1 wenn das Dokument gerade bearbeitet wird, 0 wenn nicht
int $edituser Userid des Nutzers, der das Dokument gerade bearbeitet
int $authuser Userid des authentifizierten Session-Users
int $version Die Dokumentenversion
int $folder 0 wenn das Dokument eine Datei ist, 1 wenn das Dokument ein Ordner ist
string(255) $mimetype Der MIME-Type des Dokuments
string(255) $modul Der Name des Moduls
int $read_permission 1 = Leseberechtigungen,
0 = Keine Leseberechtigungen,
-1 = Keine Leseberechtigungen und keine Vererbung von Gruppenrechten
int $write_permission 1 = Schreibberechtigungen,
0 = Keine Schreibberechtigungen,
-1 = Keine Schreibberechtigungen und keine Vererbung von Gruppenrechten
int $delete_permission 1 = Löschberechtigungen,
0 = Keine Löschberechtigungen,
-1 = Keine Löschberechtigungen und keine Vererbung von Gruppenrechten
Beispiel:
updateDocument
Syntax:
int updateDocument(string $module, array $doc_Eigenschaft, int $user_id, int $object_id)
Beschreibung:
Aktualisiert die Dokumenten-Metainformationen und -Berechtigungen für ein einzelnes Dokument oder ein Verzeichnis und gibt 1 zurück. Der Session-Benutzer muss Lese-und Schreibrechte auf die Daten des Dokuments und zusätzliche Berechtigungen haben, um die Rechte zu aktualisieren (also volle Berechtigungen).
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): siehe module bei #addTree
$user_id (optional, -1 wenn ungenutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
$object_id (optional, -1 wenn ungenutzt):
- muss gesetzt sein wenn $module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
Eigenschaften von doc_Eigenschaft array :
Type(Length) Eigenschaft Beschreibung
---------------------------------------------------------------------------------------------
string(255) $path Relativer Pfad des Dokuments / Verzeichnisses
int $in_process 1 = Dokument wird derzeit bearbeitet, 0 = Dokument wird nicht bearbeitet
string(255) $title Der Titel des Dokuments
string(255) $keywords Die Stichworte des Dokuments
string(255) $Beschreibung Kurze Beschreibung des Dokuments
int $category Die Dokumentenkategorie
array $updated_group_permission Ein Array mit updated_group_permission Werten, einschließlich aller geänderten Gruppenrechte
array $removed_group_permission Ein Array mit removed_group_permission Werten, beinhaltet IDs
der Gruppen deren Gruppenrechte entfernt werden sollen
array $updated_user_permission Ein Array mit updated_user_permission Werten, einschließlich aller geänderten Nutzerrechte
array $removed_user_permission Ein Array mit removed_user_permission Werten, beinhaltet IDs
der Benutzer deren Nutzerrechte entfernt werden sollen
Eigenschaften von update permission items:
Type(Length) Eigenschaft Beschreibung --------------------------------------------------------------------------------------------- int $id Die Nutzer- oder Gruppen-ID int $read Leseberechtigung: -1 = Keine Berechtigung und keine Gruppenrechtevererbung , 0 = keine Berechtigung, 1 = Berechtigt int $write Schreibberechtigung: -1 = Keine Berechtigung und keine Gruppenrechtevererbung , 0 = keine Berechtigung, 1 = Berechtigt int $delete Löschberechtigung: -1 = Keine Berechtigung und keine Gruppenrechtevererbung , 0 = keine Berechtigung, 1 = Berechtigt
Eigenschaften von remove permission items:
Type(Length) Eigenschaft Beschreibung --------------------------------------------------------------------------------------------- int $id Nutzer- oder Gruppen-ID des Nutzers / der Gruppe, deren Berechtigung entfernt werden soll
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); // Update the metadata the directory "temp2" from the contact documents of contact ID 4978 $document_properties= array( "path" => utf8_encode("temp2"), "title" => utf8_encode("new title"), "keywords" => utf8_encode("keyword_1, keyword_2"), "Beschreibung"=> utf8_encode("this is a short document Beschreibung"), "category" => 5, "updated_group_permission" => array( array( "id" => 1, "read" => 1, "write" => 1, "delete" => 0), array( "id" => 14, "read" => 1, "write" => 1, "delete" => 0) ), "removed_group_permission" => array( array( "id" => 4) ), "updated_user_permission" => array( array( "id" => 5, "read" => 1, "write" => 1, "delete" => 0), array( "id" => 4, "read" => 1, "write" => 1, "delete" => 0) ), "removed_user_permission" => array ( array( "id" => 20)) ); $result = $crmapi_docs->updateDocument("contacts", $document_properties, -1, 4978); } catch (CRMException $e) { echo $e->getMessage(); } echo $result; ?>
deleteDocument
Syntax:
int deleteDocument(string $module, string $document_path, int $user_id, int $object_id)
Beschreibung:
Löscht ein Dokument oder einen ganzen Dateibaum einschließlich aller Kindelemente und gibt 1 zurück. Die gelöschten Dokumente werden in den Papierkorb des authentifizierten Benutzers gelegt. Hinweis: Dateien mit dem gleichen Namen können nicht gelöscht werden, wenn bereits ein Element im Papierkorb liegt; Es sollte also vorher sichergestellt werden das ein gleichnamiges Dokument nicht bereits im Papierkorb liegt.
Wirft eine CRMException im Fehlerfall.
$module (obligatorisch): siehe module bei #addTree
$document_path (obligatorisch):
- der relative Pfad des Dokuments / Verzeichnisses das gelöscht werden soll
- ein UTF-8 kodierter String wird erwartet
$user_id (optional, -1 wenn ungenutzt):
- muss gesetzt sein wenn $module auf user_docs gesetzt ist
$object_id (optional, -1 wenn ungenutzt):
- muss gesetzt sein wenn $module einen der folgenden Werte hat: offers, contracts, calls, todo, dates, projects, contacts
- enthält die ID des jeweiligen Objekts
Beispiel:
<?php try { // get API Doc object $crmapi_docs = crmapi::docs(); // delete (move to trash) the directory "temp" including all its childs from the own docs of user 4 $doc_full_name = utf8_encode("temp"); $result = $crmapi_docs->deleteDocument("user_docs", $doc_full_name, 4, -1); } catch (CRMException $e) { echo $e->getMessage(); } echo $result; ?>
emptyTrash
Syntax:
int emptyTrash()
Beschreibung:
Leert den Papierkorb des authentifizierten Nutzers und gibt 1 zurück.
Wirft eine CRMException im Fehlerfall.
Beispiel:
documentExists
(CRM >= 3.4.4514)
Syntax:
boolean documentExists( string $module, string $doc_path )
Beschreibung:
Liefert true, wenn ein Dokument oder ein Verzeichnis existiert. Liefert false wenn nicht.
Wirft eine CRMException im Fehlerfall.
Beispiel:
