**Ceci est une ancienne révision du document !**
Mapping dolibarr <-> react
Listez les champs de l'objet dolibarr que vous voulez "publier" vers react
Vous pouvez limiter côté back la liste des champs qui seront envoyés vers l'application react en lisant tout simplement les champs que vous voulez exporter dans la variable _listOfPublishedFields comme par exemple
la clé est le nom du champ de l'objet dolibarr et la valeur est le nom que vous voulez donner côté réact :
//corresponding fields left dolibarr right front app private $_listOfPublishedFields = [ 'rowid' => 'rowid', 'nom' => 'name', 'address' => 'address', 'zip' => 'zip', 'town' => 'city', 'fk_departement' => 'departement', 'fk_pays' => 'country', 'phone' => 'phone', 'url' => 'url', 'email' => 'email', 'note_public' => 'note_public', 'note_private' => 'note_private', 'logo' => 'logo' ];
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'objet Société accessible à l'application react : l'objet dolibarr contient le nom du fichier logo et l'application react s'attend à avoir un logo sous la forme d'un champ base64 encodé …
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("##### dmHelper : call for _fieldFilterValueLogo for " . $societe->logo);
$dir = $conf->societe->multidir_output[$societe->entity] . "/" . $societe->id . "/logos";
$logo = $dir . '/' . $societe->logo;
$logoBase64 = "";
if (file_exists($logo)) {
$type = pathinfo($logo, PATHINFO_EXTENSION);
} else {
$logo = dol_buildpath("/smartlivraisons/img/logo.png", 0);
$type = pathinfo($logo, PATHINFO_EXTENSION);
}
$logoBase64 = 'data:image/' . $type . ';base64,' . base64_encode(file_get_contents($logo));
// dol_syslog("##### dmHelper : returns " . strlen($logoBase64));
return $logoBase64;
}