Decouplage Vue / Controle pour le module Contact

Bonjour.
J’integre actuellement Dolibarr 6.0.2 pour une société immobiliere en remplacement d’une solution madehome.

Je créé un module qui sera dédié, en surchargeant tout ou partie de menu / canva.
Ainsi, pas de modification de la base Dolibarr et pas d’impact en cas d’évolution (hormis le module dédié)

Il s’avère que le fichier contact/card.php intègre la vue à afficher… rien que ça, ce n’est pas très …propre.
Ensuite, les templates dans contact/canvas/default/tpl ne sont absolument pas en phase avec les vues citées précedemment.
Est-ce voulu ?
-> j’ai donc repris les 3 vues en dur (create, view et edit), et en ai fait 3 templates surchargé dans mon module.
De plus, dans ces 3 templates dédiés, il manque les objets $object, $objsoc, $mysoc, $formcompany, $hookmanager, $langs, $extrafields pour que le template de base devienne vraiment un canva complet sur lequel pourrait se baser tout module dédié.

Je propose donc (et afin d’avoir votre avis) :
- de faire les templates par defaut qui soit l’image de se qui est affiché de base
- de supprimer les templates de base dans le card.php
par :

// Get object canvas (By default, this is not defined, so standard usage of dolibarr)
$object->getCanvas($id);
$objcanvas=null;
$canvas = (! empty($object->canvas)?$object->canvas:GETPOST("canvas"));
$canvas = ( empty($canvas)?'default':$canvas);   <==================
if (! empty($canvas))
{
    require_once DOL_DOCUMENT_ROOT.'/core/class/canvas.class.php';
    $objcanvas = new Canvas($db, $action);
    $objcanvas->getCanvas('contact', 'contactcard', $canvas);
}

puis en fin de card.php

//if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action))   <==================
//{   <==================
    // -----------------------------------------
    // When used with CANVAS
    // -----------------------------------------
    if (empty($object->error) && $id)
 	{
 		$object = new Contact($db);
 		$result=$object->fetch($id);
		if ($result <= 0) dol_print_error('',$object->error);
 	}
   	$objcanvas->assign_values($action, $object->id, $object->ref);	// Set value for templates
    $objcanvas->display_canvas($action);			        // Show template
//}   <==================
llxFooter();
$db->close();

OK, je n’avais pas vu tous les impacts … ce n’est pas si simple en fait …

Bonjour,

Ce n’est pas ici sur le forum qu’il faut proposer tes corrections/améliorations de code mais là : https://github.com/Dolibarr
ça te permettra de pouvoir discuter avec les developpeurs. Ils sont assez rares sur le forum.
@+