SmarMaker - Documentation
Docs» back» back:mapping_dolibarr_-_react

**Ceci est une ancienne révision du document !**

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'existent pas à l'identique côté front nous avons mis en place des mécanismes de “correspondance” ou “mapping” dont vous trouverez les détails ci après.

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'envoi vers le front.

Listez les champs de l'objet dolibarr que vous voulez publier vers le front

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
	protected $_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;
	}
Previous Next

SmarMaker - Documentation
Traductions de cette page:
  • Français
  • Deutsch
  • English
  • Español
  • Italiano
  • Nederlands

Table of Contents

Table des matières

  • Mapping dolibarr <-> react
    • Listez les champs de l'objet dolibarr que vous voulez publier vers le front
    • Filtrer le contenu : fonction magique _fieldFilterValueXXXX


  • SmartMaker
    • SmartAuth
    • Back (PHP)
      • Mapping en détail
    • Front (React)
    • SmartCommon
    • HowTo first app
  • Formations
  • Démonstration
  • Afficher le texte source
  • Anciennes révisions
  • Liens de retour
  • Haut de page
  • S'identifier
back/mapping_dolibarr_-_react.1756888867.txt.gz · Dernière modification : 2025/09/03 08:41 de caprel