API Documents – TecArt-CRM Developer-Wiki

API Documents

Aus TecArt-CRM Developer-Wiki

Wechseln zu: Navigation, Suche

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:

<?php
 
try {
    // get API Doc object
    $crmapi_docs = crmapi::docs();
 
    // search all common documents containing "testterm"
    $result = $crmapi_docs->searchDocument("testterm", "common", "", 1);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
print_r($result);
?>

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:

<?php
 
try {
    // get API Doc object
    $crmapi_docs = crmapi::docs();
 
    // empty the trash of the session user
    $result = $crmapi_docs->emptyTrash();
}
catch (CRMException $e) {
   echo $e->getMessage();
}
 
echo $result;
?>

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:

<?php
 
try {
    // get API Doc object
    $crmapi_docs = crmapi::docs();
 
    $is_exists = $crmapi_docs->documentExists('common', '/test_folder/test_document.doc');
}
catch (CRMException $e) {
   echo $e->getMessage();
}
 
if ($is_exists)
    echo 'Document already exists';
else
    echo 'Document does not exists';
?>