Wykorzystanie systemu użytkowników z phpBB3

Kiedy piszemy portal, często przydałoby się również stworzyć forum. O ile zainstalować skrypt for nie jest rzeczą trudną, to pojawia się poważny problem. Jest nim integracja Naszego CMSa z systemem użytkowników forum dyskusyjnego. Zakładam, że wybrałeś phpBB3, bo na podstawie niego jest ten artykuł stworzony. Najłatwiej jest wykorzystać cały system sesji phpBB3 i to właśnie opiszę w niniejszym tutorialu.

Instalacja systemu

Nie jest to rzecz trudna. W nagłówku musimy umieścić poniższy kod:

define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
 
$user->session_begin();
$auth->acl($user->data);
$user->setup();

Trzeba w nim jedynie zmienić zawartość zmiennej $phpbb_root_path na katalog, w jakim znajduje się docelowa instalacja phpBB3.
Wykonanie się tego kodu da nam dostęp do sesji phpBB3.
Dla dociekliwych: pierwsza linia definiuje stałą potrzebną do funkcjonowania skryptów phpBB3, druga to już wiemy, trzecia pobiera rozszerzenie plików PHP bazując na nazwie aktualnego, czwarta wczytuje skrypt główny, szósta rozpoczyna sesję, siódma pobiera uprawnienia zalogowanego użytkownika, a ósma wykonuje operacje, które muszą być wykonane przy każdym uruchomieniu skryptów phpBB3(między innymi załadowanie plików językowych).

Formularz logowania

Dobrze, najważniejsze już mamy, ale jak dodać formularz logowania do Naszej strony? Nic trudniejszego:

<form action="./forum/ucp.php?mode=login" method="post">
	<fieldset>
		<legend>Logowanie</legend>
		<label for="username">Login</label>
		<input type="text" name="username" />
		<label for="password">Hasło</label>
		<input type="password" name="password" />
		<label for="autologin">Autologowanie</label>
		<input type="checkbox" name="autologin">
		<input type="hidden" name="redirect" value="../index.php">
	</fieldset>
	<input type="submit" name="login" value="Zaloguj" class="submit" />
</form>

Jako wartość akcji formularza podajemy ścieżkę do pliku ucp.php z argumentem GET mode=login. W ukrytym polu formularza definiujemy ścieżkę strony, do jakiej skrypt phpBB3 ma wrócić po pomyślnym lub niepomyślnym logowaniu.

Link wylogowujący

Link do wylogowania to troszkę trudniejsza rzecz, bo musimy Naszemu systemowi szablonów umożliwić dostęp do zmiennej $phpbb_root_path i obiektu $user za pomocą instrukcji global. Jeżeli nie posiadasz takowego, po prostu zapewnij w danym miejscu dostęp do nich. Kod będzie wyglądał tak:

<a href="<?php echo append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id) ?>">Wyloguj</a>

Bazuję tutaj na prostym systemie szablonów, który już opisałem. Jeżeli korzystasz z specyficznego, to już Tobie pozostawiam przerobienie powyższego kodu.

Informacje o użytkowniku

Z logowania i wylogowywania to wszystko, lecz co zrobić, kiedy chcemy pobrać id użytkownika, jego główną grupę, czy informację, czy jest zalogowany? Tutaj z pomocą przychodzą nam różne elementy tablicy $user->data:

  • user_id – ID użytkownika
  • user_type – typ użytkownika(administrator = 3, bot lub anonim = 2, zwykły użytkownik = 1 lub 0)
  • is_registered – informacja, czy użytkownik jest zalogowany/zarejestrowany(zwraca wartość typu bool)
  • group_id – główna grupa użytkownika
  • is_bot – informacja, czy klient jest botem(patrz is_registered)

To są podstawowe i najczęściej wykorzystywane elementy tej tablicy, lecz są też inne. Aby uzyskać ich pełną listę, wywołaj funkcję print_r z argumentem $user->data:

print_r($user->data);

Myślę, że tyle informacji wystarczy Ci, aby zintegrować Twój system z forum. Jeżeli potrzebujesz dodatkowych informacji, po prostu przejrzyj wszystkie elementy tablicy $user->data.

Za ten artykuł podziękowano 0 raz(y). Chcesz i Ty ?

4 Comments

  • 17 lipca 2009 - 0:37 | Permalink

    Ciekawy blog, zatrzymam sie tu na dluzej
    pozdro kxawriusz

  • 22 lipca 2009 - 13:23 | Permalink

    Interesujacy post, stronka ladna graficznie, jeszcze tu napewno zajrze
    pozdro lukkolini

  • 27 lipca 2009 - 23:13 | Permalink

    Fajna stronka, juz jest w moich ulubionych, jeszcze tu napewno zajrze

  • Pingback: 4freelancers.pl - tutoriale i poradniki. Wszystko o webmasteringu, grafice i fotografii.

  • Dodaj komentarz

    Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

    *

    Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">