Extensions/How to create/fr

Étapes à suivre
Une extension permet d'ajouter des fonctionnalités à LibO. Parmi les extensions les plus téléchargées, citons :


 * l'ajout de fonctionnalités
 * l'ajout de thèmes à la Galerie

Quelle que soit l'extension que l'on veut construire les étapes à suivre sont les mêmes :


 * 1) rassemblement des fichiers dans un répertoire
 * 2) configuration des fichiers de description
 * 3) construction de l'extension
 * 4) diffusion de l'extension

Nous allons présenter ici la construction d'une extension pour ajouter des images dans la Galerie. Un exemple minimaliste (sans image) est disponible ici.

Préparation des images
Pour diffuser des images que l'on veut utiliser régulièrement dans LibO, la solution la plus simple consiste à construire une extension qui va ajouter un ou plusieurs thèmes à la Galerie contenant ces images. Ces images peuvent être suivant différents formats :


 * image par points issue d'un fichier PNG, JPEG, GIF, BMP, TIFF, etc.
 * image vectorielle construite avec des objets de dessin de Draw : rectangles, ellipses, segments,...

Il faut donc rassembler les images dans un thème :


 * cliquez sur l'onglet Galerie du volet latéral
 * cliquez sur le bouton Nouveau thème
 * renseignez le nom et notez l'emplacement (ce sera nécessaire pour retrouver le fichier)
 * validez par OK

Vous avez maintenant un nouveau thème qui est vide. Ajoutez les images que vous souhaitez y mettre. Pour les fichiers images par points, il n'est pas conseillé d'utiliser la méthode d'ajout direct dans le thème :


 * clic droit sur le nom du thème > Propriétés, onglet Fichiers,
 * bouton Recherche de fichiers pour parcourir le disque
 * bouton Ajouter

En effet, par cette méthode, seul un lien est ajouté dans le thème, et cela compliquera l'insertion dans l'extension. Il vaut donc mieux importer le fichier par le menu Insertion > Image dans un document Draw par exemple, puis d'ajouter l'image dans le thème comme pour une image vectorielle :


 * ajustez le zoom et les ascenseurs pour visualiser l'ensemble de l'image à insérer
 * cliquez de façon prolongée sans bouger sur l'image. Au bout de quelques secondes, l'image a été mise en mémoire par LibO : une légère modification de la bordure s'est opérée
 * sans relâcher, faites glisser dans le thème.

Si cette étape échoue (l'image est déplacée dans le dessin) il faut recommencer l'étape précédente : vous n'avez probablement pas attendu assez longtemps. Pour vérifier que toutes vos images sont bien dans le thème, cliquez sur chacune, et vous devriez voir un nom du type dd2954. Si un chemin apparait, c'est que l'image n'est pas réellement dans le thème, mais qu'il n'y a qu'un lien vers un fichier. Ceci compliquera grandement la construction de l'extension. Dans ce cas, il faut faire glisser l'image à partir du thème vers un document Draw, puis la réinsérer dans le thème comme précédemment.

Lorsque toutes les images souhaitées ont été insérées, vous avez la possibilité de leur donner un nom :


 * clic droit sur l'image dans le thème > Titre

Ce titre est purement informatif pour l'utilisateur, il n'a pas besoin d'être unique.

Rendez-vous ensuite à l'emplacement repéré lors de la création du thème et récupérez les 3 fichiers constituant chaque thème :,   et. étant le numéro du thème. Ce numéro a besoin d'être unique dans un même répertoire. Comme l'extension va créer ses propres répertoires, il n'est pas nécessaire que le numéro soit unique pour tous les thèmes d'un utilisateur.

Construction des fichiers de configuration
Une extension est constituée d'un seul fichier d'extension .OXT. Comme tous les fichiers au format OpenDocument, il s'agit d'un fichier compressé. Pour construire une extension, le mieux est de récupérer une extension du même type que celle que l'on veut construire. Par exemple, pour ajouter un thème de la Galerie, récupérons |l'extension de la Galerie de morceaux de puzzle depuis le site des extensions. N'installez pas directement l'extension, mais enregistrez le fichier. Dézippez le fichier dans un nouveau répertoire (au besoin changez l'extension du fichier en .ZIP). Dans ce répertoire vous retrouvez tous les fichiers de configuration de l'extension. Il faut repérer ce qui est indispensable au fonctionnement de l'extension et ce qui est ajouté par l'extension. Le minimum est contenu dans cette extension.

répertoire
Ce répertoire contient les fichiers des thèmes. Il faut supprimer tout le contenu et le remplacer par nos fichiers,   et.

répertoire
Ce répertoire est présent dans toutes les extensions et est nécessaire pour l'installation de l'extension. Il contient le fichier  qui déclare les fichiers de l'extension. A priori il n'est pas nécessaire de le modifier, sauf de corriger éventuellement les chemins.

Il s'agit donc de la déclaration du fichier  comme fichier de configuration. Pour que votre extension soit compatible avec tous les systèmes d'exploitation, attention au respect des majuscules/minuscules dans les noms de fichier.

répertoire
Ce répertoire n'est pas obligatoire, mais il contient les fichiers texte de description de l'extension dans différentes langues. Ce texte est utilisé dans le gestionnaire d'extensions pour décrire l'extension. Si un fichier dans la langue de l'interface n'est pas présent, c'est le fichier en anglais qui utilisé. Vous pouvez aussi ne prévoir qu'un seul fichier de description !

répertoire
Ce répertoire n'est pas obligatoire, mais il contient les fichiers texte des licences dans différentes langues. Si vous n'avez pas prévu de faire valider une licence au moment de l'installation de l'extension, ce répertoire n'est pas nécessaire. Cependant, il est recommandé de disposer d'un fichier texte donnant la licence d'utilisation dans l'extension, par exemple en renvoyant sur les licences GNU-GPL, LGPL, PDL, etc.

Autres répertoires
D'autres répertoires peuvent exister, mais ne sont pas nécessaires au fonctionnement et à l'installation de l'extension.

Autres fichiers
Il y a également des fichiers présents à la racine de l'extension :


 * n'importe quel fichier de description ou de licence. En effet, il n'est pas obligatoire de mettre ces fichiers dans des répertoires à part. C'est plus propre, c'est tout.
 * fichier  : ce fichier est très important, et nous allons le détailler juste après
 * fichier  : ce fichier déclare le rôle de l'extension et comment l'installer. Ainsi pour une extension de la Galerie :

Il n'y a rien à changer dedans.


 * un fichier image : il s'agit d'une image de 42x42 points au format PNG qui sera affichée dans le gestionnaire d'extension.

Fichier
C'est ce fichier qui va contenir toute l'information que vous voulez personnaliser. Il faut prendre soin de le remplir par rapport aux aspects spécifiques de son extension : noms des fichiers (! majuscule/minuscule), utilisation ou non d'une fonctionnalité...

La page du wiki (en anglais) https://wiki.openoffice.org/wiki/Documentation/DevGuide/Extensions/Example décrit les différents éléments le constituant. Nous allons revoir les éléments principaux.

Structure
Le fichier démarre par un entête :

et doit se terminer par une balise de fin

Entre les deux, il y a une série d'entrées du type :

ou

Parmi les entrées, certaines sont obligatoires d'autres optionnelles.

Identifiant
Cet identifiant doit être unique dans le monde. C'est pourquoi il est recommandé d'utiliser une chaine de caractères en minuscules, dans l'ordre inverse de domaine. Par exemple :

Ainsi utilisé dans  :

Numéro de version
Si vous souhaitez bénéficier du système de mise à jour automatique des extensions, il est important de renseigner cette rubrique. A priori, il y a 3 niveau de numérotation : majeur, mineur, micro.

Il ne faut pas confondre le numéro de version de l'extension, géré par le développeur de l'extension, et le numéro de version de LibO.

Dépendances
Il faut indiquer le numéro de version d'OOo/LibO à partir de laquelle l'extension est fonctionnelle.

Pour les extensions utilisant des caractéristiques spécifiques disponibles uniquement à partir de la version 3.5, LibreOffice introduit un champ LibreOffice-minimal-version (voir la page correspondante du Wiki).

Exemple d'utilisation :

Plateformes supportées
Si l'extension est indépendante des plateformes (ce qui est le cas pour un thème de la Galerie), on le précise ainsi :

Sinon, on donne une liste :

Nom affiché
Le nom affiché dans le gestionnaire d'extension est déclaré ainsi :

Image
L'image utilisée dans le gestionnaire d'extension est déclarée ainsi :

Attention à la localisation du fichier si vous l'avez mis dans un sous-répertoire, attention aux majuscules/minuscules. L'image doit avoir une taille de 42x42 pour ne pas être déformée.

Vous pouvez définir une autre image pour les interfaces définies en contraste élevé (déficients visuels) :

Description
Le texte de description qui sera affiché dans le gestionnaire d'extensions, doit être enregistré dans un fichier (cf. plus haut) :

Les fichiers doivent être au format UTF-8.

Autres informations
D'autres rubriques sont disponibles mais ne sont pas indispensables :


 * validation d'une licence :

Si le champ  a été renseigné par , alors il sera possible d'installer l'extension pour tous les utilisateurs. Si on souhaite que chaque utilisateur valide la licence, le champ doit être renseigné avec.

Construction de l'extension

 * Sélectionnez tous les fichiers et répertoires constituant votre extension et faites-en un fichier ZIP
 * Changez l'extension du fichier ZIP en OXT
 * C'est fait ! Votre extension est prête à être diffusée.

Cette procédure rapide ne crée pas un fichier très propre. Il est recommandé de suivre cette procédure qui crée un fichier au format OpenDocument valide.

Diffusion de l'extension
Déposez votre extension sur le site officiel de partage des extensions https://extensions.libreoffice.org/ Ainsi tout le monde pourra bénéficier de votre extension !

N'oubliez que LibO doit être intégralement redémarré (démarrage rapide compris) pour que l'extension soit prise en compte.