Ogłoszenie 
To forum przeznaczone jest na sprzedaż.
Rejestracja i pisanie postów na forum są wyłączone.
Zainteresowanych odsyłam pod adres aukcji:
Aukcja
.


Poprzedni temat «» Następny temat
Autor Wiadomość
Zamknięty przez: warna
Sob 06 Maj, 2006
Własna podstrona zintegrowana z phpBB by Przemo
warna 



Posty: 151
Piwa: 167/8
Skąd: Ozorków
Wysłany: Sob 06 Maj, 2006   Własna podstrona zintegrowana z phpBB by Przemo
   Adres forum: http://zagubieni.pl/forum/


Ten FAQ pokaże Ci jak łatwo możesz stworzyć strone zintegrowaną z phpBB i wyświetlić w niej żądane informacje pobierane z bazy forum.

Co będzie nam potrzebne?
1. Zainstalowane forum phpBB by Przemo (najlepiej 1.12.5)
2. Jakiś edytor plików html/php
3. Trochę inwencji twórczej ;)

Określamy sobie zadanie, które ma wykonać nasza podstrona. W tym wypadku będzie ona wyświetlać użytkowników, którzy mają więcej lub równo 50 postów. Let's rock! :D

Na sam początek tworzymy plik topusers.php.
Kod
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

$page_title = 'Top userzy';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$sql = "SELECT u.user_id, u.username, u.user_posts
FROM " . USERS_TABLE . " u, " . POSTS_TABLE . " p
WHERE (u.user_id <> " . ANONYMOUS . ") AND (u.user_id = p.poster_id) AND (u.user_posts >= '50')
GROUP BY user_id, username
ORDER BY user_posts DESC";
$result = mysql_query($sql);

$i = '1';

while ($row = mysql_fetch_assoc($result))
{
$template->assign_block_vars('top', array(
'LP' => $i,
'USERNAME' => '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>',
'POSTS' => $row['user_posts']
));
$i++;
}

$template->assign_vars(array(
'L_LP' => 'Lp.',
'L_USERNAME' => $lang['Username'],
'L_POSTS' => $lang['Posts'],
'L_TOPUSERS' => 'Top userzy'
));

$template->set_filenames(array(
'body' => 'topusers_body.tpl')
);

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>


Trochę wyjaśnień:

Kod
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

Standartowe "zmostkowanie" z phpBB :)

Kod
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

Sesje, zostaw w spokoju.

Kod
$page_title = 'Top userzy';

Jak łatwo można się domyśleć jest to tytuł podstrony :)

Kod
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

Tutaj dołączamy "główny" plik do includowania, gdzie są informacje o nagłówku, logowaniu, etc. Jeśli jesteś ciekaw(y/a) co jeszcze możesz tam znaleźć to po prostu zajrzyj do niego ;)

Kod
$sql = "SELECT u.user_id, u.username, u.user_posts
FROM " . USERS_TABLE . " u, " . POSTS_TABLE . " p
WHERE (u.user_id <> " . ANONYMOUS . ") AND (u.user_id = p.poster_id) AND (u.user_posts >= '50')
GROUP BY user_id, username
ORDER BY user_posts DESC";
$result = mysql_query($sql);

Łączymy się z bazą i pobieramy potrzebne dla nas infromacje.

Kod
$i = '1';

Potrzebne do numeracji użytkowników

Kod
while ($row = mysql_fetch_assoc($result))
{
$template->assign_block_vars('top', array(
'LP' => $i,
'USERNAME' => '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>',
'POSTS' => $row['user_posts']
));
$i++;
}

Informacje z bazy wrzucamy w tablicę $row.

Kod
$template->assign_vars(array(
'L_LP' => 'Lp.',
'L_USERNAME' => $lang['Username'],
'L_POSTS' => $lang['Posts'],
'L_TOPUSERS' => 'Top userzy'
));

Wprowadzamy dodatkowe opisy, które będą nam potrzebne w tpl'u.

Kod
$template->set_filenames(array(
'body' => 'topusers_body.tpl')
);

Określamy plik .tpl, który ma być szablonem tej podstrony.

Kod
$template->pparse('body');

Przetwarzamy kod .tpl'a. Bez tego kodu i pliku .tpl nic się nie wyświetli.

Kod
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

Dołączamy stopke i końcowe informacje forum.

#####

Przyszedł czas na utworzenie tpl'a :) Przykładowy plik topusers_body.tpl wrzucamy do katalogu /templates/NazwaStylu/:
Kod
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a> <span class="nav" style="color: #FF6600;">»</span>
{L_TOPUSERS}</span></td>
</tr>
</table>

<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
<tr>
<th height="25" class="thCornerL" nowrap="nowrap" width="5%">{L_LP}</th>
<th class="thTop" nowrap="nowrap" width="25%">{L_USERNAME}</th>
<th class="thTop" nowrap="nowrap" width="10%">{L_POSTS}</th>
</tr>
<!-- BEGIN top -->
<tr>
<td class="row1" align="center"><span class="gen">&nbsp;<b>{top.LP}</b>&nbsp;</span></td>
<td class="row1" align="center"><span class="name">{top.USERNAME}</span><br /></td>
<td class="row1" align="center" valign="middle"><span class="gen">{top.POSTS}</span></td>
</tr>
<!-- END top -->
<tr>
<td class="catBottom" colspan="8" height="28">&nbsp;</td>
</tr>
</table>
<table width="100%" cellspacing="2" border="0" align="center" cellpadding="2">
<tr>
<td align="right" valign="top"></td>
</tr>
</table>


wyświetlanie lokalizacji własnej podstrony
autor: geman

otwierasz plik własnej podstrony, np. moja_podstrona.php
Znajdź:
Kod
$userdata = session_pagestart($user_ip, PAGE_INDEX);

Zamień na:
Kod
$userdata = session_pagestart($user_ip, PAGE_MOJA);


includes/constants.php
Znajdź
Kod
define('PAGE_ADMIN_PANEL', -18);

Wklej po:
Kod
define('PAGE_MOJA', -20);


Numer -20 jest ok dla pierwszej dodanej podstrony, dla każdej następnej powinien być zmieniany o 1, czyli np. -21, -22 itd.

includes/functions_add.php
Znajdź:
Kod
case PAGE_ADMIN_PANEL:
$location = $lang['Admin_panel'];
break;

Wklej po:
Kod
case PAGE_MOJA:
$location = 'Moja Podstrona';
break;


W zmiennej $location wpisujemy to, co chcielibyśmy by wyświetlało się w overlibie na głównej, jeśli ktoś przebywa na naszej podstronie.

viewonline.php
Znajdź:
Kod
case PAGE_ADMIN_PANEL:
$location = ($user_id != ANONYMOUS) ? $lang['Admin_panel'] : $lang['Forum_index'];
$location_url = "#";
break;


Wklej po:
Kod
case PAGE_MOJA:
$location = 'Moja Podstrona';
$location_url = "moja_podstrona.$phpEx";
break;


W zmiennej $location wpisujemy to, co chcielibyśmy by wyświetlało się w pliku viewonline.php jeśli ktoś przebywa na naszej podstronie, a w zmiennej $location_url adres do podstrony.
Postaw piwo autorowi tego posta
 
 
     
Więcej szczegółów
Wystawiono 2 piw(a):
Shery, ErykG
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

rpgforum blogowe

Powered by PhpBB & Przemo.
Za treść postów administracja nie odpowiada. W przypadku naruszenia prawa, wszelkie zgromadzone dane o osobie łamiącej prawo, zostaną przekazane odpowiednim władzom. Kopiowanie elementów graficznych oraz rozwiązań technologicznych zastosowanych na niniejszej witrynie surowo wzbronione.
Strona wygenerowana w 0,66 sekundy. Zapytań do SQL: 16