Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: add Special Attributes Objects and Users #99

Merged
merged 1 commit into from
Oct 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Binary file added fr_FR/dev/images/SpecialAttributeObject.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added fr_FR/dev/images/SpecialAttributeUser.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 50 additions & 6 deletions fr_FR/dev/structure_info_json.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
**Documentation fichier info.json**
# Documentation fichier info.json

Intégré depuis la version 3.0 de Jeedom, le fichier ``info.json`` est obligatoire pour le bon fonctionnement des plugins, et leur bon déploiement sur le Market Jeedom.

Le fichier info.json est enregistré dans le dossier ``/plugin_info/`` de votre plugin.

Liste des variables du fichier ``info.json``
## Liste des variables du fichier ``info.json``

Les champs marqués d’un * sont des champs obligatoires.

Expand All @@ -17,7 +17,7 @@ Champs | Valeurs
``licence`` * | Type de licence. |
``author`` * | Nom de l’auteur du plugin, tel qu’il sera affiché une fois le plugin installé, dans les informations de celui-ci. |
``require`` * | Version minimum requise de Jeedom (Core). |
``category`` * | Catégorie de classement du plugin sur le Market jeedom. **Respecter impérativement la nomenclature du tableau ci-dessous** |
``category`` * | Catégorie de classement du plugin sur le Market jeedom. **Respecter impérativement la [nomenclature du tableau ci-dessous(https://doc.jeedom.com/fr_FR/dev/structure_info_json/#NOMENCLATURE%20CATEGORIES)]** |
``display`` | Si le plugin utilise un panel dédié sur le desktop,. Il s’agit du nom du fichier principal de ce panel. |
``mobile`` | Si le plugin utilise un panel dédié sur la webApp Jeedom. Il s’agit du nom du fichier principal de ce panel. |
``changelog`` * | Lien Html vers le Changelog. |
Expand All @@ -31,14 +31,14 @@ Champs | Valeurs
``hasDependency`` | «true» si le plugin doit installer des dépendances, sinon «false» ou absent. |
``hasOwnDeamon`` | «true» si le plugin doit exécuter des deamons, sinon «false» ou absent. |
``maxDependancyInstallTime`` | Temps maximum imparti pour l’installation des dépendances, exprimé en minutes. |
``specialAttributes`` | Permet aux plugin de demander des parametre suplémentaire sur des objets ou des utilisateurs (bien regarder l'exemple du plugin template) |
``specialAttributes`` | Permet aux plugin de demander des [parametre suplémentaire](https://doc.jeedom.com/fr_FR/dev/structure_info_json/#SpecialAttributes) sur [des objets](https://doc.jeedom.com/fr_FR/dev/structure_info_json/#Attributs%20Objet) ou [des utilisateurs](https://doc.jeedom.com/fr_FR/dev/structure_info_json/#Attributs%20User) (bien regarder l'exemple du plugin template) (Voir explicationsci-dessous) |
``issue`` | URL vers le bugtracker si externe (si non remplis alors vous receverez un mail)

**Exemple** :
## Exemple

[Fichier plugin-template/plugin_info/info.json](https://github.com/jeedom/plugin-template/blob/master/plugin_info/info.json)

**NOMENCLATURE CATEGORIES**
## NOMENCLATURE CATEGORIES

Market Jeedom | info.json |
--------------------- | ----------------------- |
Expand All @@ -57,3 +57,47 @@ Protocole domotique | ``automation protocol`` |
Santé | ``health`` |
Sécurité | ``security`` |
Automatisme | ``automatisation`` |

## SpecialAttributes

Ces attributs permettent de demander aux utilisateurs des paramètres supplémentaires, sur chaque objet (`objet` au sens Jeedom : menu Outils / Objets; typiquement ça représente les pièces dans notre domotique) ou bien pour chaque utilisateur.

### Utilisation

Dans votre code, vous pourrez récupérer la valeur de ces paramètres en utilisant l'objet `User` pour un attribut User, ou bien l'objet `jeeObject` pour un attribut objet:

```
user : $user->getOptions(‹ plugin::ID_plugin::clef ›)
object : $jeeObject->getConfiguration(‹ plugin::ID_plugin::clef ›)
```
* ID_plugin est l'ID de votre plugin
* clef est la clé dans votre configuration json (dans l'exemple: toto, toto 2 ...)

### Attributs Objet

La syntaxe est la suivante pour proposer 2 paramètres spécifiques par objet :
```
"specialAttributes" : {
"object" : {
"toto" : {"name" : {"fr_FR" : "Plop je suis un attribut spécial"},"type" : "input"},
"toto2" : {"name" : {"fr_FR" : "Plop je suis un attribut spécial number"},"type" : "number"}
}
}
```

L'utilisateur pourra ainsi définir ces 2 paramètres pour chaque objet dans le menu de configuration des objets (menu Outils / Objets).
Ici un texte libre, et un numérique.
![Attribut Objet](images/SpecialAttributeObject.png)

### Attributs User

```
"specialAttributes" : {
"user" : {
"toto" : {"name" : {"fr_FR" : "Plop je suis un attribut spécial users"},"type" : "select","values" : [{"value" : "1", "name" : "valeur 1"},{"value" : "plop", "name" : "valeur plop"}]}
}
}
```

Ici, cet attribut permet à chaque utilisateur de définir un paramètre qui lui est propre (dans le menu Réglages / Préférences)
![Attribut Utilisateur](images/SpecialAttributeUser.png)