» » » » Main.TPL'de Smarty kodlarının kullanımları

Main.TPL'de Smarty kodlarının kullanımları

marika
marika Üye 19-09-2014, 01:07
Php'de Smarty (akıllı kodlama) denen sistem ile dle içinde bir çok özelleştirme yapabiliyoruz. Bu akıllı kodlar, temel cms kullanıcılarının işlerini php kodlara dokunmadan fonksiyonel olarak halletmelerini sağlıyor.

DLE main.tpl de kullanılabilen smarty kodlar

1) {custom ...} etiketi ve özellikleri
Main.tpl'ye yerleştireceğimiz {custom ...} kodu ile oluşturmuş olduğumuz haberleri sitemizin bir çok alanında (yazının en altına bakınız) liste halinde alt alta göstermeye yaramaktadır.

Dle yapısı eklenen haberleri otomatik olarak alt alta site ana sayfasında listelemektedir. Bu listelemeden farklı olarak özel bir listeleme oluşturmak için "custom" etiketi kullanabiliriz.

"Custom" etiketi ile belirli bir kategori veya kategorilerden belirlenmiş sayıda haberi istediğimiz özel bir şablon dosyası içinde anasayfada (ve daha bir çok alan bakınız ) alt alta listeleyebiliyoruz.

Daha açmak gerekirse, dle ye eklediğiniz haberler anasayfada alt alta karışık olarak listelenmektedir. Bu kullanım açısında pek hoş değil. Kullanıcıyı ilgisini çeken bir kategorideki haberleri toplu olarak göstermek daha işlevseldir.

Diyelim oyun siteniz var. Android oyunlarını sitenin anasayfasında listeletemek istiyoruz. Andorid oyunları kategorisinin id'si 1 olsun.

{custom category="1" template="test" aviable="main" from="0" limit="10"}


Şekildeki etiket yapısını sitemizin main.tpl sinde uygun bir yere yerleştirdiğimizde Andorid oyunları kategorisindeki 0 dan 10 kadar olan haberleri oluşturmuş olacağımız 'test' şablonu içinde anasayfada listeleyecektir.

aviable="main" yazan yere yazının en altındaki sayfa yapılarının isimlerini yazarsak sadece o sayfalarda görünmesini sağlayabiliriz.

Burada arkadaş ayrıntıları ile örnekler vermiş daha fazla örneklendirmeye gerek yok. Bu etiket aynı zamanda fullstory.tpl içinde aynı şekilde çalışmaktadır.

2) [aviable=*] *** [/aviable] etiketi ve özellikleri

Avaible "mevcut, geçerli" gibi bir anlamı vardır.

Dle içinde bir çok sayfa içeriği yapısı vardır. Bunlardan bazıları, main (ansayfada), showfull (haber sayfası içinde), register(kayıt olma sayfasında) gibi. Tüm sayfa yapı çeşitlerine yazının en altından bakabilirsiniz.
Kullanacağımız Avaible etiketiyle istediğimiz içerikleri istediğimiz sayfa yapılarında gösterilmelerini sağlayabiliriz.

[aviable=main] içerik [/aviable]

şeklinde kullandığımızda site anasayfasında [aviable=main] ile [/aviable] arasında kalan içeriği gösterecektir. Diğer sayfa yapılarında göstermeyecektir.

[not-aviable=main] içerik [/not-aviable]

şeklinde kullandığımızda site anasayfası haricindeki sayfa yapılarında [not-aviable=main] ile [/not-aviable] arasında kalan içeriği gösterecektir.

[aviable=main|showfull] içerik [/aviable]


şeklinde kullandığımızda site anasayfası ve haber içeriği sayfasında [aviable=main|showfull] ile [/aviable] arasında kalan içeriği gösterecektir. Diğer sayfa yapılarında göstermeyecektir.

[aviable=*] de *'ın yerine yazının en altındaki sayfa yapılarının isimlerinin hepsini birden kullanabilirsiniz.


Ayrıca "içerik" olarak belirtilen bölüme bir yazı gelebileceği gibi html kodlar veya {custom ...}, {include ...} gibi ve bu yazıda geçen tüm etiketler konulabilir.

3) {include file="block.tpl"} etiketi ve özellikleri

"include" etiketi main.tpl içine istediğimiz bir tpl dosyasını çekip içidenkileri göstermeye yarar.

Tema düzenleme bölümünden yeni sol-sutun.tpl dosyası oluşturduğumuzda bu tpl dosyası içindeki html kodlarını site anasyafasında gösterebiliriz.

{include file="sol-sutun.tpl"}

Bu kodu site ansayfasında sol sütunun geleceği yre eklediğimizde sol-sutun.tpl içindeki kodlarımız site ana ve tüm sayfa yapılarında (yazının en altına bakınız) görünecektir.

Bu kullanım şekli main.tpl dosyasını daha kullanışlı bir hale getirir. Sol sütuna yerleştireceğimiz html kodlarında düzenleme yapmak için, içinde bir çok kod bulunan main.tpl ye bakmak yerine tema düzenleme bölümündeki sol-sutun.tpl bakarız.


4) [category=*] *** [/category] etiketi ve özellikleri

Bu etiketi main.tpl ye yerleştirdiğimizde site içinde kategori sayfaları ziyaret edildiğinde [category=*] ile [/category] içine yerleştirilen kodlar gösterilmektedir. Kategori sayfaları haricindeki diğer sayfa yapılarında çalışmamaktadır (yazının en altına bakınız).

[category=*] ile [/category] arasına html kodlar eklenebileceği gibi {custom ...}, {include ...} gibi kodlarda eklenebilir.

[category=1] içerik [/category]


Şeklinde kullandığımızda id'si 1 olan kategori sayfasında "içerik" görüntülenir.

[not-category=1] içerik [/not-category]


Şeklinde kullandığımızda id'si 1 dışında olan tüm kategori sayfalarında "içerik" görüntülenir.

[category=1,2] içerik [/category]


Şeklinde kullandığımızda id'si 1 ve 2 olan kategori sayfalarında "içerik" görüntülenir.

[not-category=1,2] içerik [/not-category]


Şeklinde kullandığımızda id'si 1 ve 2 dışında olan tüm kategori sayfalarında "içerik" görüntülenir.

[not-category=1,2,5-8] içerik [/not-category]


Şeklinde kullandığımızda id'si 1 ve 2 ve 5 ile 8 arasında kalan tüm kategori sayfalarında "içerik" görüntülenir.



5) [group=*] *** [/group] etiketi ve özellikleri

Dle yapısında kullanıcı grupları vardır. "Ziyaretçi", "Üye", "Editör", "Genel Editör", "Yönetici" grubları vardır ve bu grupların id'leri sıra ile 5, 4, 3, 2, 1 dir. Bu gruplara özel içerik göstermek için "group" etiketini kullanırız.

[group=5] içerik [/group]

Şeklinde bir kullanım ile id'si 5 olan (ziyaretçiler) gruba "içerik" gösterebiliriz. Mesela ziyaretçilere üye ol çağrısı göstermek olabilir. Dİğer grupların görmemsi için [group=5] Üye ol! [/group] kullanım idealdir.

[not-group=5] içerik [/not-group]

şeklinde bir kullanım id'si 5 olan (ziyaretçiler) grubu haricine içerik gösterebilirsiniz.


Yada moderatörlerinize bazı hatırlatmlar yapabilirsiniz.
[group=3] Yorumları kontrol etmeyi unutmayınız [/group]

gibi.

[group=4,5] içerik[/group]


şeklinde kullanım ise ziyaretçi ve normal üyelere içerik göstermeye yaramaktadır.

Bu etiket ayrıca dle sayfa yapılarının hepsinde çalışmaktadır (yazının en altına bakınız)

[group=*] ile [/group] içine {custom ...}, {include ...} gibi kodlarda eklenebilir.



6) [banner_*] {banner_*} [/banner_*] etiketi ve özellikleri

En işe yara etiketleriden birisi ise reklam etiketidir. Dle yönetici panelinden "Reklam Kontrolü" bölümünde bir reklam oluştruduğunuzda
[banner_rek1] {banner_rek1} [/banner_rek1] 


gibi bir kod vardır sol tarafında bu kodu main.tpl'ye uygun bir yere yerleştirdiğinde reklamlarınız istediğiniz bölümde görüntülenir.

Reklam bir süre sonra durdurulması için ayar girdiyeseniz ve o zaman geldiğinde reklam kodunu yerleştridiğiniz alan boş görünecektir.

[banner_rek1] {banner_rek1} [/banner_rek1] 


Bu kullanımda "rek1" yazan yerleri reklamı oluşturken reklama verdiğimiz isimlerdir.

Reklama "adsense250px" diye isim verdiyseniz kodunuz

[banner_adsense250px] {banner_adsense250px} [/banner_adsense250px] 


Şeklinde olmalıdır.


Not: Yazı içinde bahsedilen dle ye özel sayfa yapılarının isimleri

global - tüm sitede
main - anasayfada
date - o tarihli sayfalarda
cat - kategorilerde
showfull - tüm yazıda
search - arama sayfalarında
userinfo - kullanıcı profili sayfalarında
register - kayıt sayfasında
stats - istatistik sayfasında
pm - özel mesaj sayfasında
feedback - iletişim sayfasında
favorites - kullanıcının favori haberler sayfalarında
addnews - yazı ekleme sayfasında
lastcomments - son yorumların sıralandığı sayfalarda
static - sabir sayfalarda
catalog - kataloglarda
alltags - tüm tagların buluğu sayfada
tags - herhangi bir etiket sayfasında
allnews - tüm haberler sayfalarında
newposts- yeni haberler sayfalarında
lastnews- son haberler sayfalarında
lostpassword- şifre hatırlatma sayfalarında

Konu ile alakalı kaynak için http://dle-news.ru/extras/online/startnews.html

Not 2: Bu kullanacağınız etiketler sonucunda istediğiniz içerikler istediğiniz şekilde ve yerde sitede görüntülenir. Ancak görüntülediğiniz yerlerde istediğiniz stilde ve görünümde görünmesini sağlayamıyorsanız html ve css konularındaki bilgi eksiklerinizi tamamlamalısınız. Html ve css konusunda bilginiz az ise bu etiketleri kullandığınızda istediğiniz tarza bir görünüm etmeniz zor olabilir.
Bilgilendirme
Yorum Ekleyebilmeniz için Sitemize Kayıt Olmanız Gerekmektedir.
0
flysquare 20 Ocak 2019 17:38
hocam demek istediğim aviable="cat" kulklanınca ütm kategorilerde gösteriyor bunu özelleştirmenin bir mantığı var mı acaba
3 779
MaRZoCHi 20 Ocak 2019 17:25
DLE nin kendi sitesinde taglar ile ilgili dokümanlar var. catlist sanırım category olarak değiştirilmişti..

--------------------
0
flysquare 20 Ocak 2019 02:01
aviable="cat"
yaptığımda tüm kategorilerde yayınlıyor bunu sadece bir categoriye nasıl yapabilirim?
[catlist=33]
                                                        {custom category="31" template="slider" aviable="cat" from="0" limit="1" order="date"}
                                                        {custom category="30" template="slider2" aviable="cat" from="0" limit="1" order="date"}
                                                        {custom category="29" template="slider3" aviable="cat" from="0" limit="1" order="date"}
                                                        {custom category="28" template="slider4" aviable="cat" from="0" limit="1" order="date"}
                    [/catlist]
 bu şekilde yaptım ama tüm categorilerde gösteriyor
185
Evan 17 Ocak 2019 17:10
Alıntı: flysquare
dle sisteminde ki hata mesajlarını nasıl değiştirebilirim acaba? 

Dil dosyalarından değiştirebilirsin. Ancak her güncellemenin ardından tekrar düzeltmen gerekecektir.
0
flysquare 17 Ocak 2019 01:13
dle sisteminde ki hata mesajlarını nasıl değiştirebilirim acaba? 
42
x474747 27 Mart 2018 19:44
peki benim merak ettiğim şöyle bir kod var acaba onun için ne yapmak gerekiyor: Bazı DLE tabanlı web sitelerinde diyelim önceden eklenen bir konu içeriği ya da içerikte ki linkleri güncelleyince o konu altında ve kategoride sıralanan konular listesinde yine o konu altında düzenleme sebebi: link güncellendi gibi nedenler belirtiliyor acaba bizde DLE tabanlı sitemizde eklediğimiz önce ki konulardan birini güncellerken altta ya da üstte konu düzenleme sebebini nasıl gösterebiliriz?

Umarım net anlatmışımdır sorunumu bu konuyu çok aradım denk gelemedim bir türlü cevabına.
0
Mtemizce 22 Temmuz 2016 13:24
Sistem içerisinde kendimiz yeni bir smarty kod oluşturabiliyor muyuz?
Mesela function dosyasına ekleyeceğim fonksiyonlar ile {mehmet} diye bi smarty kod oluşturma imkanım varmı. Gerçi bu soruyu sormamın sebebi dle yapısını tam bilmemek o ayrı mesele tabi :)
0
programcini 31 Ağustos 2015 23:50
teşekkürler çok yararlı bir makele merak ettiğim bir çok konuyu aydınlatmışsınız. Emeğinize sağlık
3 779
MaRZoCHi 29 Mayıs 2015 19:23
@uye034, ne demek yardımcı olduysak ne mutlu.

--------------------
0
Cesur 29 Mayıs 2015 19:04
@MaRZoCHi, Çok teşekkür ederim. Allah senden razı olsun. Büyük bir eziyet ve dertten kurtardın beni.
3 779
MaRZoCHi 29 Mayıs 2015 18:31
9.6 -> 9.7 güncellemesi ile

Ek Olarak fullstory.tpl de:
[category=ID][/catgory]
[not-category=ID][/not-catgory]

Taglarını artık aşağıdaki gibi kullanacağız.Yani temalarınızda bu düzenlemeleri de yapmanız gerekli.
[catlist=ID][/catlist]
[not-catlist=ID][/not-catlist]

--------------------
0
Cesur 29 Mayıs 2015 17:20
Merhaba,
[not-category=1] içerik [/not-category] kodlarını kullandığım zaman [not-category=1] yazısı sayfada olduğu gibi görüdüyor. Bu sorunu nasıl çözerim?
0
mehmet 14 Aralık 2014 01:50
Teşekkürler Hocam sizin yorumu görmemiştim :) Yeni Gördüm Sağolun
0
mehmet 13 Aralık 2014 16:20
Yaptım gerek kalmadı belki başka kardeşlerim yapar mantığını söyleyeyim

Örneğin Bir ilave alan açmışsınız ve oraya herhangi bir bilgi yazmadığınız zaman makale içindeki ilave alanınız görünür ve ilave alan içi boş görünür
Fakat örenğin ilave alanımızın ismi Versiyon olsun alttaki gibi yaparsanız boş bırakılan ilave alan makale içinde nereye eklemişseniz görünmez. Paylaşayım dedim

[xfgiven_versiyon]Versiyon: [xfvalue_versiyon] [/xfgiven_versiyon]
3 779
MaRZoCHi 13 Aralık 2014 16:17
@mehmet, Girilip girilmediğini girilmediğini kontrol için aşağıdaki kodları kullanabilirsiniz.

[xfgiven_versiyon] Değer girildi : [xfvalue_versiyon] [/xfgiven_versiyon]

[xfnotgiven_versiyon] Değer girilmedi [/xfnotgiven_versiyon]

--------------------
0
mehmet 13 Aralık 2014 16:10
@marika sizden bir ricam olacak sitemde program siteler gibi versiyon, uretici vb bilgileri ilave alan çekiyor. bazen versiyon girilmiyor ve o kısım boş kalıyor

örneğin: Versiyon: [xfvalue_versiyon] ilave alan boş bırakıldığı zaman görünmemesini nasıl yapabiliriz.

Yukardakileri okudum böyle yaptım olmadı ? [aviable=main] [xfvalue_versiyon] [/aviable]

Yada @MaRZoCHi hocamız bir el atsa memnun olurum.
0
Simurg 20 Ekim 2014 21:47
@marika, @MaRZoCHi, teşekkur ederim bu sefer oldu
597
marika 20 Ekim 2014 21:17
@Simurg, son yorumlara müdahale edilmiyor custom elemeti ile.


Popüler konuları listeleme

custom içinde order kullanarak yapabilirsiniz.




rating - oylaması (yıldız verme) çok olanlardan başlayarak listeleme
reads - okunması çok olanlardan başlayarak listeleme
comments - yorumları çok olanlardan başlayarak listeleme

Kullanımları şöyle:

{custom category="1" template="konu" from="0" limit="5" cache="no" order="rating"}
{custom category="1" template="konu" from="0" limit="5" cache="no" order="reads"}
{custom category="1" template="konu" from="0" limit="5" cache="no" order="comments"}


Bu tiplerden hangisi size akılcı geliyorsa onu seçip kullanınız.
3 779
MaRZoCHi 20 Ekim 2014 21:12
@Simurg, lastcomments yorumları sıralamak için değil. lastcomments - Son yorumlar sayfasının kodudur(adıdır).

Custom ile ilgili parametrelere buradan bakabilirsiniz.

--------------------
0
Simurg 20 Ekim 2014 20:49
lastcomments nasıl kullanabiliriz son yorumları sıralamak için
birde konuları nasıl sıralayabiliriz popüler konulara göre örneğin
bunu
{custom category="1" template="konu" from="0" limit="5" cache="no"}
nasıl popüler konulara göre yapabiliriz
597
marika 19 Eylül 2014 15:49
Önemli değil hocam sizin yardımlarınız yanında.
3 779
MaRZoCHi 19 Eylül 2014 15:38
@marika, Teşekkürler çok açıklayıcı bir yazı olmuş. Yavaş yavaş wiki dökümanları oluşuyor.
aviable tagı için ek bir bilgi vereyim. Mesela bulunduğunuz bir sayfa var ve bu sayfanın kodunu, yani aviable içine yazacağınız değeri bilmiyorsunuz.

index.php'yi açarak echo $tpl->result['main']; kodundan önce echo $dle_module; kodunu ekleyin ve sayfayı yenileyin. Sayfa kaynağına baktığınızda en üstte aradığınız değeri göreceksiniz. Sonrasında bu kodu silmeyi unutmayın.

--------------------