HowTo: phpBB-Bridge bei bereits genutzter Coppermine-Gallery

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Loewenherz
Mitglied
Beiträge: 624
Registriert: 10.02.2003 20:11
Wohnort: Saarlouis
Kontaktdaten:

HowTo: phpBB-Bridge bei bereits genutzter Coppermine-Gallery

Beitrag 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.
Downloads für phpBB, die ich seit 2001 angeboten habe, gibt es nicht mehr - die Mitarbeit beim Übersetzer-Team von phpBB3 war mein letzter aktiver Beitrag zu phpBB, zeitlich geht leider nichts mehr. Aktuell blogge ich nur noch phasenweise auf SEO Scene.
Ceterum censeo Google esse delendam
Benutzeravatar
Loewenherz
Mitglied
Beiträge: 624
Registriert: 10.02.2003 20:11
Wohnort: Saarlouis
Kontaktdaten:

Beitrag 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.
Downloads für phpBB, die ich seit 2001 angeboten habe, gibt es nicht mehr - die Mitarbeit beim Übersetzer-Team von phpBB3 war mein letzter aktiver Beitrag zu phpBB, zeitlich geht leider nichts mehr. Aktuell blogge ich nur noch phasenweise auf SEO Scene.
Ceterum censeo Google esse delendam
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“