Méthode remove descripteur de module

Bonjour,

Je voudrais supprimé mes extrafields de mon dolibarr quand je désactive mon module.
Je suis donc parti sur cette piste la :

	public function remove($options = '')
	{
		$sql = array();
				include_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
				$extrafields = new ExtraFields($this->db);
				$result1 = $extrafields->delete('typepropal', 'propal');
		return $this->_remove($sql, $options);
	}

Mais cela supprime de la data par la méthode delete ! oups !

Une idée sur la manière d’utilisé remove ?

cdt

Bonjour @jonathan.l,

Vous pouvez utiliser la méthode ci-dessous :

function remove($options='')
{
	$sql = array(
		'DELETE FROM `'.MAIN_DB_PREFIX.'extrafields` WHERE `name` = "typepropal"',
	);
	return $this->_remove($sql, $options);
}

Bien cordialement

1 « J'aime »

Salut,

Je voulais faire la même chose, mais du coup ça ne supprime que la définition de l’extrafield et pas toutes les données enregistrées.
Bref, de mon point de vue, ça « pourri » la BD.

Bonjour @ksar,

Oui, en revanche nous voulons simplement supprimer le champ supplémentaire après avoir désactivé le module et conserver les données déjà enregistrées, au cas où nous voudrions activer le module la prochaine fois.

Bien cordialement

et bien mon code fourni au départ devrait vous convenir alors ?

	public function remove($options = '')
	{
		$sql = array();
				include_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
				$extrafields = new ExtraFields($this->db);
				$result1 = $extrafields->delete('typepropal', 'propal');
		return $this->_remove($sql, $options);
	}

Moi sa ne m’allait pas, car justement je voulais seulement supprimer la définition de l’extrafield

2 « J'aime »