Gönderen Konu: SSI Dersleri Orta Seviye  (Okunma sayısı 1576 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Paragaya

  • Yeni Üye
  • *
  • İleti: 455
  • PR ( Rep ) : 1
  • Cinsiyet: Bay
  • -
  • SMF Sürümü: 2.0
SSI Dersleri Orta Seviye
« : SmfGrup Saati : 27 Şubat Cum 2009, 10:30 »
Anlatacaklarım Blue Dream ' den alıntıdır. Orjinal Konu

SSI Dersleri – Orta Seviye

Efendim, hepiniz SSI Dersleri - Orta Seviye’ye hoş geldiniz. Bu konuda SSI.php ile biraz daha ayrıntılı bilgileri işleyeceğiz. Tabii ki bu konudakiler tamamen sizlerin SSI Dersleri – Başlangıç Seviyesi’ni 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.

Fonksiyonu ihtiyaçlarıma göre nasıl düzenlerim?

SSI’ın esnek yapısı sayesinde fonksiyonları kolayca size uygun hale getirebilirsiniz. Daha iyi anlaşılabilmesi için hemen bir örnek verelim:

Örnek:

Forumunuza girişten önce kullandığınız bir sayfa var. Siz bu sayfada ‘ssi_boardNews’ fonksiyonunu kullanarak belirli bir bölümdeki konuların ilk mesajını görüntülüyorsunuz. Mesela siz bu fonksiyonunun “Duyurular” bölümünüzden –sayfanın uzun olmaması için- sadece 5 konunun ilk mesajlarının ilk 250 karakterinin göstermesini istiyorsunuz.

Belki birçoğunuz bunun imkansız olduğunu düşünüyor, Elmacık ya da HarzeM’in böyle bir kod yazıp yazmadığını araştırıyorsunuz. Ama buna hiç gerek yok, siz de bunu kolayca yapabilirsiniz. Nasıl mı? Hemen bakalım:

Muhtemelen siz fonksiyonları dosyanıza şu şekilde ekliyorsunuz: ‘fonksiyonAdı();’. Ama eğer isteklerinize uygun olmasını istiyorsanız, fonksiyonu çağırırken bazı parametreler girmeniz gerekir.
Eğer bu fonksiyon için bakarsak, aşağıdaki parametreler girilebilir:

Kod: [Seç]
<?php

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

?>


Yapmanız gereken tek şey buraya size uygun değerleri girmek. Yukarıda veridiğimiz örnek için değeler aşağıdaki gibi olmalı:

‘Duyurular’ bölümü IDsi 5 olarak alınmıştır, sadece örnektir.

Kod: [Seç]
<?php

ssi_boardNews
(55null250'echo');

?>

$board = 5 – Mesajların alınmasını istediğiniz bölümün IDsi
$limit = 5 – Kaç tane mesajın gösterileceği [En son gönderilen 5 mesajı alır.]
$start = null – Kaçıncı mesajdan itibaren alınmaya başlanacağı [Fazla önemli değil, anlamak için kafa yormayın, null olarak bırakabilirsiniz.]
$length = 250 – Mesajın kaç karakterinin gösterileceği.
$output_method = ‘echo’ – Gösterim şekli [Bu şekilde bırakabilirsiniz.]

Bu kodu sayfanıza eklediğinizde mesajlar örnekteki gibi gösterilecektir.

‘SSI.php’deki fonksiyonların birçoğu bu şekilde ayarlanabilen parametreler içermektedir, böylece kolaylıkla ihtiyaçlarınıza göre düzenleyebilirsiniz. Üstelik ‘SSI.php’de herhangi bir değişiklik yapmanız gerekmez.

Bir fonksiyonunun yapısı nasıldır?

Lütfen bu kısmı atlamayın. İleride göreceğimiz konular için temel oluşturmaktadır.

‘SSI.php’de fonksiyonların yapısı aşağıdaki gibidir:

Tamamını anlamayamazsanız üzülmeyiniz, bu bir Orta Seviye dersi.
1)   Fonksiyon adlandırılır ve açılır
2)   Veritabanına bağlanılır
3)   Fonksiyon için gerekli olan bilgiler veritabanından alınır
4)   Alınan veriler değişkenlerin ve dizilerin içine yerleştirilir
5)   Bilgiler görüntülenir

Bir fonksiyonun sadece belirli bir kısmını nasıl kullanabilirim? Fonksiyonunun bilgileri istediğim şekilde göstermesini nasıl sağlarım?

Bu birçok kişinin takıldığı ve çok ilginç, uzun ve işlem hacminden öteye geçmeyen çözümler bulduğu bir soru. Bunu ‘SSI.php’de herhangi bir değişiklik yapmadan kolayca yapabilirsiniz. Yukarıdaki örnekte kullandığımız fonksiyonu tekrar ele alalım:

Örnek:

Giriş sayfanızda ‘Duyurular’ bölümünde açılan son 5 konunun ilk mesajlarını göstermek istiyorsunuz ve bunun için ‘ssi_boardNews’ fonksiyonunu kullanacaksınız. Ancak bu fonksiyonun mesaj ikonu ve mesajın gönderilme tarihi gibi bazı ayrıntıları göstermesini istemiyorsunuz. Sizin ihtiyacınız olan sadece mesajın başlığı ve içeriği.

Fonksiyonun yapısını öğrendiğinize göre, istediğinizi kolayca yapabilirsiniz. Bilgilerin görüntülenmesi aşağıdaki kodlar ile yapılıyor:

Kod: [Seç]
  foreach ($return as $news)
   {
      echo '
         <table border="0" width="100%" align="center" class="ssi_table">
            <tr>
               <td>', $news['icon'], ' <b>', $news['subject'], '</b><span class="smaller"><br />', $news['time'], ' ', $txt[525], ' ', $news['poster']['link'], '<br /><br /></span></td>
            </tr>
            <tr>
               <td>', $news['body'], '<br /><br /></td>
            </tr>
            <tr>
               <td>', $news['link'], ' | ', $news['new_comment'], '</td>
            </tr>
         </table>
         <br />';

Kodların ilk kısmındaki ‘foreach ($return as $news)’ kodu, bilgilerin bulunduğu $return dizisindeki her bilgi için parantezlerin arasındaki kodun çalıştırılmasını sağlar.

Bu parantezlerin arasını incelediğimizde bize lazım olan şeylerin (konu başlığı -$news['subject']- ve mesaj içeriği -$news['body']-) dışındakileri sildiğimizde istediğimiz görüntüyü elde edebileceğimizi görüyoruz. Önceki örnekte olduğu gibi 5 mesajı, 5 IDli ‘Duyurular’ bölümünden alacak ve mesajların sadece ilk 250 karakterini görüntüleceğiz. [$output_method = Görüntülenme şekli ‘array’ olarak değişti.]

Kod: [Seç]
<?php

   $array 
ssi_boardNews(55null250'array');

   foreach (
$array as $news)
   {
      echo 
'
         <table border="0" width="100%" align="center" class="ssi_table">
            <tr>
               <td><b>'
$news['subject'], '</b></td>
            </tr>
            <tr>
               <td>'
$news['body'], '<br /><br /></td>
            </tr>
         </table>
         <br />'
;

      if (!
$news['is_last'])
         echo 
'
         <hr width="100%" />
         <br />'
;
   }

?>


Kodlarda öncelikle fonksiyonunun kullandığı bilgileri $array dizisine aktarırız. Ardından da ‘foreach’ döngüsünü kullanarak bilgileri görüntüleriz.

Bu kodlar bize sadece konunun başlığını ve mesajın içeriğini gösterecektir. Ayrıca kodlara ‘<br />’ ekleyerek ya da kodlardan bu kodu silerek aralıkları büyütüp küçültebilirsiniz.

Birçok fonksiyon bu şekilde çalışır.

Böylece SSI Dersleri – Orta Seviye’yi de burada noktaladık. Şimdi de SSI Dersleri – İleri 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.

Orjinal Konu Advanced SSI FAQ, Tomer Tarafından yazılmıştır ;)

Çevrimdışı cartel24

  • Yeni Üye
  • *
  • İleti: 12
  • PR ( Rep ) : 0
  • Kendinize İmza Seciniz
Ynt: SSI Dersleri Orta Seviye
« Yanıtla #1 : SmfGrup Saati : 17 Şubat Çrş 2010, 04:30 »
merhabalar dersler güzel... Ben forumdan ayrı bir sayfa yaptım ve anlattığınız gibi işlemleri uyguladım bilgileri çektim herşey normal görünüyor fakat sitemin bir köşesinde "<?php ssi_recentTopics(); ?>" fonksiyonunu kullandığım zaman çok geniş olduğu için genişliyor ve sitedeki tüm tabloları bozuyor... ben bu fonksiyonun başındaki başlık adı tarih yazan kişi v.s. bunların hepsini kaldırım sadece açılan konunun başlığını göstermek istiyorum nasıl yapabilirim ?