Éditez un document
edit
GET https://collaboractor.com/api/v1/edit/file?login=&password=&lang=
file est le nom du fichier dans votre espace personnel à éditer.
login | Votre code d'identification. |
---|---|
password | Votre mot de passe. |
lang | Langue de l'interface de l'éditeur. |
lang
- langue de l'éditeur, un code de 2 lettres minuscules, e.g. fr
ou en
.
$ curl -X GET "https://collaboractor.com/api/v1/edit/file_sample_500kB.doc"?login=abcdef&password=ABCDEF&lang=fr" > edit_sample_500kB.html
Affichez le code HTML du document :
$ cat edit_sample_500kB.html
Si le nom du fichier ou le code de la langue est invalide, le service retourne l'erreur HTTP/1.1 400 Bad Request
.
Si aucun fichier n'a le nom spécifié dans votre espace personnel, le service retourne l'erreur HTTP/1.1 404 Not Found
.
POST https://collaboractor.com/api/v1/edit?login=&password=&lang=
login | Votre code d'identification. |
---|---|
password | Votre mot de passe. |
lang | Langue de l'interface de l'éditeur. |
multipart/form-data | |
file | Contenu du document en binaire. |
lang
- langue de l'éditeur, un code de 2 lettres minuscules, e.g. fr
ou en
.
$ curl -X POST "https://collaboractor.com/api/v1/edit?login=abcdef&password=ABCDEF&lang=fr" -F "file=@file_sample_500kB.doc;type=application/msword" > edit_sample_500kB.html
NOTE : Utilisez une commande comme file -ib file_sample_500kB.doc
pour obtenir le type MIME du fichier en paramètre de l'argument file
.
Affichez le code HTML du document :
$ cat edit_sample_500kB.html
Si le nom du fichier ou le code de la langue est invalide ou si le type de fichier spécifié n'est pas géré ou si la taille du fichier est supérieure à la taille maximale d'un fichier dans votre espace personnel, le service retourne l'erreur HTTP/1.1 400 Bad Request
.
Si le nombre de fichiers sans votre espace personnel a atteint la limite autorisée, le service retourne l'erreur HTTP/1.1 403 Forbidden
.
Si un fichier avec le même nom existe déjà dans votre espace personnel, le service retourne l'erreur HTTP/1.1 409 Conflict
.
Téléchargez le code de la fonction sendget
de la librairie iZend.
Copiez le fichier dans l'espace de votre application.
NOTE : Reportez-vous à la page Appelez l'API du service pour une description de la fonction sendget
.
Ajoutez le fichier fileedit.php avec le contenu suivant :
- require_once 'sendhttp.php';
Charge le code de la fonction sendget
.
- function file_edit($login, $password, $filename, $lang='en') {
Définit la fonction file_edit
.
$login
est votre code d'identification. $password
est votre mot de passe.
$filename
est le nom du fichier à éditer.
$lang
spécifie dans quelle langue l'éditeur doit être affiché.
- $curl = 'https://collaboractor.com/api/v1/edit/' . urlencode($filename);
Met $curl
à l'URL de l'action edit avec le nom du fichier à éditer.
- $args = array(
- 'login' => $login,
- 'password' => $password,
- 'lang' => $lang,
- );
Prépare la liste des arguments du GET : le code d'identification et le mot de passe du compte de l'utilisateur, la langue de l'éditeur.
- $response=sendget($curl, $args);
Envoie la requête HTTP avec sendget
.
- if (!$response or $response[0] != 200) {
- return false;
- }
Si $response
vaut false
, le serveur est inaccessible.
Si $response[0]
ne contient pas le code de retour HTTP 200 Ok, une erreur d'exécution s'est produite.
En cas d'erreur, file_edit
retourne false.
- return $response[2];
- }
Retourne un document HTML complet contenant un formulaire qui est automatiquement envoyé au service qui retourne l'éditeur qui est affiché pleine page dans un <iframe>
.
EXEMPLE
Le document HTML avec l'éditeur retourné par le service peut être obtenu par le serveur d'un autre site web, de préférence à la suite d'une interaction d'un utilisateur, et renvoyé au navigateur par une simple action en réponse à un GET qui peut vérifier si l'utilisateur est identifié, envoyé une requête au service avec l'identifiant et le mot de passe de l'utilisateur, le nom du fichier à éditer, vérifier la réponse du service et retourner le document HTML qui intégrera l'éditeur dans un <iframe>
que le navigateur peut afficher pleine page dans une nouvelle fenêtre.
Adaptez la fonction suivante à votre environnement de développement :
- require_once 'sendhttp.php';
- function collabora() {
- $login='abcdef';
- $password='ABCDEF';
- $file='file_example_PPT_250kB.ppt';
- $lang='fr';
- $curl = 'https://collaboractor.com/api/v1/edit/' . urlencode($file);
- $args = array(
- 'login' => $login,
- 'password' => $password,
- 'lang' => $lang,
- );
- $response=sendget($curl, $args);
- if (!$response or $response[0] != 200) {
- header('HTTP/1.1 500 Internal Error');
- }
- else {
- header('HTTP/1.1 200 OK');
- header('Cache-Control: no-cache');
- echo $response[2];
- }
- }
NOTE : Dans une implémentation réelle, l'identification de l'utilisateur doit être vérifiée, les paramètres $login
et $password
sont lus dans la session ou dans une base de données et le nom du fichier à éditer peut être récupéré dans l'URL.
Pour exécuter l'éditeur dans votre site web, essayez un simple bouton qui lorsqu'il est cliqué appelle la fonction window.open
du navigateur avec en argument l'URL qui répond au GET par votre implémentation de la fonction collabora
avec le nom du fichier à éditer dans l'URL.
- <p><input type="submit" class="submit" id="btn_collabora_edit" value="Éditer" /></p>
- <script>
- document.getElementById('btn_collabora_edit').onclick = () => window.open('/collabora/file_example_PPT_250kB.ppt');
- </script>
Commentaires