Social Media
Foren
Gefährlicher Bug!!!
Gefährlicher Bug!!!
Mir ist gerade ein gefährlicher Bug aufgefallen...
Und zwar werden immer nur einEvent-Handler ausgeführt, auch wenn 3 in der Datenbank stehen.
Der Fehler tritt aber schon in der Methode GetAllHandler() (EventManager) auf, welche die Events falsch ausliest, bzw. nur einen ausliest und dann falsch in den Cache schreibt.
So werden dann von 3 Events nur einer ausgeführt.
Könntest du mir gleich die korrekte Datei senden (hier hochladen), damit meine Plugins weiterentwickeln kann?
Und zwar werden immer nur einEvent-Handler ausgeführt, auch wenn 3 in der Datenbank stehen.
Der Fehler tritt aber schon in der Methode GetAllHandler() (EventManager) auf, welche die Events falsch ausliest, bzw. nur einen ausliest und dann falsch in den Cache schreibt.
So werden dann von 3 Events nur einer ausgeführt.
Könntest du mir gleich die korrekte Datei senden (hier hochladen), damit meine Plugins weiterentwickeln kann?
Fehler gefunden!
Folgende Zeilen in der Datei "system/classes/eventmanager.php" müssen wie folgt abgeändert werden:
muss so so abgeändert werden, dass es dann so aussieht:
Folglich entfallen die genannten Zeilen, wieso es jetzt funktioniert weiß ich nicht, ich nehme aber an, dass es daran liegt, dass man das nicht einfach als Array nehmen kann, weil es ein stdClass o.ä. ist.
Naja, Hauptsache, es geht jetzt!
Die komplette Datei zum Download findet ihr im Anhang.
Folgende Zeilen in der Datei "system/classes/eventmanager.php" müssen wie folgt abgeändert werden:
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 |
$rows = DataBase::Current()->ReadRows("SELECT * FROM {'dbprefix'}events");
foreach($rows as $handler){ print_r($handler);
if(!isset($item[$handler->event])){
$res[$handler->event] = array();
}
$res[$handler->event][] = $handler->file;
|
muss so so abgeändert werden, dass es dann so aussieht:
PHP-Quelltext |
|
1 2 3 4 5 |
$rows = DataBase::Current()->ReadRows("SELECT * FROM {'dbprefix'}events");
foreach ($rows as $handler) {
$res[$handler->event][] = $handler->file;
}
|
Folglich entfallen die genannten Zeilen, wieso es jetzt funktioniert weiß ich nicht, ich nehme aber an, dass es daran liegt, dass man das nicht einfach als Array nehmen kann, weil es ein stdClass o.ä. ist.
Naja, Hauptsache, es geht jetzt!
Die komplette Datei zum Download findet ihr im Anhang.
Mir ist gerade ein weiterer Bug aufgefalen, wenn der Pfad zum Plugin-Events Ordner zu lang ist, wird dieser abgeschnitten.
Das liegt daran, dass in der Datenbank nur 50 Zeichen zugelassen sind (
).
Ich habe dies jetzt bei mir auf 80 Zeichen gesetzt.
EDIT:
Das große Problem ist, dass die Daten dann beim Deaktivieren auch nicht aus der Datenbank gelöscht werden, da die Angaben in der deactivate.php dann ja auch nicht mehr stimmen.
Das liegt daran, dass in der Datenbank nur 50 Zeichen zugelassen sind (
MySQL-Abfrage(n) |
|
1 |
VARCHAR(50) |
Ich habe dies jetzt bei mir auf 80 Zeichen gesetzt.
MySQL-Abfrage(n) |
|
1 |
ALTER TABLE `contentlion_events` CHANGE `file` `file` VARCHAR( 80 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL |
EDIT:
Das große Problem ist, dass die Daten dann beim Deaktivieren auch nicht aus der Datenbank gelöscht werden, da die Angaben in der deactivate.php dann ja auch nicht mehr stimmen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JuKu« (25. Juli 2012, 16:03)