Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| back:mapping_dolibarr_-_react [2025/09/03 09:28] – caprel | back:mapping_dolibarr_-_react [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | #Mapping dolibarr <-> react | ||
| - | |||
| - | Pour que le front " | ||
| - | |||
| - | Pour optimiser les échanges entre le back (php) et le front (react) nous avons fait le choix de permettre la modification des données côté back avant l' | ||
| - | |||
| - | ##Listez les champs de l' | ||
| - | |||
| - | Vous pouvez limiter côté back la liste des champs qui seront envoyés vers l' | ||
| - | |||
| - | la clé est le nom du champ de l' | ||
| - | |||
| - | ``` | ||
| - | // | ||
| - | protected $listOfPublishedFields = [ | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ]; | ||
| - | ``` | ||
| - | |||
| - | Ensuite au moment où les données seront mises en formes pour être envoyées vers react un certain nombre de mécanismes seront mis en oeuvre: | ||
| - | |||
| - | ## Filtrer le contenu : fonction magique fieldFilterValueXXXX | ||
| - | |||
| - | Imaginez que vous voulez rendre le logo de l' | ||
| - | |||
| - | Vous pouvez tout simplement implémenter la fonction fieldFilterValueXXXX en replaçant XXXX par le nom du champ dont vous voulez filtrer le contenu (avec la 1ere lettre en majuscule), dans notre exemple ça serait donc fieldFilterValueLogo dans votre classe de mappage dmSociete donc | ||
| - | |||
| - | |||
| - | ``` | ||
| - | public function fieldFilterValueLogo($societe) | ||
| - | { | ||
| - | global $conf; | ||
| - | // dol_syslog("##### | ||
| - | $dir | ||
| - | $logo = $dir . '/' | ||
| - | $logoBase64 = ""; | ||
| - | if (file_exists($logo)) { | ||
| - | $type = pathinfo($logo, | ||
| - | } else { | ||
| - | $logo = dol_buildpath("/ | ||
| - | $type = pathinfo($logo, | ||
| - | } | ||
| - | $logoBase64 = ' | ||
| - | // dol_syslog("##### | ||
| - | return $logoBase64; | ||
| - | } | ||
| - | ``` | ||
| - | |||
| - | |||
| - | ##Listez les champs des lignes de l' | ||
| - | |||
| - | Certains objets dolibarr sont composés de lignes (Exemple : une facture, un devis, un bon de commande...) il faut donc | ||
| - | |||
| - | a) envoyer une description des lignes au front pour savoir ce qu'il faut afficher comme composants pour afficher les données (par exemple 4 colonnes : id de type nombre, description de type texte, prix unitaire, quantité, total) | ||
| - | b) envoyer le contenu des lignes | ||
| - | |||
| - | Malheureusement tous les objets dolibarr ne sont pas conçus de manière strictement identiques (certains ont un prefixe `Line` et d' | ||
| - | |||
| - | D' | ||
| - | |||
| - | DoliMobile apporte une solution à ce double problème: dans la classe de description du mapping de votre objet (exemple `dmSmartinter`) vous pouvez utiliser | ||
| - | |||
| - | * a) `parentClassNameForLines` pour indiquer le nom de la classe dolibarr qui implémente les lignes de l' | ||
| - | * b) `listOfPublishedFieldsForLines` pour indiquer la liste des champs que vous voulez exporter et sous quel nom (mapping dolibarr -> application) | ||
| - | * c) `parentLabelForLines` pour indiquer le titre (qui sera traduit) que vous voulez afficher au dessus de la liste des lignes sur l' | ||
| - | |||