Hallo,
wer die Userverwaltung eines neuinstallierten Coppermine ans phpBB koppelt, sollte keine Probleme haben, wenn er den Anweisungen genau folgt. Die Bridge scheint sauber zu funktionieren. Ein Problem ensteht allerdings dann, wenn Coppermine bereits genutzt wurde: „Warning: If you already have users and custom groups in your coppermine database when you enable bbs integration, be aware that they will be lost. If your coppermine users have already created private albums and uploaded pics to them, they will be lost as well!“
Der letzte Satz stimmt so allerdings nicht. Die Alben sind nicht grundsätzlich verloren, sondern lediglich falschen Usern zugeordnet. Dasselbe gilt für bereits hochgeladene Fotos in anderen Bereichen. Dies bedeutet auch, dass andere User als Eigentümer der Fotos gelten und diese administrieren können!
Dies liegt einfach daran, dass die user-id's in phpBB und Coppermine aufgrund der Registrierungsreihenfolge unterschiedlich sind. Doch dieses Problem lässt sich lösen. Die angebenen Schritte gelten vermutlich auch für andere per Bridge unterstützte BB's wie Invision Power Board, vBulletin, YaBB SE, Woltlab Burning Board, SMF und PunBB.
Voraussetzungen
Du brauchst Zugang zur Datenbank mittels eines Programmes wie phpMyAdmin sowie FTP-Zugang. Vor der Durchführung aller Schritte empfiehlt sich ein Backup der Datenbank und des Coppermine-Ordners auf dem Server. Es empfiehlt sich, Schritt 2 und 3 für jeden User nacheinander durchzuführen und die korrekte Ausführung in der Galerie zu checken.
Erster Schritt
Erstelle eine Liste aller User, die bislang Fotos in die Galerie hochgeladen haben und notiere ihre user_id's bei Coppermine und phpBB. Die user_id's bei Coppermine lassen sich in der Tabelle cpg_users einfach ablesen (bei Deinstallation der Bridge kann man sie hier auch einfach angleichen). Die user_id's bei phpBB müssen nicht identisch sein mit der Zahl am Anfang der Mitgliederliste, sondern lassen sich beispielsweise aus den Links zum Userprofil ersehen.
Zweiter Schritt
Gehe in phpMyAdmin in den Bereich SQL, wo du Befehle eingeben kannst. Nutze nun folgenden Zweizeiler:
Code: Alles auswählen
UPDATE cpg_pictures SET owner_id = 'xxx', owner_name = 'neuername', filepath ='userpics/10xxx/' WHERE owner_id = 'yyy';
UPDATE cpg_albums SET category = '10xxx' WHERE category = '10yyy';
Code: Alles auswählen
, owner_name = 'neuername'
Beispiel:
Wenn die Coppermine-ID also "96" beträgt, die phpBB-ID "314", würde der Zweizeiler ohne Änderung des Nicks also so aussehen:
Code: Alles auswählen
UPDATE cpg_pictures SET owner_id = '314', filepath ='userpics/10314/' WHERE owner_id = '96';
UPDATE cpg_albums SET category = '10314' WHERE category = '10096';
Dritter Schritt
Gehe per FTP in den Ordner von Coppermine und dann in /albums/userpics/. Ändere dort die Ordnernamen von 10yyy zu 10xxx (analog zu der letzten Zeile des mysql-Befehls).
Warnung
Hinsichtlich der fünfstelligen Coppermine-Alben frage ich mich, ob hier nicht eine Art "y2k"-Bug lauert. Wer also phpBB's mit mehr als 10000 Usern betreibt (soll es bekanntlich geben), dem rate ich erst einmal vom Einsatz der Bridge ab, bis er das Problem im Coppermine-Forum geklärt hat oder künftige cpg-Versionen das Ganze anders lösen.
Das war's. Falls jemand das Ganze (zumindest Schritt 2) in ein komfortables PHP-Script packen will, nur zu.