phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
zorbas2
Mitglied
Beiträge: 5
Registriert: 16.02.2015 16:35

phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von zorbas2 »

Ich habe zu dem Thema auch einen Thread auf phpbb.com am laufen, komme aber irgendwie nicht weiter:

Problem Nr.1 wurde gelöst:
Damit es keine Fehlermelungen gibt, muss man die Brücken-Datei (phpbb.inc.php) wie beschrieben anpassen. :grin:

Problem Nr.2 besteht aber immer noch:
Bei click auf 'Login' in cpg wird man zu phpbb weitergeleitet um sich einzuloggen. Nach erfolgreichem login wird man aber nicht automatisch wieder zurück zu cpg geschickt. (Eingeloggt ist man dort aber trotzdem, man muss aber manuell zurück). Entsprechendes gilt für's ausloggen.
Irgendwie muss irgendwas irgendwo (ucp.php?) entsprechend angepasst werden. Kann das bitte mal eben jemand machen?? :wink:
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von gn#36 »

Vorschlag, ohne genau zu wissen was coppermine ist:
Leite auf ne andere Seite als auf die ucp.php weiter und benutz' da login_box($neues_redirect_ziel), ansonsten muss die Seite nix weiter tun als einen redirect zurück zu coppermine, also irgendwie sowas wie

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$redirect_ziel = 'hier die coppermine Ziel URL eintragen';

$user->session_begin(); 
$auth->acl($user->data);

if(!$user->data['is_registered'])
{
login_box($redirect_ziel);
}
redirect($redirect_ziel);
Je nachdem wo du die Datei hinlegst musst du ggf. den Pfad oben in $phpbb_root_path anpassen.

Sowas lässt sich im Zweifel auch in eine Extension verpacken.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
zorbas2
Mitglied
Beiträge: 5
Registriert: 16.02.2015 16:35

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von zorbas2 »

Hmmm. Das hört sich tatsächlich wie ne paktikable Lösung an.

In der Datei von welcher zum phpBB login verwiesen wird steht:

Code: Alles auswählen

        function login_page()
        {
            global $CONFIG;

            $redirect = urlencode($CONFIG['site_url']);
            $this->redirect("/ucp.php?mode=login&redirect=$redirect");
        }

        function logout_page()
        {
            global $CONFIG;

            $redirect = urlencode($CONFIG['site_url']);
            $this->redirect("/ucp.php?mode=logout&redirect=$redirect&sid=" . $this->session_id);
        } 
Was ich jetzt nur nicht verstanden habe ist folgendes:

Du meinst ich soll im phpbb root eine Datei erstellen - sagen wir redirect.php, Deinen code reinpacken, und dann im obigen code nur den ucp.php mit redirect.php ersetzen? Und was ist mit dem ?mode=login/logout ??
Und wie ich das in eine ordentliche (für viele hilfreiche) Extention verpacke ist mir definitiv zu hoch...

Tschuldigung, bin zwar creativ aber nich sehr professionell...
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von gn#36 »

Ja, so meinte ich das. Du ersetzt aber nur die erste von beiden URLs in deiner Datei - Den Logout würde ich weiterhin so lassen. Da die Datei nix anderes tut als nach dem Login einen Redirect zu machen brauchst du auch keine Parameter zu übergeben, sondern nur weiterleiten. mode=login brauchst du also nicht. In meiner Datei die Ziel URL nicht vergessen, also z.B. sowas wie coppermine.php oder wenn's in einem übergeordneten Ordner liegt vielleicht ../coppermine.php. Relativ zu der neu angelegten Datei.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
zorbas2
Mitglied
Beiträge: 5
Registriert: 16.02.2015 16:35

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von zorbas2 »

Ich bin begeistert! Das scheint perfekt zu funktionieren für den login. Ich verweise beim Login in Coppermeine zu meiner neuen redirect.php, logge mich ein und werde danach auch brav wieder zu Coppermine weitergeleitet :grin:
Kannst Du mir so enen code-schnipsel auch für den logout erstellen? Das heisst ich clicke in Coppermine auf logout, der dann zu meiner redirect.php führt und nach erfolgreichem logout gleich wieder zurück...
Bissi viel verlangt, ich weiss. Aber genital wär's!!
Wenn dat janze dann funktioniert poste ich die Lösung dann natürlich auch im Coppermine und im phpBB.com Forum...
zorbas2
Mitglied
Beiträge: 5
Registriert: 16.02.2015 16:35

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von zorbas2 »

Ehhh Isch bin ja voll der coder.
Ich hab's hinbekommen. Login und logout funzt nu perfekt:

Meine redirect.php:

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$redirect_target = '../CoppermineFolder';    /* Path to Coppermine!  */

$user->session_begin(); 
$auth->acl($user->data);

if(!$user->data['is_registered'])
{
login_box($redirect_target);
}
else if ($user->data['user_id'] != ANONYMOUS && $request->is_set('sid') && $request->variable('sid', '') === $user->session_id)
        {
            $user->session_kill();
        }

redirect($redirect_target);
In der phpbb3.inc.php im bridge folder von Coppermine steht nu:

Code: Alles auswählen

.
.
.

        function login_page()
        {
            global $CONFIG;

            $redirect = urlencode($CONFIG['site_url']);
            $this->redirect("/redirect.php");
        }

        function logout_page()
        {
            global $CONFIG;

            $redirect = urlencode($CONFIG['site_url']);
            $this->redirect("/redirect.php?mode=logout&redirect=$redirect&sid=" . $this->session_id);
        }
.
.
.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von gn#36 »

Wunderbar :) Ich würde an deiner Stelle beim Logout noch prüfen, ob der User wirklich den Logout Link geklickt hat (mode=logout) und nicht über irgend einen anderen Link mit Session ID auf dieser Seite gelandet ist:

Code: Alles auswählen

$request->variable('mode', '') == 'logout' 
Das &redirect=$redirect kannst du dir auch sparen in der function logout_page()

Die Datei könntest du übrigens theoretisch auch direkt in den CoppermineFolder hineinlegen und dann stattdessen den $phpbb_root_path auf das Forum zeigen lassen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
zorbas2
Mitglied
Beiträge: 5
Registriert: 16.02.2015 16:35

Re: phpBB 3.1.x und Coppermine cpg 1.5.34 gebrückt

Beitrag von zorbas2 »

gn#36 hat geschrieben:Wunderbar :) Ich würde an deiner Stelle beim Logout noch prüfen, ob der User wirklich den Logout Link geklickt hat (mode=logout) und nicht über irgend einen anderen Link mit Session ID auf dieser Seite gelandet ist:

Code: Alles auswählen

$request->variable('mode', '') == 'logout' 
Eigentlich eher unwahrscheinlich, dass der user zufällig auf meiner redirect.php landed - aber sischer is sischer...
gn#36 hat geschrieben:Das &redirect=$redirect kannst du dir auch sparen in der function logout_page()
Klaro. Hab' ich nicht drauf geachtet, da es ja funktioniert...
gn#36 hat geschrieben:Die Datei könntest du übrigens theoretisch auch direkt in den CoppermineFolder hineinlegen und dann stattdessen den $phpbb_root_path auf das Forum zeigen lassen.
Noch besser! So bleibt der phpbb roott ordner 'clean' und ich brauch' bei eventuellem reinstall der files nicht dran denken, die wieder reinzupacken...
Antworten

Zurück zu „Extension Bastelstube“