Créer un extrafield cliquable

Bonjour !

J’ai ajouté un extrafield sur l’objet « Commande » Dolibarr grâce au descripteur de mon module.
Sur la card de mon objet généré par ce module j’ai ceci :

$commande = new Commande($db);
$commande->fetch($object->fk_commande);
$commande->array_options['options_fk_monextrafield'] = $object->id;
$commande->insertExtraFields();

J’ai bien l’id de mon objet qui apparait dans l’extrafield sur la card de la Commande mais j’aimerai que ce lien soit cliquable, qu’il fasse directement le lien avec l’objet. Comme sur la liste des commandes au survol de la ref d’une commande :

Capture d’écran 2021-03-09 à 16.13.34

Avez-vous la solution ? Merci :slight_smile:

Dans ce cas il faut utiliser un extrafield de type « lien à un objet » et que la methode GetNomUrl existe dans la classe de l’objet en question

Bonjour FHenry !

Merci pour ta réponse. J’ai bien une méthode GetNomUrl dans la class de mon objet, en revanche je n’ai pas réussi à faire le " lien objet ".

J’ai tenté :

	$result3=$extrafields->addExtraField('fk_monobjet', "MonObjet", 'int:MonObjet:custom/monmodule/class/monobjet.class.php', 100, 10, 'commande', 0, 0, '', '', 1, '', 1, 0, '', '', 'monmodule@monmodule', '$conf->monmodule->enabled');

Pourrais-tu m’indiquer comment faire ?

Merci :slight_smile:

Pour ceux qui me liront j’ai enfin trouvé…

Dans le fichier descripteur de votre module (function init) :

$result1=$extrafields->addExtraField('fk_module', "MonModule", 'link', 100, '', 'commande', 0, 0, '', array('options'=>array('MaClass:custom/monmodule/class/maclasse.class.php'=>null)), 1, '', 1, 0, '', '', 'monmodule@monmodule', '$conf->monmodule->enabled');

Il faut en effet un extrafield de type « link » puis en paramètre de cet extrafield passer un tableau avec une clé « options » qui sera un tableau avec le lien vers votre classe :

array('options'=>array('MaClass:custom/monmodule/class/maclasse.class.php'=>null));

Je ne sais si le paramètre « size » a une importance, je l’ai laissé vide.

Si ce n’est pas la bonne méthode n’hésitez pas à me le dire :slight_smile:

1 « J'aime »