Yazar: pentapenguin
Merhaba.
Bu başlık altında phpbb3 forumunuza nasıl sayfa hazırlanacağını anlatacağım. Aynen kendi forumunuza benzeyen (hatta üye kontrol vb. phpbb classlarını da içinde barındıran) bir sayfa hazırlayabilirsiniz. Bu sayfa basit bir yazı yada kendi yazdığınız php, ajax, js scriptleri barındırabilir. Hazırsanız başlayalım.
hakkimizda.php sayfası:
Mesela kim olduğumuz hakkında bir sayfa hazırlamak istiyoruz. Ana dizine hakkimizda.php dosyasını ekliyoruz. Dosyanın içine şu kodları giriyoruz:
- Kod: Tümünü seç
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
page_header('Site Başlığı');
$template->set_filenames(array(
'body' => 'hakkimizda_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
Şimdi bütün bunlar ne işe yarıyor bir bakalım:
- Kod: Tümünü seç
$user->setup();
Bu satır üyelerle ilgili bilgilerin sayfaya çağırılmasını sağlıyor. Ayrıca dil dosyası çağırmaya da yarar. Şu anki haliyle herhangi bir dil dosyası çağırmıyor ancak aşağıdaki gibi değiştirirsek bir dil dosyası çağırmış olacağız:
- Kod: Tümünü seç
$user->setup('dil-dosyasinin-adi');
Burada dikkat edilmesi gereken dil dosyasının ".php" uzantısı yazılmamalıdır.
Örnek olarak, dil klasörü içindeki viewtopic.php dil dosyasını sayfaya çağırmak istiyoruz;
- Kod: Tümünü seç
$user->setup('viewtopic');
----------------------------------------------------
- Kod: Tümünü seç
page_header('Site Başlığı');
Bu satır ise özetle geçersek sayfanın başlığını (html dilinde title) tanımlamanızı sağlar.
----------------------------------------------------
- Kod: Tümünü seç
'body' => 'yourpage_body.html',
Bu satır ise tema dosyaları (/styles/[temaadı]/templates/) arasındaki tema dosyamızın adıdır.
BİRAZ DAHA DETAY:
Diyelim ki sayfayı sadece giriş yapmış kullanıcılar görebilsin.
Bu kodun altına:
- Kod: Tümünü seç
$user->setup();
Bu kodu yazıyoruz:
- Kod: Tümünü seç
if ($user->data['user_id'] == ANONYMOUS)
{
login_box('', $user->lang['LOGIN']);
}
Şimdi burayı biraz açalım, php bilginiz varsa daha iyi olur aslında.
- Kod: Tümünü seç
$user->data['user_id']
Bu kod bize üyenin ID'sini verir, ancak üye giriş yapmamışsa 1 değerini verir. ($user->data olaylarını daha sonra sessions makalesinde açılayacağım). IF sorgusundaki ANONYMOUS ise includes/constants.php içinde değeri 1 olarak define edilmiştir. Yani ANONYMOUS yerine 1 yazsak da olur ancak stabil olması açısından böyle kalması daha iyi. login_box ise phpbb3 fonksiyonlarından birisidir. Login sayfasına yönlendirir.
Tema Dosyası:
- Kod: Tümünü seç
<!-- INCLUDE overall_header.html -->
<h2>Bir Adet Başlık</h2>
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>
Ve buraya da içeriğimizi yazabiliriz.
</p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Bu da tema dosyamız, <!-- INCLUDE --> ile başka tema dosyalarını sayfaya dahil ediyoruz, tema motorunun kullanımı hakkındaki makalemde bunları detaylıca açıklayacağım. Şimdilik bu kadar. siteadresi.com/hakkimizda.php adresinden sayfanıza bakabilirsiniz. (Not: Tema dosyaları değişikliğinde önbelleği temizlemeyi unutmayınız.) Örnek olarak aşağıdaki kodları inceleyebilirsiniz:
hakkimizda.php dosyası:
- Kod: Tümünü seç
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
page_header('Hakkımızda');
$template->set_filenames(array(
'body' => 'hakkimizda_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
hakkimizda_body.html (tema dosyası):
- Kod: Tümünü seç
<!-- INCLUDE overall_header.html -->
<h2>Hakkımızda</h2>
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>
İçeriği buraya yazabiliriz.
</p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->