News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

SSI Dersleri - İleri Seviye

Started by [SiNaN], May 21, 2008, 10:34:43 AM

Previous topic - Next topic

[SiNaN]

SSI Dersleri – İleri Seviye

SSI Dersleri - İleri Seviye'ye hoş geldiniz. Bu konuda 'SSI.php'nin birkaç bilinmeyen yönünü göstermeye çalışacağız. Takdir edersiniz ki bu konudakiler tamamen sizlerin SSI Dersleri – Orta Seviye'yi okuduğunuzu varsayarak yazılmıştır. 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.


Herhangi bir üyenin, belirlediğim bir gruba dahil olup olmadığını nasıl kontrol edebilirim?

Daha önce bir kullanıcının üye, ziyaretçi veya yönetici olup olmadığını nasıl kontrol edebileceğinizi göstermiştik. Şimdi de herhangi bir grup için bunu nasıl yapabileceğinize bakalım:

Örnek:

Forumdan bağımsız şekilde çalışan sitenizde sadece forumda belirli bir gruba dahil üyelerin görmesini istediğiniz bir sayfa var. Bunu kontrol edecek, eğer üye istediğiniz gruba dahil değilse hata mesajı görüntülenmesini sağlayacaksınız.

Öncelikle grubun IDsini öğrenmemiz gerekmekte. Yönetim Panelinizde "Üye Grupları" bölümünde istediğiniz üye grubunun yanındaki "Değiştir" bağlantısına tıklayın. Yönlendiğiniz sayfanın adresine baktığınızda buna benzer bir şey görüyor olmalısınız: 'action=membergroups;sa=edit;id=#'. # sembolü yerinde gördüğünüz numara üye grubunun IDsi olacaktır.

Üye grubunun IDsini öğrendiğinize göre kullanacağımız kodu yazalım:

Örnek için üye grubu IDsi 9 olarak alınmıştır, sadece bu örnek için geçerlidir.

<?php

if (in_array(9$user_info['groups']))
   {
       echo 
'Evet, ben 9 numaralı gruptayım. :)';
   }
else
   {
       echo 
'Erişim engellendi! Bu sayfayı görmeye yetkiniz bulunmuyor.';
   }

?>


Böylece bu sayfayı sadece özel üye grubunuzun görebilmesini sağladınız. Bundan sonrası sizin hayal gücünüz ve kodlama bilginize kalmış.

SSI hakkında öğrenmediğimiz bir şey kaldı mı?

Sorduğunuz iyi oldu, çünkü son olarak da SSI'ın bazı ileri düzey ayarlarını inceleyeceğiz. Değiştirebileceğiniz ayalar:

$ssi_gzip = 'true/false';
$ssi_ban = 'true/false';
$ssi_theme = 'themeID#';
$ssi_layers = array('main');

Bu kodları 'SSI.php'yi sayfamıza dahil etmeden, yani 'require...' kodundan önce ekliyoruz.

Örnek:

<?php

$ssi_gzip 
false;
$ssi_ban true;
$ssi_theme '2';
$ssi_layers = array('main');

ob_start();

require(
"/SSI.php");

?>


Hemen bu ayarların ne işe yaradığına bakalım:

$ssi_gzip = false; gzip sıkıştırma özelliğinin kapatıp açabilmeyi sağlar
$ssi_ban = true; forumda yasaklanan üyenin bu sayfada erişiminin engellenmesini sağlar
$ssi_theme = '2'; sayfanın IDsini girdiğiniz tema ile gösterilmesini sağlar [gösterilmesi için $ssi_layers ayarlanmalı]
$ssi_layers = array('main'); main_above ve main_below alt temalarının yüklenmesini sağlar
ob_start(); hata almamak için eklenir
require("/SSI.php"); ayarlardan sonra ama sayfanızın içeriğinden önce olması gerekir

Eğer anlamakta zorlanırsanız üzülmeyiniz, neticede bu İleri Düzey bir ders. Birkaç deneme ile daha kolay anlayabilirsiniz.

Bu cümlelerle de hem İleri Düzey dersimizin, hem de SSI Dersleri üçlememizin sonuna geldik. Belki ileride bir sonraki düzeye geçilebilir, şu an için 3 seviye olarak kalacak.

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 Expert SSI FAQ, Tomer tarafından yazılmıştır.
Former SMF Core Developer | My Mods | SimplePortal

yakup efe

$ssi_gzip = 'true/false';
$ssi_ban = 'true/false';
$ssi_theme = 'themeID#';
$ssi_layers = array('main');


Bunları aynen SSI_php'ye anlatıldığı yükledim. fakat

Parse error: syntax error, unexpected T_VARIABLE in /home/ygonul/public_html/forums/SSI.php on line 1


Bu uyarıyı aldım. sizce neden olabilir?

Bunu eklemeden önce anasayfamdan ssi-php ile bir kaç tane özellik çalıştırıyorum.

Bu arada bu konu hakkında emeği geçenlerden Allah razı olsun.

[SiNaN]

PHP tagları arasına eklediğinize emin misiniz?
Former SMF Core Developer | My Mods | SimplePortal

madturk41

Biz bu üyenin avatarını portalda nasıl gösterebiliriz ?

[SiNaN]

$context['user']['avatar']['image'] kodu ile üyenin avatarını gösterebilirsiniz.

Ayrıca loadMemberContext() fonksiyonu ile istediğiniz üyenin bütün bilgilerini bir dizinin içerisine alabilirsiniz.
Former SMF Core Developer | My Mods | SimplePortal

yakup efe

SSI_php'de en baştaki "<?php" kodundan hemen sonra ekledim..

[SiNaN]

Onlar ayarların ne şekilde ayarlanabileceğini gösteriyor. Düzenleyip koymalısınız. Örnek:

$ssi_gzip = false;
$ssi_ban = true;
$ssi_theme = '2';
$ssi_layers = array('main');
Former SMF Core Developer | My Mods | SimplePortal

TECHKENDO

Sinan ellerine sağlık çok işime yaradı, ne kadar php kodlamadan anlasakta, smf nin çekirdek kodlarını bilmek lazım.

Saygılarımla....

Hoochie Coochie Man

#8
Ana Sayfaya çağırdığımız haberleri "özet" şeklinde kısa kesip.. "haberin devamı" linki ekleyebilir miyiz?

ve de ana sayfaya çağırdığımız haberlerdeki resimlei göstermemek..?

Rica etsem.. :-\
İnadına SMF 1.1.X

[SiNaN]

ssi_boardNews($board, $limit, $start, $length, $output_method);

Bu şekilde kullandığınız kodda $length yerine, gösterilecek haberin kaç karakter ile sınırlandırılması gerektiğini yazmalısınız.

Sonuna Haberin Devamı linki eklemek için:

SSI.php

Bul:

$row['body'] .= '...';

Değiştir:

$row['body'] .= '<br /><a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0">Haberin devamı...</a>';

Resimler için biraz uğraşmam gerekiyor.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

#10
Bu kadarı bile kafi, uğraşmana gerek yok Sinancım, teşekkürler..




Edit: bu $length olayı biraz garip değilmi.. şimdi atıyorum limiti 500 koydum diyelim..

500. karakterde kesiliyo yazı.. ama bu şekilde kesiliyo

Ör: 15. Uluslararası İstanbul Caz Festi----(kesildi)

yazının orjinali..

15. Uluslararası İstanbul Caz Festivali kapsamında 15 Temmuz'da Sepetçiler Kasrı'nda gerçekleşecek
İnadına SMF 1.1.X

[SiNaN]

Nasıl kesmesi gerekiyor ki HCM?
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Yani demek istediğim, limiti koyduktan sonra herhangi bir kelimenin ortasına denk geliyor. ve o kelime tam ortadan kesiliyor. Çok abes bir görüntü oluşuyor. Benim bahsettiğim ne bilim, 1 kıta bitimnde noktayı koyduktan sonra falan. ki bu da imkansız. ama neyse ben sorunumu başka bir şekilde hallettim
İnadına SMF 1.1.X

[SiNaN]

İmkansız değil de, biraz zor. Peki, sorununu çözdüysen sorun yok.
Former SMF Core Developer | My Mods | SimplePortal

sazan

Bu "gzip" bende çalışmıyor iniyor ama 0kb bir zip geliyor :) SSI ile alakası varmıdır?

[SiNaN]

Hayır. Sunucunun desteklemesi gerek sanırım.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

#16
Bir sayfada bir çok SSI sorgusu çalıştırmak, o sayfayı ağırlaştırır mı?

Yani 1 sayfada yaklaşık 12 adet sorgu çalışıyor.!!

Edit: neyse sorguları üçe düşürdüm, şimdi hızlı artık :)
İnadına SMF 1.1.X

[SiNaN]

Sorgulara bağlı. boardNews() ve recentPosts biraz ağır olabilir sadece.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Quote from: [SiNaN] on June 19, 2008, 06:52:23 AM
Sorgulara bağlı. boardNews() ve recentPosts biraz ağır olabilir sadece.
Zaten çoğu onlardı, Saolasın..
Bu arada hoşgeldin :) Kitlenecek çok konu var :P
İnadına SMF 1.1.X

[SiNaN]

Hoşbulduk. Farkettim, ısınmaya çalışıyorum şu an hala. :)
Former SMF Core Developer | My Mods | SimplePortal

Advertisement: