<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/index.php?action=history&amp;feed=atom&amp;title=Cr%C3%A9ation_de_boutons</id>
	<title>Création de boutons - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/index.php?action=history&amp;feed=atom&amp;title=Cr%C3%A9ation_de_boutons"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Cr%C3%A9ation_de_boutons&amp;action=history"/>
	<updated>2026-10-22T07:17:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Cr%C3%A9ation_de_boutons&amp;diff=58819&amp;oldid=prev</id>
		<title>Kusco: Création complète de la page</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Cr%C3%A9ation_de_boutons&amp;diff=58819&amp;oldid=prev"/>
		<updated>2023-11-21T11:54:37Z</updated>

		<summary type="html">&lt;p&gt;Création complète de la page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Pour chaque enregistrement, il est possible de créer des boutons et d&amp;#039;y associer des actions. On retrouvera par exemple des actions comme valider, désactiver, mettre en brouillon, etc.&lt;br /&gt;
&lt;br /&gt;
Nous utiliserons, dans nos exemples, la possibilité d&amp;#039;activer ou désactiver un enregistrement.&lt;br /&gt;
&lt;br /&gt;
== Fichier class.php ==&lt;br /&gt;
&lt;br /&gt;
=== Constantes ===&lt;br /&gt;
Au début du fichier, nous allons vérifier les différentes constantes et les valeurs attribuées.&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	const STATUS_DRAFT = -1;&lt;br /&gt;
	const STATUS_DISABLED = 0;&lt;br /&gt;
	const STATUS_VALIDATED = 1;&lt;br /&gt;
	const STATUS_CANCELED = 9;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Création fonctions ===&lt;br /&gt;
On vient ensuite ajouter les fonctions&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
public function enable($user, $notrigger = 0)&lt;br /&gt;
	{&lt;br /&gt;
	    // Protection pour véfifier le statut de départ&lt;br /&gt;
		if ($this-&amp;gt;status != self::STATUS_DISABLED) {&lt;br /&gt;
			return 0;&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, &amp;#039;&amp;#039;);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Choisir le statut ===&lt;br /&gt;
La fonction viendra modifier l&amp;#039;apparence des status :&amp;lt;syntaxhighlight lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
public function LibStatut($status, $mode = 0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour chaque statut, on peut y venir apposer un numéro de statut et donc une mise en forme particulière :&amp;lt;syntaxhighlight lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
if ($status == self::STATUS_DRAFT) {&lt;br /&gt;
    $statusType = &amp;#039;status1&amp;#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici une liste des statuts et de leur apparence (peut varier en fonction des thèmes et versions utilisées) :&amp;lt;gallery mode=&amp;quot;packed-overlay&amp;quot;&amp;gt;&lt;br /&gt;
File:Status0.png|Status 0&lt;br /&gt;
File:Status1.png|Status 1&lt;br /&gt;
File:Status2.png|Status 2&lt;br /&gt;
File:Status3.png|Status 3&lt;br /&gt;
File:Status4.png|Status 4&lt;br /&gt;
File:Status5.png|Status 5&lt;br /&gt;
File:Status6.png|Status 6&lt;br /&gt;
File:Status7.png|Status 7&lt;br /&gt;
File:Status8.png|Status 8&lt;br /&gt;
File:Status9.png|Status 9&lt;br /&gt;
File:Status10.png|Status 10&lt;br /&gt;
File:Status11.png|Status 11&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fichier _card.php ==&lt;br /&gt;
&lt;br /&gt;
=== Création du bouton ===&lt;br /&gt;
Avec le module builder, un fichier _card.php est créé où on y retrouvera le commentaire suivant, en dessous duquel on pourra nos créations :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;// Buttons for actions&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le code pour ajouter un bouton est le suivant :&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if ($permissiontoadd) { // Vérification au niveau des permissions&lt;br /&gt;
    if ($object-&amp;gt;status == $object::STATUS_VALIDATED) { // Si notre statut est déjà validé, on affiche un bouton pour désactiver&lt;br /&gt;
        print dolGetButtonAction(&amp;#039;&amp;#039;,$langs-&amp;gt;trans(&amp;#039;Disable&amp;#039;), &amp;#039;default&amp;#039;, $_SERVER[&amp;#039;PHP_SELF&amp;#039;].&amp;#039;?id=&amp;#039;.$object-&amp;gt;id.&amp;#039;&amp;amp;action=disable&amp;amp;token=&amp;#039;.newToken(), &amp;#039;&amp;#039;, $permissiontoadd);&lt;br /&gt;
    } else { // Si notre statut est désactivé on afficher un bouton pour le réactiver&lt;br /&gt;
        print dolGetButtonAction(&amp;#039;&amp;#039;,$langs-&amp;gt;trans(&amp;#039;Enable&amp;#039;), &amp;#039;default&amp;#039;, $_SERVER[&amp;#039;PHP_SELF&amp;#039;].&amp;#039;?id=&amp;#039;.$object-&amp;gt;id.&amp;#039;&amp;amp;action=enable&amp;amp;token=&amp;#039;.newToken(), &amp;#039;&amp;#039;, $permissiontoadd);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Appel de l&amp;#039;action ===&lt;br /&gt;
Dans le haut du fichier _card.php, on retrouvera le commentaire suivant :&amp;lt;syntaxhighlight lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
* Actions&lt;br /&gt;
*/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;est à ce niveau que l&amp;#039;on va venir ajouter les appels de fonction, que nous avons mis dans la création de nos bouttons&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if ($action == &amp;#039;enable&amp;#039; &amp;amp;&amp;amp; $permissiontoadd) { // Si on choisit l&amp;#039;action enable et que nous en avons la permission&lt;br /&gt;
    $object-&amp;gt;enable($object-&amp;gt;fk_user_modif,0); // Nous appelons la fonction enable, qui se trouve dans notreobjet/class.php&lt;br /&gt;
    setEventMessages(&amp;quot;&amp;quot;, &amp;quot;Bénéficiaire activé&amp;quot;, &amp;#039;mesgs&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ($action == &amp;#039;disable&amp;#039; &amp;amp;&amp;amp; $permissiontoadd) {&lt;br /&gt;
    if ($object-&amp;gt;action_fin == null) { // On peut ajouter une condition et un message d&amp;#039;erreur pour bloquer la désactivation&lt;br /&gt;
    setEventMessages(&amp;quot;&amp;quot;, &amp;quot;Il faut ajouter une date de fin de l&amp;#039;action pour pouvoir désactiver un bénéficiaire&amp;quot;, &amp;#039;errors&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
    $object-&amp;gt;disable($object-&amp;gt;fk_user_modif,0);&lt;br /&gt;
    setEventMessages(&amp;quot;&amp;quot;, &amp;quot;Bénéficiaire désactivé&amp;quot;, &amp;#039;mesgs&amp;#039;); // Ou bien ajouter un message pour indiquer la bonne marche des choses&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kusco</name></author>
	</entry>
</feed>