Projekt

Allgemein

Profil

Aktionen

GX-Bug #55691

geschlossen

Das Löschen von Kategorien und Artikeln sendet irreführende Daten

Von Kevin Sekin vor fast 7 Jahren hinzugefügt. Vor mehr als 3 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Tobias Schindler
Kategorie:
Adminbereich
Zielversion:
% erledigt:

100%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
Unbestimmt
Release Notes Langtext:

Beschreibung

Step 1. Erstelle eine Kategorie.
Step 2. Erstelle einen Artikel welcher zur neuen Katogorie und zur Kategorie Top gehört.
Step 3. Nun lösche den Artikel und die neue Kategorie.

In diesem Fall passiert folgendes in categories.php:

$_POST['multi_categories'] wird mit der KategorieID gefüllt.

$_POST['multi_products'] wird mit dem zu löschenden Artikel gefüllt.

$_POST['multi_products_categories'] wird mit den Kategorien der jeweiligen zu löschenden Artikeln gefüllt.

Was schließlich passiert:
Step 1: Die Kategorie wird gelöscht. Dabei wird der Artikel übersprungen, da er in der Kategorie Top auch existiert.
Step 2: Der Artikel wird gelöscht. Dabei kommt es zu einem Fehler, denn ursprünglich würde hier als Referenz $_POST['multi_products_categories'] übergeben.

Es kommt zum Fehler, weil der zu löschende Code des Artikels glaubt, das dieser Artikel in 2 Kategorien zu finden ist und nicht in 1.
(Das findest du in ProductWriteService.inc.php -> Zeile 246. Die If Bedingung)

Um diesen Fehler zu beheben, habe ich nun Code geschrieben, welcher durch die "multi_products_categories" iteriert und alle gelöschten Kategorien aus diesem Array entfernt. Diesen findest du in categories.php auf Zeile 464ff.

Dieser Code ist nicht unbedingt die beste Lösung. Es gilt hier herauszufinden warum wir überhaupt die Kategorien von Artikeln beim Aufruf von Löschen bereits mitübergeben, statt diese aus der Datenbank zu holen und zu schauen ob dieser Teil refactored werden könnte.

Wenn dies nicht möglich ist, wäre es auch interessant zu schauen ob mein Code verbessert werden könnte.

Bei Fragen einfach an mich wenden.



Zugehörige Tickets

Nachfolger von GX-Entwicklung - GX-Bug #55385: Durch das Löschen von Kategorien und Artikeln kann es dazu kommen, dass verwaiste Artikel in der Datenbank zurückbleibenErledigtTorben Wark

Aktionen
Aktionen

Auch abrufbar als: Atom PDF