Web sayfamız sadece phpBB 3.0.x sürümlerine destek vermektedir. Konu açmadan, ileti yazmadan önce lütfen site kuralları sayfamıza göz atınız.

Özel Sayfaların Linklerinin Renkleri Hk.

Özel Sayfaların Linklerinin Renkleri Hk.

İleti Qene 31 Arl 2008 00:30

Arkadaşlar yine ben.
:oops:
Özel sayfa tasarımına Css + html desteği ile başladım. Ve ilk iş olarak yazı ilede olsa bir navigasyon menü oluşturdum. Şimdi çözemediğim bir konuda sizden yardım rica ediyorum.
Bu sitede
Ana Sayfa
Mesaj Panosu
...
..
Yardım
şeklinde menüler var. Hangi menüye tıklarsanız o an o sayfada ise menünün arka planı beyaz renge sahip oluyor. Css kodlarındaki <li></li> ile oluyor. Ama o sayfada olduğunu sanırım otomatik tanımlıyorsunuz. Bu konuda bana yardımcı olursanız çok sevinirim. Teşekkürler..
Qene
kullanıcı
kullanıcı

İleti: 139
Kayıt: 01 Mar 2008 00:03
HTML: Orta
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpBB3.0.4

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti ALEXIS 31 Arl 2008 03:43

CSS ve HTML kısmı basit, önemli olan hangi sayfada olduğunu belirleyen kodlar, biz bu sitede phpBB ve php den yararlanıyoruz (phpBB3 te bulunulan sayfa adını veren hazır değişkenler var), bunu yapmak sizin programcılık ve araştırma beceriniz.


Tamamen uydurarak yazdığım bir örnek:

Kod: Tümünü seç
<style>
#menu ul li {
     color:black;
}
#menu ul li .actived {
     color:red;
}
</style>

<ul id="menu">
       <li>Anasayfa</li>
       <li <?php  if ($page == 'iletisim'): ?> class="actived"<?php endif; ?>>İletişim</li>
</ul>
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti Qene 01 Oca 2009 00:49

Bu tarz birşey olacağını tahmin etmiştim.
Bu tür kodları ben de VB de çok kullanıyorum.
En yakın zamanda deneyeceğim.
Teşekkürler ALEXIS.. Mutlu yıllar..
Qene
kullanıcı
kullanıcı

İleti: 139
Kayıt: 01 Mar 2008 00:03
HTML: Orta
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpBB3.0.4

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti Qene 02 Oca 2009 02:07

Selam arkadaşlar tekrardan..
Kodu denedim ama istediğim olmadı sanırım. :oops:
Şöyle bir kod haline getirdim. Acaba hatam nerede?

Kod: Tümünü seç
          <li <?php  if ($page == 'U_CONTACT'): ?> class="actived"<?php endif; ?>><!-- IF S_CONTACT_ENABLED --><a href="{U_CONTACT}">{L_CONTACT_BOARD_ADMIN_SHORT}</a><!-- ENDIF --></li>


Css kodlarını ilave ettim.
Qene
kullanıcı
kullanıcı

İleti: 139
Kayıt: 01 Mar 2008 00:03
HTML: Orta
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpBB3.0.4

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti ALEXIS 02 Oca 2009 03:31

Kodları uydurduğun için olmuyor, tamam altertatif php sytax uygulaman doğrudur, ama $page değişkeni nerede tanımlı, ve temalarda bu şekilde php kullanmak için gereken ayarları açtın mı?

phpBB3 sayfaları için kodlar bunlar:

Kod: Tümünü seç
<!-- IF SCRIPT_NAME == 'index' -->
sadece index
<!-- ENDIF -->


Kod: Tümünü seç
<!-- IF SCRIPT_NAME == 'viewtopic' -->
sadece konu görünümü
<!-- ENDIF -->


Kod: Tümünü seç
<!-- IF SCRIPT_NAME == 'mcp' && SCRIPT_NAME == 'viewtopic' -->
konu görünümü ve moderatör paneli
<!-- ENDIF -->



{SCRIPT_NAME} kullanarak sayfalarda gezersen her sayfanın adını görebilirsin.

Daha karmaşıklar için php kodlarına müdahale edeceksin.
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti Qene 04 Oca 2009 21:41

Alexis,
Cevabın için sağolasın.
Dediğin tarzda yaptığımda, sayfanın aktif olmasını beklemeksizin kenarına çerçeve koydu.
Kodlarım:
Kod: Tümünü seç
<li IF SCRIPT_NAME == 'portal' id="current" ENDIF ><a href="./portal.php">Ana Sayfa</a></li>
<li IF SCRIPT_NAME == 'index' id="current" ENDIF ><a href="./index.php">Forum</a></li>

Sayfa adlarında problem olmadığı kesin.
Hata nerede peki?
Teşekkürler şimdiden.
Qene
kullanıcı
kullanıcı

İleti: 139
Kayıt: 01 Mar 2008 00:03
HTML: Orta
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Başlangıç
Sürüm: phpBB3.0.4

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti IcEman 04 Oca 2009 22:02

Kod: Tümünü seç
<li<!-- IF SCRIPT_NAME == 'portal' -->id="current" <!-- ENDIF -->><a href="./portal.php">Ana Sayfa</a></li>


aşağıdaki menuden esinlenerek yazdım ..
ileti4852.html#p4852
IcEman
kullanıcı
kullanıcı

İleti: 1511
Kayıt: 08 Nis 2007 13:25
HTML: Başlangıç
CSS: Başlangıç
PHP: Başlangıç
phpBB3: Orta
Sürüm: phpBb 3.0.8

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti ALEXIS 05 Oca 2009 03:05

IcEman gibi kullan, HTML kodları arasına <!-- PHP --> kodları ile phpBB nin tanıdığı özel php kodlarını gir.
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti Simuzer 05 Oca 2009 08:14

Kod: Tümünü seç
root/config.php (phpBB)
root/sayfa.php
root/bolum.php
root/konu.php


gibi sayfalar phpBB ile aynı dizinde olduğunda herhangi bir problem yok. Ancak;
Kod: Tümünü seç
root/sayfa.php

ile
Kod: Tümünü seç
root/sayfa.php
root/haber/sayfa.php
root/resim/sayfa.php

arasındaki fark, bu yönteme göre yok, hepsi "sayfa.php" olarak algılanıyor... Oysa ben dizin yolunu da algılamak ve buna göre de ayrımlaştırmak istiyorum...
Simuzer
kullanıcı
kullanıcı

Kullanıcı avatarı

İleti: 1127
Kayıt: 28 Mar 2007 20:19
HTML: İyi
CSS: Orta
PHP: Başlangıç
phpBB3: Orta
Sürüm: 3.0.5

Re: Özel Sayfaların Linklerinin Renkleri Hk.

İleti ALEXIS 05 Oca 2009 08:44

Yazdığınız uygulamaya göre pek çok yöntem olabilir, ancak phpBB3 te işin içinde olan temel değişken $user->page 'dir.

Kod: Tümünü seç
//phpBB3 yol değişkenlerinin tamamı
var_dump($user->page);


Kod: Tümünü seç
// sayfa adı, uzantıyı da sildik
$page = str_replace('.' . $phpEx, '', $user->page['page_name']);
echo $page . '<br />';


Kod: Tümünü seç
// bulunulan dizin, phpBB3 path'ı silince geri kalan
$sub_directory = str_replace($config['script_path'], '', $user->page['script_path']);
echo $sub_directory;


Kod: Tümünü seç
// url yolundaki dizinleri array yapalım
$script_name = explode('/',$user->page['page_name']);
var_dump($script_name);



Bu da şu an bu sitede olan kod, sadece bir alt dizini kontrol edip, iki / arasını alıp white list yöntemi ile karşılaştırmışım.

Kod: Tümünü seç
// +++ ana sayfa adı ve aktif sayfa belirleme
$forum_sub_page = array('index', 'ucp', 'mcp', 'search', 'faq', 'memberlist', 'viewforum', 'viewtopic');
$sub_script_name = str_replace('.' . $phpEx, '', $user->page['page_name']);

$template->assign_vars(array(
    'MAIN_PAGE_NAME' => kelime_al("/", "/", $_SERVER['REQUEST_URI']),
    'SUB_PAGE_NAME' => in_array($sub_script_name,$forum_sub_page),
));
// --- ana sayfa adı ve aktif sayfa belirleme

function kelime_al($beg, $end, $cumle) 
{
    $title = explode($beg, $cumle);
    $title = explode($end, $title[1]);
    return $title[0];
}
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Sonraki

Diğer Konular


Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

cron