RkBlog

Hardware, programming and astronomy tutorials and reviews.

Integracja IPB - Instalacja i Test IPB SDK

W tej lekcji zapoznamy się z klasą IPB SDK służącą do integracji forum IPB z innymi skryptami PHP.

W tej lekcji zapoznamy się z klasą IPB SDK służącą do integracji forum IPB z innymi skryptami PHP. Skąd i co pobrać zostało opisane w ostatnim warsztacie. Teraz zajmiemy się zebraniem tego wszystkiego do kupy.

Instalacje

- W konfiguracji Code Ignitera w autoload.php dodaj do ładowania klasę "validation" oraz pomocniki "url" i "form"
- Zainstaluj forum IPB (najlepiej 2.1.* lub 2.0.*) w katalogu ipb w głównym katalogu Code Ignitera (taki katalog będzie stosowany w tekście). Do celów edukacyjnych localhostowych IPB można pobrać ze stron warezowych. Nie wolno używać nielegalnych kopii na prawdziwych stronach. Dodatkowo kopie z takich stron zawierają bardzo często tyle furtki i celowo dodane luki zabezpieczeń
- Do katalu system/application/scripts rozpakuj paczkę z IPB SDK (1.6 dla IPB 2.1.* lub 1.5 dla IPB 2.0.*) Potrzebny jest katalog lib oraz ipbsdk_class.inc.php i ipbsdk_conf.inc.php
- Edytuj plik ipbsdk_conf.inc.php i zastąp go kodem:
<?php
$root_path = 'ipb/';
$board_url = base_url().'/ipb';
$sdklang = "en";
$allow_caching = '1';
Gdzie $root_path to ścieżka do katalogu z forum IPB. Przy instalacji w katalogu ipb ścieżka będzie taka jak podana. $board_url - adres URL do forum.

Testujemy IPB SDK

- utwórz kontroler Main i ustaw go jako domyślny (autoload.php)
- Jako kod kontrolera wstaw:
<?php
error_reporting(E_ALL ^ E_NOTICE);
class Main extends Controller
{
function Main()
 {
 parent::Controller();
 $this->response = array();
 
 $this->load->script('ipbsdk_class.inc');
 $this->sdk = new IPBSDK();
 }
function index()
 {
 $text = 'prosty [b]gruby[/b] [u]podkreślony[/u] tekst';
 echo $text;
 echo '<HR>';
 echo $this->sdk->bbcode2html($text);
 }
}
Otwierając główną stronę powinieneś zobaczyć dwa wiersze tekstu, drugi z pogrubionym i podkreślonym tekstem - BBcode zamienionym na HTML.
Jeżeli dostajesz komunikaty o braku pliku do załadowania to albo masz złe ścieżki w konfiguracji SDK (co bardziej prawdopodobne) albo niewłaściwą wersję SDK do twojego forum. Pomocy szukaj... na forum kursu :)
Gdy nam wszystko chodzi czas na omówienie kodu. Na początek:
error_reporting(E_ALL ^ E_NOTICE);
CI raportuje wszystkie błędy nawet "uwagi" że coś ładnie nie jest zrobione. IPB jak i SDK nie są "zgodne" z takim raportowaniem błędów. Trzeba wyłączyć raportowanie "uwag" co powyższa linijka czyni. Trzeba ją dodawać do każdego pliku korzystające z SDK (lub ew. dodać do pliku klasy)
Następnie:
$this->sdk = new IPBSDK();
Tworzy nam nowy obiekt klasy, który możemy wykorzystać... Korzystamy z metody bbcode2html (Strona dokumentacji), która przyjmuje jako parametr łańuch i zwraca również łańcuch, z tym że tagi BBcode zostaną zmienione na kod HTML.
I to jest cała filozofia korzystania z IPB SDK. W kolejnych warsztatach poznamy część metod klasy i wykorzystamy je do stworzenia kilku komponentów na naszej stronie. Na zakończenie inny przykład:
<?php

error_reporting(E_ALL ^ E_NOTICE);
class Main extends Controller
{
function Main()
 {
 parent::Controller();
 $this->response = array();
 
 $this->load->script('ipbsdk_class.inc');
 $this->sdk = new IPBSDK();
 }
function index()
 {
 echo $this->sdk->get_avatar();
 echo '<pre>';
 print_r($this->sdk->get_info());
 }
}
Zgodnie z dokumentacją get_avatar() wyświetli awatara zalogowanego użytkownika (dla naszego komputera oczywiście) a get_info() zwróci tablicę zawierającą dane o użytkowniku... jakież to proste, czyż nie? Jedna linijka i wszystko mamy dostępne :)
- Radzę przygotować jakiś szablonik-widok, bo zaraz ruszy seria warsztatów, w której będziemy tworzyć stronę z kilkoma komponentami takimi jak artykuły z komentarzami - wszystko oparte o IPB.
RkBlog

14 July 2008;

Comment article