SSI Dersleri - Başlangıç Seviyesi

Started by [SiNaN], May 21, 2008, 10:25:55 AM

Previous topic - Next topic

[SiNaN]

SSI Dersleri – Başlangıç Seviyesi

Öncelikle hepiniz SSI Derslerimize hoş geldiniz. 3 seviye olarak düşünülen SSI Derslerimizde; SSI ile neler yapabileceğimize bakacak, SSI hakkında sıkça sorulan sorulara cevap verecek ve bazı püf noktalarını açıklayacağız. Ayrıca mesajın sonuna eklenmiş olan kodlar ile de öğrendiklerinizi uygulamalı bir şekilde görebileceksiniz. Bunun dışında herhangi bir soru sormak ya da yorum yapmak isterseniz lütfen bu mesajın altından devam edin.

***LÜTFEN 'SSI.PHP' DOSYANIZDA DEĞİŞİKLİK YAPMAYINIZ***
Bu derslerde gösterilen her şey 'SSI.php' dosyası düzenlenmeden yapılmıştır.


SSI nedir?

Açılımı Server Side Include olan SSI, forumunuzdaki bilgileri, forum dışındaki sayfalarınızda kullanabilmenizi sağlar.

SSI bana nasıl yardımcı olabilir?

Emin olun siz de SSI kullanmak zorunda kalacağınız bir durumla karşılaşacaksınız. Hemen bir örnek verelim:

Örnek:

Forumunuzun dışındaki bir sayfada bazı özel indirme bağlantıları bulunuyor. Siz, bunların sadece üyeler tarafından görülmesini istiyorsunuz.

Böyle bir şeyi SSI ile birkaç dakika içinde yapabilirsiniz.

İlginç... Peki, nasıl kullanmaya başlayacağım?

Denemek için bir dosya oluşturabilirsiniz. Öncelikle yapmanız gereken kullanacağınız dosyanın uzantısını .php yaparak aşağıdaki kodu dosyanın en üstüne eklemek:

<?php
require("/home/simple/public_html/forum/SSI.php"); 
?>

Yalnız yukarıdaki kodda SSI.php dizininin siteniz için doğru olduğundan emin olmalısınız.

Tamam, dizini doğru olarak girdim, sırada ne var?

Eğer doğru dizini bularak dosyanıza yukarıdaki kodu eklediyseniz ilk adımı tamamladık. Şimdi birkaç deneme yapalım. Aşağıdaki kodu 'require...' ile '?>' kodları arasına ekleyin:

ssi_menubar();

Ardından da tarayıcınızdan bu sayfayı görüntüleyin. Her şey yolunda gittiyse, sitenizin menüsünü görüyor olmanız gerekir. Eğer hiçbir şey çıkmıyor veya hata mesajı alıyorsanız büyük ihtimalle SSI.php dizinini doğru olarak ayarlayamadınız, tekrar kontrol edin.
Çalıştırabildiğinize göre artık burada diğer varsayılan fonksiyonları da kullanarak denemeler yapabilirsiniz. Varsayılan fonksiyonları 'ssi_examples.php' dosyasından görebilirsiniz.

Harika! Başka neler yapabiliriz?

Birçok şey. Mesela verdiğimiz örnekteki gibi kullanıcının üye olup olmadığını kontrol edebilirsiniz.

Örnek:

Sitenizde hem forum, hem de forumdan bağımsız bazı sayfalar var. Özel bağlantıların bulunduğu "Dosyalar" sayfasını sadece üyelerin görebilmesini istiyorsunuz.

Bunu PHP'nin 'if' kontrol yapısı ile kolayca yapabilirsiz:

<?php
require("SSI.php_DİZİNİNİZ"); 

if (
$context['user']['is_guest'])
 {
   echo 
   
'<h5>Erişim Engellendi</h5>
   Bu sayfaya erişim izniniz yoktur. Eğer üyeyseniz lütfen giriş yapın.'
;
 }
else
 {
   echo
   
'<h5>Hoş geldin '$context['user']['name'], '!</h5>
   İşte özel bağlantılar:'
;
 }
?>


Yukarıdaki kodları açıklayalım:
'if' kontrol yapısı doğru ve yanlış üzerine çalışır. Örneğimizdeki $context['user']['is_guest'] eğer doğruysa, birinci kod bloku çalışır. Eğer yanlışsa 'else' kod bloku çalıştırılır.
Yani bu kodlarda eğer giriş yapmamışsanız [Bu durumda ziyaretçisiniz] "Erişim Engellendi" mesajı alacaksınız. Ama eğer giriş yapmışsanız, indirme bağlantılarını göreceksiniz. Kendinize göre düzenleyerek kullanabilirsiniz.

Aynısını kullanıcının yönetici olup olmadığını kontrol etmek için de kullanabilirsiniz.

if ($context['allow_admin'])
  {
   Kod bloku
  }
else
  {
   Kod bloku
  }


Bu mesaja eklenmiş olan kodlar da size yardımcı olacaktır.

membergroup.txt – Üye grubunuzu daha sonra kullanılabilmesi için bir değişkenin içine koyar.
welcome.txt – Eğer ziyaretçiyseniz, giriş formunu; değilseniz de karşılama mesajını gösterir.

Bununla birlikte ilk dersimizin sonuna geldik. Şimdi SSI Dersleri – Orta Seviye'ye geçebilirsiniz.

Lütfen anlamakta zorluk çektiğiniz noktaları sormaktan çekinmeyiniz. Bu dersin kapsadığı bütün özellikler hakkında soru ve sorunlarınızı bu konu altına yazabilirsiniz.

Orijinal konu Basic SSI FAQ, Tomer tarafından yazılmıştır.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Harkulade. Emeğine sağlık Sinan.. Bu 3 ders de bana ileride lazım olabilir..
Dökümantasyona taşınmasını temenni ederim..
İnadına SMF 1.1.X

♀φ®♪└┘δ

Sinan çok güzel  bir  anlatım olmuş en azından benim  gibi  ssı'yi  pek bilmeyen arkadaşlar  bunlardan  yararlanacaktır.  Mesela    veri tabanını entegre etmeden sadece  üyelerin girebileceği  sohbet bölümleri  oluşturulabilir  bu yolla..

[SiNaN]

Evet, 2. kısımdaki kodlarla kolayca yapabilirsiniz.

Eğer devamını yazacak olursam SSI için yeni fonksiyonlar yazma ile alakalı bir ders olacaktır. Ama bu bölüm için gerekir mi, bilmiyorum.
Former SMF Core Developer | My Mods | SimplePortal

TECHKENDO

Bilgiler için teşekür ederim Sinan,

sitemi kendi php bilgilerim ve ssi ile geliştiriyorum, şimdiye kadar iyi iş çıkardığıma inanıyorum

Aşağıdaki if döngülerini belirli forum kullanıcı grubuna uygulayabiliyormuyuz ? Örneğin istediğim yere sadece oluşturmuş olduğum A Grubu girecek şekilde

if ($context['allow_admin']) --->> yönetici

if ($context['user']['is_guest']) --->> ziyaretçi


[SiNaN]

SSI Dersleri - İleri Seviye'de açıklamıştım sorunuzun cevabını.

Diğer dersleri de okumanızı tavsiye ediyorum.
Former SMF Core Developer | My Mods | SimplePortal


a11

#7
Elinize sağlık..

Yapmak istediğim şey şu ,

Elimde 20 kategorili forum var. ( misal )

a kategorisi
b kategorisi
c kategorisi


Bu kategorilerden a kategorisinde açılan son konunun Konu başlığını Forum Ana Sayfasında Forumun Sağ tarafına eklediğim blokta göstermek istiyorum. Açacağım blokta istediğim kategorinin / kategorilerin son konusunu veyahut son 3 konusunun başlığını orada göstermem mümkün müdür ? Son 10 konu haricinde böyle birşey yapmak istedim ama kodların içinden çıkılmaz bir hal aldı..

Şimdiden teşekkürler..


a11


#Serseri

Quote from: [SiNaN] on May 21, 2008, 10:25:55 AM
***LÜTFEN 'SSI.PHP' DOSYANIZDA DEĞİŞİKLİK YAPMAYINIZ***

SSI'de kendime göre değişiklik yapsam ne sakıncası varki? Forum buradan birşeyler çekiyormu? Kendime göre düzenlediğim bir kaç yer varda. Örneğin tabloları düzenliyorum bir kaç gif ekliyorum.

[SiNaN]

Güncelleme sırasında sorun yaşamamanız için SSI.php'de değişiklik yapmanızı tavsiye etmiyorum. SSI Dersleri - Orta Seviye'yi incelerseniz aslında SSI.php'de hiçbir değişiklik yapmadan istediklerinizin yüzde 90'ını elde edebileceğinizi göreceksiniz.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

SSI boarnews ile çağırdığımızda
6 yorum | Yorum Yaz
yazıyorya hani haberin aşağısında..
onun yanına bir de görüntülenme sayısını ekleyebilirmiyiz paşam?
İnadına SMF 1.1.X

[SiNaN]

Sanırım temada kullanacaksın. Maalesef görüntülenme sayısını veritabanından almıyor HCM.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

İnadına SMF 1.1.X

sazan

#15
ya birde html index te ssi nasil yapilir izah edebilecen mi? deneyecem bakalim...

Hoochie Coochie Man

html index.te ssi yapılmaz benim bildiğim.
İnadına SMF 1.1.X

[SiNaN]

Daha önce bir yerde yazmıştım sanırım. Normalde apache ayarlarından html'lerin de Server-Side-Include'u desteklemesi sağlanabiliyor. Ama tavsiye edilmiyor ve de çok kolay değil.
Former SMF Core Developer | My Mods | SimplePortal

[-Delete-]

Emeğine Sağlık Sinan Çok Güzel Döküman , Sırayla Diğer Dökümanlarıda İnceleyeceğim.

HTML Sayfada Ben SSİ Çalıştırmıştım ve Bunu <bod><?php ssi_fonksiyon(); ?></body> şeklinde gerçekleştirmiştim.

Nekadar doğru nekadar yanlış tartışılır ama istediğimide yapmıştım doğrusu :)

Tekrar Teşekkürler.
Pess..!

[SiNaN]

Quote from: <!--Mehmet--> on November 05, 2008, 02:10:27 PM
HTML Sayfada Ben SSİ Çalıştırmıştım ve Bunu <bod><?php ssi_fonksiyon(); ?></body> şeklinde gerçekleştirmiştim.

Bunun mümkün olduğunu sanmıyorum. Eğer iframe kullanarak *.php bir sayfayı gömmezseniz... *.html uzantısının da SSI'ı desteklemesi sağlanabiliyor ama kullanılan kodlar *.shtml örneklerinde olduğu gibi olmak zorunda. Tabii url rewrite ile php uzantıyı da html'e çevirebilirsiniz.
Former SMF Core Developer | My Mods | SimplePortal

Advertisement: