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: 165/7
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:  



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,11 sekundy. Zapytań do SQL: 32