Seite 1 von 1

HowTo: phpBB-Bridge bei bereits genutzter Coppermine-Gallery

Verfasst: 29.09.2005 11:42
von Loewenherz
HowTo: Einsatz der phpBB-Bridge bei bereits genutzter Coppermine-Gallery

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';
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, die mit 1 beginnt. user_id's mit weniger als vier Stellen werden also zusätzliche Nullen vorangestellt (im obigen Beispiel gehe ich also von dreistelligen user_id's aus). Den Textbaustein

Code: Alles auswählen

, 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:

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.

Verfasst: 04.10.2005 17:29
von Loewenherz
Nachtrag: die Warnung hat sich nach Infos der Coppermine-Entwickler erledigt. Es gilt stets: User_ID plus 10000. Das Album von User 10000 hat beispielsweise die Zahl 20000, das von User 34678 findet sich unter 44678. Diese Info bitte auch beim Einsatz der obigen Bridge-Anpassung beachten.