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

iammember

ustadlar membergroup.txt dosyasi eklenmemis mumkunse atabilirmisiniz.... tesekkurler


behzat11111

teşşekürler ama çözemiyorum onun için 2 soru soracağım

1. belli bir kategori veya bölümü son konular olarak göstermak istiyorum.
2. son konular'daki Konu sayısı İstediğim kadar çoğaltmak istiyorum.

MadBlazer

Merhaba,
SSI kullanıyorum bir sorum olucaktı.
<?php ssi_login(); ?> fonksiyonunu portalıma yerleştirdim bildiğiniz üzere giriş yapıldığı an foruma yönlendiriyor. ben forum değilde anasayfada kalmasını istiyorum bunu nasıl yapıcam?

Yağız...

<?php ssi_login('anasayfa adresiniz'); ?> şeklinde kullanın.(http:// koymayı unutmayın)

MadBlazer


MadBlazer

Bir sorum daha olucak.

Son Mesajlar bölümündeki Tarih ve Saati kaldırmak istiyorum nasıl yapıcam?

Balaban

ssi.php'de ssi_recentPosts fonksiyondaki  ', $post['time'], '  değişkenini kaldırarak yapabilirsiniz...
 
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';


içindn şu kısmı kaldırın..


<td align="right" nowrap="nowrap">
', $post['time'], '
</td>


.

MadBlazer


S_HA_DO_W

deneme.php adlı bir sayfa oluşturdum ve ana dizine attım ve alltaki iki kodu da denedim

<?php
require("/home/siteadi/public_html/forum/SSI.php"); //siteadi kısmına kendi sitemin adı yazılı
?>




<?php 
require("/var/www/siteadi/htdocs/smf/SSI.php"); //siteadi kısmına kendi sitemin adı yazılı
?>


deneme yaptığımda ise hiç bir sonuç alamadım
sayfa görüntülenemiyor hatası alıyorum :S
deneme yapmak amaçlı byethost un ücretsiz hostinginden ve ücretsiz bir domain ile denedim bundan kaynaklanıyor olabilir mi acaba


Hkan

Sadece bunu koyarsan hiçbir şey görüntülemez PHP fonksiyonu. :)

S_HA_DO_W

bu sorunu çözdüm arkadaşlar biraz kurcalayınca oluyormuş
smf/ssi_examples.php adresini çağırınca eklemem gereken kod düzgün bir şekilde gösteriyormuş

S_HA_DO_W

Quote from: biggboss on August 16, 2009, 04:57:51 PM
Sadece bunu koyarsan hiçbir şey görüntülemez PHP fonksiyonu. :)

demek istediğimi anlamamış olmalısınız.
demek istediğim sayfa görüntülenemiyor hatası vermesiydi neyse hallettim sorunu teşekkür ederim

reprimond

merhaba

Öncelikle döküman için teşekkürler. Deneme yanılma yöntemiyle <?php ssi_recentPosts(); ?> parametresini kullanarak wordpress sitemin anasayfasına forumdaki son mesajları çektim.
Bu parametreyle son mesajın olduğu bölüm adı, user adı ve tarihte geliyor. Ben sadece son mesajın atıldığı konunun adını istiyorum. Diğerlerini nasıl exculude edebilirim?
Wordpress anasayfasında kullanacağım


Advertisement: