Integracja z punBB
14 July 2008
Comments
Integracja punBB ma tą wadę że polega na dołączeniu pewnych plików forum, co w przypadku Code Ignitera stwarza jeden problem. Otóż pomocnik url zawiera funkcję redirect. punBB również zawiera taką funkcję i dochodzi do konfliktu. Musimy zmienić nazwę funkcji w pomocniku (co w przypadku udostępniania projektu zintegrowanego z punBB wymusza dodanie pliku pomocnika).- Otwórz system/helpers/url_helper.php i znajdź:
function redirect($uri = '', $method = 'location')
zamień na:
function ci_redirect($uri = '', $method = 'location')
Integracja
- W kontrolerach, które mają korzystać z integracji przed kodem klasy dodaj:<?php
define('PUN_ROOT', 'punbb/');
require PUN_ROOT.'include/common.php';
- Do konstruktora klasy dodaj:
<?php
global $pun_user;
$this->pun = $pun_user;
<?php
function nazwaklasy()
{
global $pun_user;
parent::Controller();
$this->pun = $pun_user;
unset($pun_user);
}
<?php
echo '<pre>';
print_r($this->pun);
Czy jestem zalogowany?
Oto metoda kontrolera, która sprawdza zalogowanie (zwraca True jeżeli tak i False jeżeli nie jesteśmy zalogowani)<?php
function _check_login()
{
IF($this->pun['group_id'] == 3) return false;
IF($this->pun['username'] == 'Guest') return false;
IF($this->pun['password'] == 'Guest') return false;
IF($this->pun['id'] == 1) return false;
return true;
}
Czy jestem adminem?
Grupa adminów ma numer ID równy 1, wystarczy prosty IF:<?php
IF($this->pun['group_id'] == 1)
{
echo 'Jestem adminem';
}
Ostatnie 10 aktywnych tematów
Wykorzystujemy CI do wykonania zapytania:$p = $this->db->query("SELECT * FROM PREFIX_topics ORDER BY last_post DESC LIMIT 10");
Co pobierze 10 tematów, w których ostatnio dodano posta. By wyświetlić listę z linkami wystarczy w pętli wywoływać widok o kodzie:
<?php
foreach($p->result() as $item)
{
$pun .= $this->load->view('pun_loop', $item, True);
}
<?php
<LI><a href="ŚCIEŻKA/viewtopic.php?id=<?=$id;?>"><?=$subject;?></a> (<?=$last_poster;?>)</LI>
RkBlog
Comment article