Dotclear

Ticket #1173 (closed defect: wontfix)

Opened 15 years ago

Last modified 13 years ago

La suppression d'un setting est incomplète

Reported by: franck Owned by: dcteam
Priority: normal Milestone:
Component: module:core Version: 2.2
Severity: normal Keywords:
Cc:

Description

Lors de l'utilisation de la fonction dcNamespace::drop() le setting correspondant est supprimé dans la base de données mais reste présent dans les settings chargés.

La désynchronisation peut provoquer des effets de bord gênants.

Rajouter le code suivant dans la fonction drop() (après la suppression dans la base) peut régler le problème :

$global = ($this->blog_id === null ? true : false);
if ($this->settingExists($id,$global)) {
	$array = $global ? 'global' : 'local';
	unset($this->{$array.'__settings'}[$id]);
}

Change History

comment:1 Changed 15 years ago by JcDenis

Et pourquoi ne pas ajouter un paramètre à la fonction pour dire qu'on veut (ou pas) également le supprimer du script courant? Car ton effet de bord peut-être présent dans les deux sens.

comment:2 Changed 15 years ago by franck

Ça peut en effet. Après il faut voir s'il faut le faire par défaut ou pas.

Cela dit, combien de plugins utilisent la fonction drop() ? À part au moment de la désinstallation éventuellement et dans ce cas je forcerai bien la suppression des deux côtés.

Discussion ouverte (c'était d'ailleurs l'objet de l'ouverture de ce ticket)…

comment:3 Changed 14 years ago by bruno

  • Milestone 2.3 deleted

comment:4 Changed 14 years ago by franck

  • Owner changed from xave to franck
  • Status changed from new to reviewing

comment:5 Changed 14 years ago by franck

  • Owner changed from franck to dcteam

comment:6 Changed 13 years ago by franck

  • Status changed from reviewing to closed
  • Resolution set to wontfix
Note: See TracTickets for help on using tickets.

Sites map