News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

1.1 serisi Default temaya yeni tuşlar eklemek

Started by Harzem, February 24, 2006, 03:03:38 PM

Previous topic - Next topic

Harzem

Selamlar,

Burada size, SMF 1.1 RC2 default temada, tema menüsüne yeni tuşların nasıl ekleneceğini yazıyorum. Hani şu "Home - Help - Search - Login - Register" yazan menü ;) Mesela ben, oraya bir "Kurallar" tuşu koydum. Siz de oraya eklemek istediklerinizi koyabilirsiniz.

Öncelikle, oraya ne eklemek istediğine karar verin :D Ben burada SMF'ye link veren bir tuş yapacağım.

Index.template.php açılır. Şu kod bulunur:

// Otherwise, they might want to [logout]...
if ($context['user']['is_logged'])
echo ($current_action == 'logout' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'logout' ? 'active_back' : 'back' , '">
<a href="', $scripturl, '?action=logout;sesc=', $context['session_id'], '">' , $txt[108] , '</a>
</td>' , $current_action == 'logout' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';


Altına, veya üstüne, veya buna benzer üstteki diğer kod bloklarının arasına, kısaca menüde nereye isterseniz oraya şu kod eklenir:

// El yapimi yeni menüm :)
if ($context['user']['is_logged'])
echo ($context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
<td valign="top" class="maintab_back'>
<a href="http://www.simplemachines.org/">SMF</a>
</td>';


Şimdi,
if ($context['user']['is_logged'])
olarak eklediğimiz yer, bu menüyü sadece üyelerin görmesini sağlıyor. Eğer sadece ziyaretçiler görsün dersek, bu tek satır kodu silip yerine şunu koyacağız:
if ($context['user']['is_guest'])

Eğer herkes görsün dersek o satırı sileceğiz, yerine bişey koymayacağız. Şimdi orada "SMF" yazan ve tıklayınca simplemachines.org'u açan bir tuşumuz oldu.

Eğer dersek ki, bu linke tıklayınca aynı pencerede değil de yeni bir sayfada açılsın, o zaman şu satırı silip:
<a href="http://www.simplemachines.org/">SMF</a>
yerine şunu koyacağız:
<a href="http://www.simplemachines.org/" target="_blank">SMF</a>

Not:
Bu koyduğumuz tuşlar hiçbir zaman "seçili" olmaz. Yani nasıl şu anda bu sitedeki tuşlardan "Home" seçili, ya da başkasına tıklayınca o seçili oluyor, bu tuşlar öyle olmaz. Hiç yapmadığım şey değil ;) ama seçili olması için yeni bir action tanımlamamız gerekiyor, ona yeni tema dosyaları atamamız gerekiyor, veritabanı ile oynamamız gerekiyor, ohoo, çok iş. Ama ille de o seçili olsun derseniz o zaman yeni bir yazı hazırlarım :D

Hadi kolay gelsin.

Elmacik, bunu SSS'ye koy istersen, sonra da bu postayı sil yer kaplamasın ;)

Elmacik

#1
Birincisi, bunu eksik vermişsin :D
İkincisi ben daha önce vermiştim :D Ama şimdi hiç arayıp bulmaklan uğraşamam :D
Seçili olması için yeni bir ekşın demişsin, gerek yok. Yani butonların seçili olması için.
Örneğini yaptım bakabilirsin: www.turkforum.cc/index.php?action=shout_elm
Array zaten hazır. Sadece kendi ekşınını ekleyeceksin onun içine.
O da senin bu bulduğun kodların hemen üstünde ;)
Düzenleme: Pardon sen ekşın koymamışsın :D
O zaman ekşın olmadan o buton nasıl seçili olur onu da ben anlatayım anlatayım.
Öncelikle butonların bulunduğu template_menu() fonksiyonu içine şunu koyalım:

$bizim_sayfa = $_GET['topic'];
if ($bizim_sayfa == 5)
$current_action = 'kurallar';

Burada HarzeM'in örneğini kullandım dedim ki kurallar butonunu bir topike yönlendirmek istiyorsunuz ve bunun da numarası 5
Daha sonra da bir butonun kodlarını kopyalayıp ekşını değiştiriyoruz :)
Örneğin yine HarzeM'in örneğini kullanacak olursak :D Aşağıdaki gibi yapabiliriz:

// Bizim deli kurallarımız..
echo ($current_action=='kurallar' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'kurallar' ? 'active_back' : 'back' , '">
<a href="', $scripturl, '?topic=5.0">' , $txt[103] , '</a>
</td>' , $current_action == 'kurallar' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';


Yeni buton ekliyorsak, konu haricinde bir şey açılacaksa, bu da kendimize özel bir sayfa, dolayısıyla da yeni bir ekşın demektir.
O zaman SSS diyorum başka bir şey demiyorum :P
Eline sağlık HarzeM, her ne kadar daha önce anlatılmış da olsa, eksik de olsa, her nerede yaşatılıyor ve yaşanıyorsa da :P :P :P
Home of Elmacik

$כђiŹøƒ®ΣиiΛ™

öncelikle ellerine sağlık harzem. ama ben şöyle bir şey istiyorum. elimde bir chat script kodu war. ben oraya tuş eklediğimde o tuşa bir link değilde o scrtip kodunu eklemk istiyorum.. bilmem anlatabildimmi.. :( zor bir şey mi istiyorum mümkün mü acaba. umarım sorunumu anlatabilmişimdir

Elmacik

#3
redstar, SSS... :)
Ekşın ekşın deyip durduğumuz odur ;) (action)
Home of Elmacik

Duranek

#4
Arkadaşlar öncelikle verdiğiniz bilgiler için teşekkür ederim. Ancak bunu denediğimde şöyle bir hata alıyorum.

Harzem

YAŞARAZZİ

diye bir hata aldığını sanmıyorum. Yanlış resmi koymuşsun ;)

Duranek

Çok özür dilerim. Mahcup oldum. Hemen düzelticem. Pardon. Tam siteyle uğraşıyordum. 2-3 tane imageshack açıktı karışmış özür dilerim tekrar.

Harzem

index.template.php dosyasında, resimde bahsi geçen kodları bul.

kırmızı ile işaretlenmiş satırın hemen üstündeki satır var, orada şu yazıyor:
class="maintab_back'>

sondaki tek tırnağı çift tırnak ile değiştir.

class="maintab_back">

diye yani. Yan yana iki tane tek tırnak koyma. Silip çift tırnak koymalısın.

KirpiX

yukarıda arkadaşın bahsetmiş olduğu yanlışlıkla yolladığı resimdeki gibi hata aldığımızda bu türde bir düzenlememi yapmamız lazım hep harzem? bende temalarda değişiklik yapmak için kolları sıvasam ilk denemelerimde bu türde bir hatalar çıkmakta ve vazgeçip geri dönmekteyimde :)
MsN Durumum Şu Anda------->
http://www.locked5.com/

Harzem

DreamWeaver gibi bir editör kullanırsan, kodlarda renklendirme sayesinde tırnak hatalarını rahatça görebilirsin.

Duranek

Cevabınız için çok teşekkür ederim. Ancak sorunum şu.. 7dana temasında denedim bunu 7dana temasının index.templateinde..Ama böyle oldu.

Harzem


Duranek

İlla git default kullan yani diyosun  :D Çok istiyorum bu tip şeyler eklemek ama genelde hepsi default için oluyor  :( Neyse.. Yine de çok sağolun.

AmoN

merhaba banada 7 dana için lasm ne yapabilirm

rottegroupe

Harzem ellerine sağlık yalnız bir kaç kuralına el attım site sahibine haber verin demişsin bende buradan haber vereyim :)
SSPE (Subakut Sklorezon Panansefalit - Kızamık Virüsü)

BU ÇOCUKLAR ÖLMESİN

www.sspehastaligi.net

Harzem

Zaten benim kurallara el atmayan kalmadı ki :) Kasıp yazdım o kadar :P

Yok yok şaka, ben kastım ki siz kasmadan kural koyabilesiniz. Gönül rahatlığıyla kullan. Haber verdiğin için de teşekkür ederim.

Crazy

Buton eklemeyle ilgili genel ingilizce yardım sayfasından bakarak aşağıdaki gibi bir ekleme yaptım.. (bana daha kolay geldi cunku)

index.template.php 'de

function template_menu()  kodunun altında bir yere

// Show the [Radyo] button.
echo ($current_action == 'Radyo' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'radyo' ? 'active_back' : 'back' , '">
<a href="http://72.232.194.50:8009/listen.pls">' , Radyo , '</a>
</td>' , $current_action == 'radyo' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';


kodunu ekledim..
Her yerde güzel bir şekilde gözüküyor gözükmesine de..Action tanımlı olmadıgı icin forum hata mesajları icinde
Use of undefined constant Radyo - assumed 'Radyo'
Dosya: /home/fistik/domains/fistikforum.com/public_html/test/Themes/default/BoardIndex.template.php (eval?)
Satır: 554

şeklinde bir hata alıyorum..Acaba bu hatadan kurtulmak icin ne yapmalıyım?

Elmacık'ın http://www.simplemachines.org/community/index.php?board=76.0 adresinde verdiği işleri de denedim.. ancak o şekilde yapınca verilen linki yazdıgımda (www.site.com/forum/index.php?action=radyo   gibi ) sadece radyonun url adresi cıkıyor..

Yardımcı olabilirseniz sevinirim..

Harzem


Crazy

Teşekkür ederim harzem, dediğin gibi yaptıktan sonra kontrol ettim, hata mesajı da üretilmiyor, saolasın

TeKYureK

ya bunun teachhead tema için olanı yokmu potal kurdum mkportal forumu portala gommedım forumdan portala gecış istıyorum

Advertisement: