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 (http://www.simplemachines.org/community/index.php?topic=12936.0), Tomer (http://www.simplemachines.org/community/index.php?action=profile;u=1176) tarafından yazılmıştır.
Harkulade. Emeğine sağlık Sinan.. Bu 3 ders de bana ileride lazım olabilir..
Dökümantasyona taşınmasını temenni ederim..
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..
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.
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
SSI Dersleri - İleri Seviye (http://www.simplemachines.org/community/index.php?topic=240522.0)'de açıklamıştım sorunuzun cevabını.
Diğer dersleri de okumanızı tavsiye ediyorum.
Emeğine sağlık Sinan :)
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..
Sanırım burası daha çok yardımcı olur:
http://www.simplemachines.org/community/index.php?topic=240521.0
Teşekkür ederim ilginiz için.. ;)
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.
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 (http://www.simplemachines.org/community/index.php?topic=240521.0)'yi incelerseniz aslında SSI.php'de hiçbir değişiklik yapmadan istediklerinizin yüzde 90'ını elde edebileceğinizi göreceksiniz.
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?
Sanırım temada kullanacaksın. Maalesef görüntülenme sayısını veritabanından almıyor HCM.
Eywelleeee :)
ya birde html index te ssi nasil yapilir izah edebilecen mi? deneyecem bakalim...
html index.te ssi yapılmaz benim bildiğim.
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.
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.
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.
ustadlar membergroup.txt dosyasi eklenmemis mumkunse atabilirmisiniz.... tesekkurler
http://www.simplemachines.org/community/index.php?action=dlattach;topic=12936.0;attach=1913
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.
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?
<?php ssi_login('anasayfa adresiniz'); ?> şeklinde kullanın.(http:// koymayı unutmayın)
Teşekkürler.
Bir sorum daha olucak.
Son Mesajlar bölümündeki Tarih ve Saati kaldırmak istiyorum nasıl yapıcam?
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>
Oldu. :) Teşekkürler.
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
Sadece bunu koyarsan hiçbir şey görüntülemez PHP fonksiyonu. :)
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ş
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
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
Elinize sağlık.