Der Konverter - Vorhandene Coppermine in pragmamx integrieren

Begonnen von Andi, 16 Mai 2006, 23:44:27

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Andi

Coppermine/pragmaMx Konverter


Dieses Script dient dazu, eine bestehende Coppermine 1.4.x Standallone Version in pragmaMx zu integrieren und die Daten entsprechend zu konvertieren.


Warnungen und Hinweise vor der Konvertierung

  • alle existierenden User in der pragmaMx Usertabelle werden gelöscht, existierende Beiträge verlieren dadurch evtl. ihre Zuordnung
  • bestehende pragmaMx-Benutzergruppen werden durch evtl. zusätzliche aus der Coppermine ergänzt, namensgleiche Gruppen werden abgeglichen
  • ist ein User in der Coppermine mehreren Benutzergruppen zugeteilt (ausser Admin/Moderator), so bleibt davon nur eine Gruppenzuteilung erhalten
  • bestehende Administratoren bleiben erhalten, existiert ein Coppermine-User mit gleichem Namen, wird dieser im Autologin eingetragen
  • Coppermine-Administratoren werden als Super-Administratoren eingetragen

Kurzbeschreibung der Vorgehensweise

  • pragmaMx muss komplett und lauffähig installiert sein

  • in pragmaMx muss ein funktionsfähiger Super-Administratoraccount existieren

  • bestehende Useraccounts sind im pragmaMx nicht notwendig, sie werden sowieso gelöscht, bzw. durch die Daten der Standallone Coppermine ersetzt

  • die Dateien des Coppermine-Mx Moduls müssen normal im Modulordner installiert sein

  • die eigentliche Setuproutine der Coppermine-Mx braucht nicht ausgeführt werden, die Datenbankdaten kommen ja später aus der Standallone Version

  • die bestehende Coppermine-Standallone muss Datenbankmässig auf dem Stand von Version 1.4.x sein, ggf. also vorher updaten

  • die Tabellen der bestehenden und lauffähigen Coppermine-Standallone Installation müssen in der Datenbank liegen, in der auch die Tabellen des pragmaMx liegen

  • die /include/config.inc.php der Coppermine Standallone Installation in den Ordner /modules/Gallery/include/ kopieren

  • den Albenordner der Coppermine Standallone Installation so in die pragmaMx Installation verschieben, dass der relative Pfad zu diesem Ordner von Coppermine-Standallone-root und pragmaMx-root gleich bleibt. z.B http://beispiel.de/coppermine/albums/ wird zu http://beispiel.de/pragmaMx/albums/

  • die Datei coppermine_to_pragmamx.php in den Ordner /modules/Gallery/ kopieren

  • die Datei /modules/Gallery/coppermine_to_pragmamx.php direkt aufrufen (z.B. http://beispiel.de/pragmaMx/modules/Gallery/coppermine_to_pragmamx.php)

  • den Anweisungen folgen...

    • die beiden Pfade im ersten Fenster können normalerweise direkt übernommen werden

    • verschiedene Sonderzeichen in Usernamen die in der Coppermine zugelassen sind, werden konvertiert damit sie im pragmaMx verwendet werden können. Die angezeigte Liste sollte man speichern oder ausdrucken, damit man die betroffenen User informieren kann.

    • Benutzergruppen, Moderatoren und User werden abgeglichen


  • wenn alles erfolgreich war, die Datei /modules/Gallery/coppermine_to_pragmamx.php unbedingt löschen!


benötigte Dateien:

schön´s Grüssle, Andi

GerhardSt

Hallo Andi,
dein Konverter funktioniert super!
Bis auf eine Kleinigkeit (kann aber auch an einen Fehler bei mir liegen), sämtliche Kommentare und Albumnamen in denen ein ü,ö,ä oder sonstige Sonderzeichen vorkommen sind in der Coppermine Standalone Datenbank durch eine kommische Zeichenfolge ersetzt. Diese werden nach der Konvertierung ins PragmaMx nicht umgewandelt, sondern einfach so übernommen. Jetzt hab ich diese Zeichenfolgen natürlich im PragmaMx. Wie kann ich das ändern oder wo hab ich einen Fehler gemacht?

Danke für den super Konverter, Gerhard!

Andi

hi :)

prima, freut mich  :)  :thumbup:

Die Sache mit den Sonderzeichen habe ich nicht bedacht. Die Coppermine Standallone läuft im Gegensatz zu pragmaMx standardmässig mit UTF-8 als Charset.
Das muss ich mir nochmal genauer ansehen, wie man das mitkonvertieren kann....
schön´s Grüssle, Andi

GerhardSt

Hallo Andi,
ich habe da noch eine Frage mit UTF-8, wirkt sich das auch auf´s Kennwort aus?
Ich habe da ein Problem gehabt, wie ich die Daten manuel in die Datenbank übertragen wollte.
Bei ein paar hat der Zugang funktioniert bei anderen nicht.
Wie´s jetzt nach der Konvertierung ist weiß ich noch nicht, aber falls Fehler auftretten werde ich sie hier Posten!

Danke, Gerhard!

RiotheRat

Es kommt darauf an wie die Original(!)-Coppermine das Passwort speichert. pragmaMx speichert keine Kennwörter, sondern die MD5-Prüfsumme des ursprünglichen Kennworts. Dieser MD5-Hash ist immer eine hexadezimale Zahl mit entweder einer Länge von 16 Zeichen (neu ab PHP 5.0.0) oder aber 32 Zeichen (die "normale" Einstellung).

Wenn die Original-Coppermine die Passwörter ebenfalls als MD5-Hash speichert wird das Passwort, bzw. der Prüfstring, nur 1:1 kopiert. Dabei dürfte keinerlei Änderung des Strings hinsichtlich UTF-8 auftreten. In der Datenbank ist das Feld dann ja entsprechend auf MD5 gesetzt. Diese Daten dürfen dann eigentlich nicht verändert werden. Man stelle sich nur mal veränderte Prüfsummen in einer Bankanwendung vor ... Wenn die Originaldaten in einem anderen Format vorliegen, kann es durchaus sein dass hier UTF-8 dazwischen funkt. Im letzteren Fall schreibt aber Andi sicherlich noch was dazu ... ist ja sein Baby.

RtR
Unaufgeforderte PNs & Emails werden ignoriert

Erst wenn die letzte Zeile Code verhunzt, der letzte Server gehackt und der letzte Script-Kidde befriedigt ist, erst dann, werdet Ihr feststellen, dass Nuke nicht sicher ist...

GerhardSt

Hallo, ich habe gerade die zwei Datenbanken verglichen, sind beide identisch!
Dann hab ich in der Standalone-Version einen neuen Benutzernamen angelegt mit Sonderzeichen als Kennwort  und die Zeichenfolge ins PragmaMx kopiert. Bei PragmaMx bekomme ich leider keinen Zugang, also müßte das bei allen Benutzer die Sonderzeichen im Kennwort haben so sein!
Gibt es da eine Möglichkeit die´s zu ändern?

Danke, Gerhard!

Andi

Hi :)

wie RiotheRat schon schreibt, die Passwörter werden in beiden Scripten als md5 Hash gespeichert, der keine Sonderzeichen enthält. Wenn das jetzt wirklich an den Sonderzeichen liegen soll, dann ist es nicht möglich daran etwas zu ändern. Der md5 hash müsste ja zurückcodiert werden, dann in das andere Format gewandelt und dann wieder als md5 hash gespeichert werden. Das ist aber unmöglich.

Es wird ja nur ein paar User betreffen, die sollen einfach die "Passwort vergessen" Funktion verwenden und sich ein neues Passwort geben...
schön´s Grüssle, Andi

Steffen

Super, klasse Konverter, hat bei mir anstandslos geklappt!

Nun aber meine Frage; der aktuelle Port des Coppermine-Moduls ist ja Version 1.4.5. (wenn ich jetzt nicht irre), die aktuelle (und von mir verwendete) Coppermine-Version 1.4.8.; ich habe außerdem in meiner Standalone noch das Stramm-Modpack (transparentes Wasserzeichen etc.) integriert, siehe http://coppermine-gallery.net/forum/index.php?topic=28367.0 eingefügt, was logischerweise nun in pragmamx fehlt.

Hat sich hier schon jemand an einer Anpassung an die aktuelle Coppermine-Version und (wichtiger noch) an dem Stramm-Mod versucht bzw. weiß wie aufwändig die Anpassung wäre? Zumindest die Wasserzeichen-Features und das cropping für Thumbnails würde ich gern retten..
.
Ich schau mir das jetzt mal an ob ich das hinbekomme, aber für bisherige Erfahrungsberichte wäre ich dankbar ;)

Andi

Hi :)

da sich im Moment die Versionssprünge der Coppermine im 3 Wochentakt erhöhen, können wir mit den Anpassungen nicht mitkommen. Wir coden ja ein CMS und keine Galerie...
Nichts desto trotz, die 1.4.8 ist gerade in Arbeit ;)
Die meisten der seit 1.4.5 aufgetretenen Probleme in der Standallone Version wirken sich aber in der Bridge eh nicht aus.

Stramm-Modpack?
Sorry, noch nicht drauf geachtet, keine Erfahrung....
Hört sich aber gut an, was da steht...
Sollte man sich mal näher ansehen ;)
schön´s Grüssle, Andi

SimonSimon

Hallo,
der Koverter funktioniert bei mir genau bis zur Integration der alten Benutzer, ich bekomme (bei der Tabelle mit den "veränderten" Usernamen) die folgende Meldung:

"Notice: Array to string conversion in /var/www/web172/html/cms/modules/Gallery/coppermine_to_pragmamx.php on line 58"

...und dann geht es nicht weiter.

Weiß da jemand Rat?

Andi

Hi :)

da war noch ein Fehler drin, der sich nur auswirkte, wenn magiq_qutoes_gpc auf Off steht.

Habe die Datei im oberen Post gerade aktualisiert ;)
schön´s Grüssle, Andi

Toasti

Klingt ja alles ganz Fein, aber mir bleiben Fragen bevor ich das jetzt mal Teste:

Die Ausgangssituation
Ich hab eine Coppermine-Standalone auf einem anderen Server und einer anderen Datenbank.

1) Muss ich, bzw 'was' muß ich aus der alten Datenbank zuerst Sichern und wie oder wo spiele ich es bei mir wieder ein?
2) Was müsste ich noch zur weiteren Vorbereitung bedenken wenn ich von oberer Ausgangslage ausgehe?

Und zu guter letzt die Sicherheitsfrage:
Nehmen wir an ich habe eventuell in der jetzigen Coppermine eine Trolluser, sprich einen Hacker. Dann übernehme ich ihn doch eventuell durch das Script auch auf die neue Datenbank und schon laufe ich wieder Gefahr eines offenen Tores, oder?

Lg Toasti

Toasti

#12
HAT SICH ERLEDIGT!
Wer ähnliches mal vor sich haben sollte... Nicht vergessen die "Config.inc.php" der ehemaligen Coppermine installation im Editor öffnen und auf die neue Datenbank umschreiben

Schön Blöd, die Überlegung hatte ich Gestern schon, aber egal... es läuft *yeah*



================== Alter Beitrag von mir ===================

Hilfe....

Geht das nicht auch irgendwie ohne eine vorher laufende Coppermin-Standalone?
Ich weiß, ich habe nur eben diese Testplattform die ich da grade aufbaue, das ganze gestaltet sich halt nicht grade als leicht.

Habe alle Coppermine Standalone Datenbankeinträge in die jetzige Datenbank importiert und den Alben Ordner ebenfalls in das dortige Verzeichnis kopiert (immerhin 500mb). Wie angegeben...

Wenn ich nun das Script aufrufe erscheint aber:
"Sorry, the database connection information used in the specified installation of pragmaMx cannot access the installation of Coppermine. This may either mean that the installation doesn't exist, or that the MySQL account used does not have permissions to access it."

Ich bin grad leicht am Boden... ich möchte vermeiden das ich das ganze erst am lebenden Objekt ausprobieren kann. Denn das ist löchrig, hat bereits einen ständigen Hacker drin und ist das Unsauberste Phpbb/Coppermine was ich seit langem gesehen habe :-(

Volker S

Hi,

Könnte man vielleicht hierauf:
Zitat
- den Albenordner der Coppermine Standallone Installation so in die pragmaMx Installation verschieben, dass der relative Pfad zu diesem Ordner von Coppermine-Standallone-root und pragmaMx-root gleich bleibt. z.B http://beispiel.de/coppermine/albums/ wird zu http://beispiel.de/pragmaMx/albums/
bitte nochmal etwas genauer eingehen?

Meine augenblickliche Installationspfade sind folgende:
1.) Pragmamx: http://beispiel.de/pragmamx/
2.) Coppermine-Standalone: http://beispiel.de/pragmamx/coppermine/

Da man den albums-Pfad in Coppermine im Nachhinein anpassen kann, habe den Konverter erst mal ohne irgendeine Verschiebeaktion ausgeführt. Bis auf die Passwörter hat auch alles funktioniert (kann sein, dass sich in der Coppermine-Version 1.4.10 etwas geändert hat und das Konverterscript [welches wohl für ältere Versionen gestrickt wurde] diese Passwörter nicht mehr lesen kann -> ist aber auch egal)

Nun interpretiere ich aus der obigen Anmerkung folgendes (bitte berichtigt mich, wenn ich falsch liege):
Wenn man beides lauffähig haben möchte (Coppermine-Bridge und Coppermine-Standallone) muss der relative Pfad zu 'albums' gleich sein (was ja auch verständlich ist, da beide Coppermines auf ein und die Selbe Datenbank zugreifen).

Wie soll das gehen?
Aus der Standallone-Version sucht er 'albums' in seinem Installverzeichnis (siehe 2.)
Aus der Bridge-Version sucht er 'albums' im root von pragmamx (siehe 1.)

...das der relative Pfad für beide gleich bleibt, kann doch theoretisch nur dann der Fall sein, wenn Coppermine ins gleiche Verzeichnis installiert wird, wie die pragmamx-Version. Das wiederum würde natürlich nicht funktionieren, weil dann in einem Verzeichnis 2x eine index.php liegen würde.

...also - kann mir mal jemand etwas unter die Arme greifen?


-volker-