|
Unofficial modifications nieoficjalne modyfikacje for?w phpBB by Przemo |
|
Dla pocz?tkuj?cych - W?asna podstrona zintegrowana z phpBB by Przemo
warna - Sob 06 Maj, 2006 Temat postu: W?asna podstrona zintegrowana z phpBB by Przemo 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!
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&" . 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.
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&" . 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"> <b>{top.LP}</b> </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"> </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.
|
|