Integracja IPB - Instalacja i Test IPB SDK
14 July 2008
Comments
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';
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);
}
}
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());
}
}
- 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
Comment article