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();