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 entsteht 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:
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';
Ersetze dabei xxx durch die phpBB-user_id und yyy durch die alte Coppermine user_id. Beachte bitte, dass dies bei owner_id immer exakt die Zahl sein muss, während bei filepath und category immer eine fünfstellige Zahl eingegeben werden muss. Diese errechnet sich aus User_ID plus 10000. Das Album von User 10000 hat beispielsweise die Zahl 20000, das von User 34678 findet sich unter 44678 usw. (im obigen Beispiel gehe ich also von dreistelligen user_id’s aus). Den Textbaustein
, owner_name = 'neuername'
brauchst du nur, falls du den Namen des Users angleichen willst (falls dies bei den beiden Registríerungen unterschiedlich ausgefüllt wurde). Ersetze dann neuername durch den Nick in phpBB. Nötig für die Funktionalität ist dies allerdings nicht, du kannst den Teil also auch löschen.
Beispiel: Wenn die Coppermine-ID also „96“ beträgt, die phpBB-ID „314“, würde der Zweizeiler ohne Änderung des Nicks also so aussehen
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).
Fertig.