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:12] – 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' | ||
| - | |||