Problem: cleanup in metainfo Addon

Alles über die Anwendung und Entwicklung von AddOns.

Problem: cleanup in metainfo Addon

Beitragvon ThomasKühne » 20. Feb 2009, 10:12

Hallo,

mit cleanup meine ich die extension innerhalb des metainfo, die mit dem extension point A1_BEFORE_DB_IMPORT verknüpft ist.

Leider hat sie dazu geführt, dass bei einem Teil-Import (also einem Export, der keine Artikeldaten und auch keine metainfo-Daten enthält) alle bestehenden metainfo-Felder gelöscht wurden.

Manchmal wurden darüber hinaus auch die korrespondierenden Felder in den Artikeln gelöscht.

Sorry, wenn ich es nicht exakter getestet habe,
aber funktioniert das cleanup wie es soll?
Vielleicht hat ja jemand, der sich mit dem Code auskennt, die Zeit es zu überprüfen.

Selbst wenn es ist wie es sein soll,
finde ich es persönlich nicht so sinnvoll, da ich bei einer entstehenden Diskrepanz zwischen Datenfeldern in rex_article bzw. rex_file und denen in rex_a62_params und rex_a62_type lieber ein paar Fehlermeldungen in kauf nehme und mir die Sache im phpMyAdmin ansehe,
anstatt Daten zu verlieren.

(Ich arbeite nun einmal gern mit Teil-Exporten/Importen, weil sie mir die Arbeit sehr erleichtern: Ich muss nicht jedes mal in den phpMyAdmin des Kundenservers/-Webhostings, und ich muss auch nicht zahlreiche Änderungen an Modulen, Templates usw. einzeln einpflegen).

Gruß
Thomas
ThomasKühne
 
Beiträge: 57
Registriert: 8. Dez 2006, 18:58

Beitragvon Markus.Staab » 20. Feb 2009, 10:38

Hi Thomas,

bisher bin ich immer davon ausgegangen dass beim laden eines Imports eine komplette Seite geladen wird.

Teilimports hab ich nie getestet.. wüsste nicht wie man da nen weg finden soll der für Beide wege zufriedenstellend funktioniert.. hast du eine Idee?

Grüße,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

cleanup hinterfragt

Beitragvon ThomasKühne » 21. Feb 2009, 01:59

Hallo Markus,

meine Vorliebe für Teil-Imports ist wahrscheinlich so selten, dass es nicht lohnt, deshalb Redaxo zu ändern. Da gibt es wichtigere Aufgaben im Projekt. ;-)

Aber:
Leider verstehe ich den Code des cleanup noch nicht richtig. Da ist doch zum Anfang eine Abfrage, die den cleanup abbricht, wenn keine Artikel importiert werden sollen, wenn also kein "CREATE TABLE `rex_article`" gefunden wird. Diese müsste doch mein Problem von vornherein verhindert haben, oder? Ich weiß jetzt z. B. nicht was der Parameter 'force' des extension_point meint.

Du bist der Core-Programmierer, vielleicht kannst Du ja die Abfrage überprüfen, und schon wäre ein Weg gefunden.

Warum wird der cleanup eigentlich vor dem Import gemacht und nicht danach?
Und warum wird nicht geprüft ob nicht ohnehin die beiden metainfo-Tabellen im Export drin sind?

Vielleicht ist ja doch ein Bug in der Abfrage.

hier der (Dein) Code (komisch die beiden Zeilen mit 'article`' und 'article'...)

Code: Alles auswählen
   // Cleanup nur durchführen, wenn auch die rex_article Tabelle neu angelegt wird
   if(isset($params['force']) && $params['force'] != true &&
     strpos($params['content'], 'CREATE TABLE `'. $REX['TABLE_PREFIX'] .'[b]article`[/b]') === false &&
      strpos($params['content'], 'CREATE TABLE '. $REX['TABLE_PREFIX'] .'[b]article[/b]') === false)
  {
    return;
  }



Gruß
Thomas
ThomasKühne
 
Beiträge: 57
Registriert: 8. Dez 2006, 18:58

Beitragvon Markus.Staab » 21. Feb 2009, 13:57

Hi Thomas,

ich schau nochmal rein..

Grüße,Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany


Zurück zu AddOns [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste