Gallery3 phpbb3 Integration

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
iiccee
Mitglied
Beiträge: 21
Registriert: 20.06.2006 11:55

Gallery3 phpbb3 Integration

Beitrag von iiccee »

Hallo Forum,
ich bastel seit ein paar Tagen an einer "kleinen" Gallery3 (http://gallery.menalto.com/) Integration ins phpbb3 Forum. Integration ist vielleicht das falsche Wort. Das einzige was ich möchte, ist eine Abfrage in der index.php der Gallery3, in der ich nachschaue, ob der jeweilige Besucher der Gallery3 auch ein registriertes Mitglied einer Benutzergruppe meines phpbb3 Forums ist. Andernfalls soll die Gallery3 einen redirect auf eine Seite ausführen, in der ich erkläre, dass der Besucher keine Berechtigung hat, die Gallery3 zu besuchen. Ich brauche keine Zusammenführung von den Benutzerdatenbanken, noch eine Uploadfähigkeit der Benutzer oder ähnliches.

Ich kenne und nutze bereits die bekannte Session-Integration des phpbb3 Forums und die Abfrage auf Registrierung und Benutzergruppe. Folgender Code zur Session Integration ist normalerweise kein Problem:

Code: Alles auswählen

// phpbb3 session integration
	define('IN_PHPBB', true);
	global $db, $cache, $config, $user, $phpbb_root_path, $phpEx;
	$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
	$phpEx = substr(strrchr(__FILE__, '.'), 1);
	include($phpbb_root_path . 'common.' . $phpEx);
	//Laden, damit die Benutzergruppen ausgelesen werden können
	include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);

	// Start session management
	$user->session_begin();
	$auth->acl($user->data);
	$user->setup();

// Ab hier kommt der Code hin, um die Benutzergruppenabfrage zu machen sowie der redirect.
Die Gallery3 benutzt aber leider die "$user", "$cache" und "$config" Variable selbst exzessiv, so dass die Session Integration des phpbb3 Forums kein triviales Unterfangen ist.
Wie schon oben geschrieben reicht mir eine kurze Abfrage in der ich auf die Benutzergruppen prüfe, danach kann die phpbb3 Session geschlossen werden. Leider kann man einmal gesetzte Superglobale Variablen ja nicht mehr löschen, die brauche ich aber, damit die Session-Integration funktioniert...

Ich stehe auf dem Schlauch. Kann mir jemand einen Tipp geben, wie ich nun weitermachen könnte?
iiccee
Mitglied
Beiträge: 21
Registriert: 20.06.2006 11:55

Re: Gallery3 phpbb3 Integration

Beitrag von iiccee »

So, nachdem ich heute einige Seiten gelesen habe, hat mich folgender Ansatz erreicht:
viewtopic.php?f=93&t=205755

Einfach den Cookie auslesen und die Abfrage selbst in der Datenbank ausführen. Nicht so schön, aber es funktioniert und reicht für meine Zwecke vollkommen aus.

Code: Alles auswählen

	define('IN_PHPBB', true);
	$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
	$phpEx = substr(strrchr(__FILE__, '.'), 1);
   include_once($phpbb_root_path . 'config.' . $phpEx);

	$phpbb_cookie_id = $_COOKIE['phpbb_u'];
	$phpbb_cookie_sid = $_COOKIE['phpbb_sid'];
 
	$connect = @mysql_connect($dbhost, $dbuser, $dbpasswd);	 //	Connect to the server
	mysql_select_db($dbname);	 //	Select our database

	if($phpbb_cookie_id!=1) {
   $query = mysql_query("SELECT * FROM phpbb3_sessions WHERE session_id LIKE '".mysql_real_escape_string($phpbb_cookie_sid)."'");
   if(mysql_num_rows($query)==1) {
         $find_name = mysql_query("SELECT * FROM phpbb3_users WHERE user_id LIKE '".mysql_real_escape_string($phpbb_cookie_id)."'");
         if(mysql_num_rows($find_name)==1) {
            while($row=mysql_fetch_array($find_name)) {
               echo "Welcome, " . $row['username'] . "!";
            }
         }
   }
} else {
   echo "Not logged in";
}
Es fehlt noch die Benutzergruppenprüfung, das mach ich morgen noch ...

Wenn es noch irgendwelche Anregungen gibt, her damit! :grin:
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“