News:

Wondering if this will always be free?  See why free is better.

Main Menu

SSI Rehberi

Started by forsakenlad, August 25, 2005, 06:51:20 PM

Previous topic - Next topic

forsakenlad

SSI Rehberi
(Son Güncelleme: 26.12.2007)

Merhaba arkadaşlar sanırım bu yazı SMF için yazılmış ilk Türkçe rehber olacak. Bu rehberde SSI'nın ne olduğunu, ne işe yaradığını ve hepsinden önemlisi SSI'yı ihtiyaçlarınızı karşılayabilecek şekilde nasıl kullanabileceğinizi örnekli bir anlatımla öğrenebileceksiniz. Eğer rehberde bir hata fark eder, anlamadığınız bir yer olur veya herhangi başka bir sorun veya sorununuz olursa bu konuya cevap yazmaktan çekinmeyin.

Bölüm 1: Bilgi




SSI Nedir?

SSI'ın açılımı Server Side Includes'dur. Gerçek SSI'ın kendine ait bir programlama dili vardır ve sunucuda çalıştırılan kullanıcı tarafından kendi sayfalarına çağırılabilen dinamik bilgilere denir. Bizim kullancağımız SSI ise başka bir PHP dosyasında tanımlı fonksiyonlar bütünüdür. Bu fonksiyonları forum'dan değişik bilgileri istediğimiz herhangi bir forum-dışı sayfaya çağırmak için kullanacağız.

Ne İşe Yarar?

SSI'yı kullanarak istediğimiz herhangi bir sayfaya SMF kullanıcı girişi, Forum'dan Son konular/mesajlar, Forum'da en çok mesaj atan kişiler, Forum'da Kimler Online ve daha birçok değişik bilgiyi görüntüleyebileceğiz.

Ne Gerekir?

SSI'yı kullanmak üzere ekstra hiçbir şey'e ihtiyaç yoktur, SMF'nin çalıştığı her ortamda SSI'da çalışabilir.

Kullanırken Çok Zorlanacak mıyım?

Kesinlikle hayır burada uygulayacağımız örnekli anlatım sayesinde copy&paste yapmayı bilen, basit HTML bilgisine sahip herkes SSI kullanrak kolayca sitelerine profosyonel bir görünüm kazandırabilirler.




Bölüm 2: Kullanım




SSI kullanmak için öncelikle ihtiyacımız olan şey, SSI'yı kullanacağımız sayfanın uzantısının PHP olması. Eğer böyle değilse, lütfen ilk olarak uzantıyı PHP yapın. İkinci olaraksa SSI.php'nin sayfada önceden tanımlanması. Bunun için ilk olarak http://forumunuzunadresi/ssi_examples.php (forumunuzunadresi örnektir burayı forum'unuzun yüklü olduğu tam konum ile değiştirin) adresine gidin ve aşağıda kırmızı ile işaretlenmiş satırı kopyalayın:



Ve SSI verilerinin gözükmesini istediğiniz sayfanın 1'nci satırına, <html> tag'inden önce gelecek şekilde yapıştırın, örn:


<?php require("/home/forsaken/public_html/forum/SSI.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Örnek Sayfa</title>
</head>
<body>
İçerik
</body>
</html>


Tamam artık bu sayfada gözükmesini istediğimiz herhangi bir yerde SSI verilerini gösterebiliriz, bir deneme yapalım mesela, <body></body> tag'lerinin arasına SSI verisinin gözükmesini istediğiniz yere saşğıdaki kodu girin:

<?php ssi_topPoster(); ?>

Bu kod forum'unuzda en çok mesaj atmış kişiyi gösterecektir. Bir dahaki bölümde örnekli anlatımlarıyla tek tek her SSI fonksiyonun ne işe yaradığını ve kullanımını öğreneceksiniz




Bölüm 3: Örnekler




Son Konular - ssi_recentTopics(); ve Son Mesajlar - ssi_recentPosts();

(Son Konular için geçerli kodların hepsi Son Mesajlar içinde geçerlidir, yapmanız gereken sadece ssi_recentTopics()'i, ssi_recentPosts(); ile değiştirmektir)

İsmindende anlaşılacağı gibi bu fonksiyon forumunuzdaki son konuları, bulundukları kategori, yazarları ve açılış zamanları ile birlikte, sayfanızın istediğiniz bir yerinde gösterir. Bu SSI fonksiyonunu direk ssi_recentTopics(); olarak girdiğinizde karşınıza ssi_examples.php'dede görebileceğiniz varsayılan özellikleriyle çıkar. Haydi bu fonksiyonu biraz özelleştirelim:

<?php
     ssi_recentTopics
($num_recent 8$exclude_boards null$output_method 'echo');
?>


Bu girdi yine default özellikleriyle gösterecektir, burada $num_recent'i değiştirirerek gösterilmesini istediğiniz son konu sayısını ayarlayabilir $exclude_boards = null'ı $exclude_boards = array() yaparak, parantezler içine yazacağınız Board Id'lerle o bölümlerden son konuların gösterilmesini engelleyebilirsiniz, örneğin benim forum'umda 1 duyurular ve 4 test bölümü (bunlardan gelen son konuları göstermek istemiyorum), ve ayrıca son 5 mesajı göstermek istiyorum, bunun için yazmam gereken kod:

<?php
     ssi_recentTopics
($num_recent 5$exclude_boards = array(1,4), $output_method 'echo');
?>


Bu kadar basit, artık şık bir son konular bölümüne sahibim :)

Anket - ssi_showPoll();

ssi_showPoll(); fonksiyonu forum'dan seçeceğimiz bir anketi php tabanlı herhangi bir sayfada görüntülememize olanak sağlamaktadır. Kullanımı aşağıdaki şekildedir:

<?php
     ssi_showPoll
($topic null$output_method 'echo')
?>


Burada null adlı yere göstermek istediğimiz anketin konu id'sini girdiğimizde, istenilen anket devamlı olarak görüntülenecektir. Konu id'si, bulunduğunuz konunun URL'sine bakılarak öğrenilebilir, örneğin bu konunun id'si:

http://www.simplemachines.org/community/index.php?topic=47018.0

47018 dir. Eğer bu konu ile bir anket ilişkilendirilmiş olsaydı, bu anketi görüntülemek için kullanmamız gereken kod aşağıdaki gibi olurdu:

<?php
     ssi_showPoll
($topic 47018$output_method 'echo')
?>


Son Anket - ssi_recentPoll(); ve En Popüler Anket - ssi_topPoll();

Bu fonksiyonlarımızın ortak özelliği forumdan herhangi bir PHP sayfaya anket çağırabilmemize olanak sağlamalarıdır. ssi_recentPoll(); adlı fonksiyon, forum'a gönderilmiş en son anketi görüntülerken; ssi_topPoll(); fonksiyonu şimdiye kadar tüm kullanıcılar tarafından en çok oy atılmış anketi görüntülememize olanak sağlamaktadır.

Son Anket - ssi_recentPoll(); un örnek kullanımı:

<?php ssi_recentPoll(); ?>

En Popüler Anket - ssi_topPoll(); un örnek kullanımı:

<?php ssi_topPoll(); ?>





Devam Edecek...
Eren "forsakenlad" Yaşarkurt
SMF Friend & Former Team Member

T@LH@

Evet devam edilirse cok hos olur ben diğer forumumda joomla köprü kullanıyorum lakin joomla köprünün acığı var ve pek sağlıklı değil eğer devam edilirse bu sekilde köprüsüz bir portal kurmayı düşünüyorum...


SaliheziN

ben şimdi basit bir ana sayfa kurmak istiyorum.. ve ssi ile verileri o sayfaya çağırmak istiyorum...

şimdi anlamadığım, ssi.php diye bir syfa aslında smf de varmı yoksa biz mi yaratacağız.

ben index.php diye bir anasyafa yapıp onun başına mı bu <?php require("/home/forsaken/public_html/forum/SSI.php"); ?> codu ekleyeceğim...

bunu benim için biraz daha açıklarsanız sevinirim..

gerçi açık anlatılmış gibi duruyor ama ben pek anlamadım  :(

Dead

Hangi sayfada gözükmesini istiyorsan orada kullanacaksın..  ;)


İMoTeP_1

hehe bende yapıodum nie olmuo bu diodum yaf
<?php require("/home/forsaken/public_html/forum/SSI.php"); ?> bu nu atmayı unutmuşum :D

Meric

ya ben yaptimda style dosyasini ayarlayamadim baya bir kasti butun gun uzerindeyim. yaziyi ufaltamadim ne hikmetse.. lütfen yardimci olurmusunuz? ana sayfamdaki style kullanmasini istiyorum yoksa sayfanin duzeni baya bir bozuluyor.

Alhan

anlatım için teşekkürler. fakat ben ssi kodunu joomla template imde nereye eklediysem olmadı.
Acaba ssi inin ilgili dizinini temamda nereye eklemem gerekiyor söylermisiniz?

Tema indexim aşağıdaki gibi başlayıp devam ediyor...

<?php
defined
'_VALID_MOS' ) or die( 'Restricted access' );
$iso explode'='_ISO );
echo 
'<?xml version="1.0" encoding="'$iso[1] .'"?' .'>';

##### Begin Template Configurations #####
# change the width of the template
$width "1"// 1: 17"; 0: 15"
# enable users option - ONLY ENABLE IF $WIDTH IS SET TO 1
$tool "1"// 1: Enable; 0: Disable
##### End Template Configurations #####

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<?php mosShowHead(); ?>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO?>" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/template_css.css" rel="stylesheet" type="text/css"/>
<?php if (!$width) { ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="stylesheet" type="text/css"/>
<?php 
if (
$tool) { ?>

<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="alternate stylesheet" type="text/css" title="wide"/>
<?php 
if ( 
$my->id ) { initEditor(); } 
?>

<script language="javascript" type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/ja_script.js"></script>
<script language="javascript" type="text/javascript">
preloadimages("<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-on.gif","<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-off.gif");
</script>
</head>
<body id="bd" onload="preloadimages()">



shalamar


<?php
defined
'_VALID_MOS' ) or die( 'Restricted access' );
$iso explode'='_ISO );
echo 
'<?xml version="1.0" encoding="'$iso[1] .'"?' .'>';
BURAYA <--


BURAYA yazdığım yere,
www.siteadresiniz.com/forumklasörünüz/ssi_examples.php adresinize girdiğinizde 4-5. satır civarında göreceğiniz
<?php require("/klasör/klasör/klasör/yineklasör/forumklasörü/SSI.php"); ?>
benzeri satırdaki, sadece renklendirdiğim tırnak içindeki yeri yazınız.

Bu durumda olması gerekiyor.

Sevgiler

Quote from: Alhan on September 14, 2006, 02:41:37 PM
anlatım için teşekkürler. fakat ben ssi kodunu joomla template imde nereye eklediysem olmadı.
Acaba ssi inin ilgili dizinini temamda nereye eklemem gerekiyor söylermisiniz?

Tema indexim aşağıdaki gibi başlayıp devam ediyor...

<?php
defined
'_VALID_MOS' ) or die( 'Restricted access' );
$iso explode'='_ISO );
echo 
'<?xml version="1.0" encoding="'$iso[1] .'"?' .'>';

##### Begin Template Configurations #####
# change the width of the template
$width "1"// 1: 17"; 0: 15"
# enable users option - ONLY ENABLE IF $WIDTH IS SET TO 1
$tool "1"// 1: Enable; 0: Disable
##### End Template Configurations #####

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<?php mosShowHead(); ?>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO?>" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/template_css.css" rel="stylesheet" type="text/css"/>
<?php if (!$width) { ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="stylesheet" type="text/css"/>
<?php 
if (
$tool) { ?>

<link href="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/css/wide_layout.css" rel="alternate stylesheet" type="text/css" title="wide"/>
<?php 
if ( 
$my->id ) { initEditor(); } 
?>

<script language="javascript" type="text/javascript" src="<?php echo $mosConfig_live_site;?>/templates/ja_hadar/ja_script.js"></script>
<script language="javascript" type="text/javascript">
preloadimages("<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-on.gif","<?php echo $mosConfig_live_site;?>/templates/ja_hadar/images/arrow-off.gif");
</script>
</head>
<body id="bd" onload="preloadimages()">




shalamar

#9
Quote$exclude_boards = null'ı $exclude_boards = array() yaparak, parantezler içine yazacağınız Board Id'lerle o bölümlerden son konuların gösterilmesini engelleyebilirsiniz, örneğin benim forum'umda 1 duyurular ve 4 test bölümü (bunlardan gelen son konuları göstermek istemiyorum), ve ayrıca son 5 mesajı göstermek istiyorum

Peki sadece 1 ve 4 ID numaralı boardlardaki konuları göstermek istersek, bunların dışındaki tüm IDleri mi yazmamız lazım (tabi ileride yeni board eklendiğinde unutmayıp buraya da ID sini eklemek gerekecek) ya da başka kolay bir yol var mıdır?

Sevgiler...

badman

Biz uzaktan calıstıramazmıyız ? yani bizimkisi baska host smf nin baska host bu şekilde kodlar calısmazmı ?
LİNUX HOSTİNG'DE OLAYYY!!

  • 10 gb web alanı
  • 50 gb trafik
  • Sınırsız ftp,veritabanı,email hesabı
  • cPanel Hosting Yönetim Paneli
  • Haftalık yedekleme
  • GD Desteği
  • ionCube Loader
  • ve birçok özelliker....
YILLIK SADECE 100 YTL KAMPANYA BİTMEDEN YETİŞİN!

İletişim&msn : [email protected]

badman

neredeyse bir haftadan fazla oldu hala cevap yok
LİNUX HOSTİNG'DE OLAYYY!!

  • 10 gb web alanı
  • 50 gb trafik
  • Sınırsız ftp,veritabanı,email hesabı
  • cPanel Hosting Yönetim Paneli
  • Haftalık yedekleme
  • GD Desteği
  • ionCube Loader
  • ve birçok özelliker....
YILLIK SADECE 100 YTL KAMPANYA BİTMEDEN YETİŞİN!

İletişim&msn : [email protected]


GladYatoR

Gerçektende benim için çok güzel bir kaynak oldu buradaki anlatımla çok güzel bir board yapmak bile mümkün teşekkür ediyorum elinize sağlık

fedai

Teşekkürler devamını sasabırsızlıkla bekliyorum

man_blood

SSI.php dosyasının nerede oldugunu tam olarak nerden ögreniriz ?
birde
<?php
ssi_recentTopics($num_recent = 5, $exclude_boards = array(1,4), $output_method = 'echo');
?>
bu komutudamı index.php ye koyucaz
joomlanın
www.sinavrehberim.net
www.sinavrehberim.net/Forum

Huzeyfe

Teşekkürler çok iyi
Bazı zamanlar vardır dostluğun, sevginin göstergesidir. Yürek yüreğe değer. Sadık dost EBUBEKİR mağarada yılan deliğine ayağını kapattığında, miracı duyunca " EĞER O SÖYLÜYORSA DOĞRUDUR" dediğinde yüreği Allah dostunun yüreğine dokunmuştur.

kahramanats

KoLay gELsin BiLgiLendirmeniz için teşekkür ederim bu özellikle alakalı acıkLama yaptığınız için.Benim merak ettiğim Mu özeLLikLeri kötü amacLı kuLlandıkLarında bana zarar verme şansları varmı.BunLarı Kullanılarak asLında çok hoş işLemLer oLuyo ama biLiyorsunuzki bu farkedenLer kötü amacLı kuLLanmak için hemen işLemLerine başLıyorlar.biLgi veririseniz Sevinirim TeşekkürLer...

Gr@fiker

hayır bundan hiçbir zarar veremezler çünkü sadece smf nin kodlarını kullanıyorsun başka bişe yok bunda
İ dont have a msn

kahramanats


Advertisement: