Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| back:mapping_dolibarr_-_react [2025/09/08 07:56] – 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 sache quel type de données sont envoyées par le back les objets dolibarr sont exposés au front. | ||
| - | |||
| - | Comme certains types de données côté dolibarr n' | ||
| - | |||
| - | 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 (fond et forme) 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' | ||
| - | |||
| - | Les clés étrangères comme '' | ||
| - | |||
| - | Ce choix est clairement fait pour que le front soit le plus générique possible. | ||
| - | |||
| - | ``` | ||
| - | // | ||
| - | 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 sont mis en œuvre: | ||
| - | |||
| - | ## Filtrer le contenu : fonction magique fieldFilterValueXXXX | ||
| - | |||
| - | Imaginez que vous voulez rendre le logo de l' | ||
| - | |||
| - | Vous pouvez implémenter la fonction '' | ||
| - | |||
| - | |||
| - | ``` | ||
| - | 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 préfixe '' | ||
| - | |||
| - | D' | ||
| - | |||
| - | DoliMobile apporte une solution à ce double problème: dans la classe de description du mapping de votre objet (exemple '' | ||
| - | |||
| - | * a) '' | ||
| - | * b) '' | ||
| - | * c) '' | ||
| - | |||