Advertisement:

Author Topic: SSI Dersleri - Orta Seviye  (Read 72708 times)

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
SSI Dersleri - Orta Seviye
« on: May 21, 2008, 10:31:21 AM »
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:

Code: [Select]
<?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.

Code: [Select]
<?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:

Code: [Select]
   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 />';

      if (!$news['is_last'])
         echo '
         <hr width="100%" />
         <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.]

Code: [Select]
<?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.

Orijinal konu Advanced SSI FAQ, Tomer tarafından yazılmıştır.
Former SMF Core Developer | My Mods | SimplePortal

Offline Ni©holąś™

  • Jr. Member
  • **
  • Posts: 226
  • Gender: Male
    • Sagopa Kajmer ve Kuvvetmira Fan Sitesi
Re: SSI Dersleri - Orta Seviye
« Reply #1 on: June 02, 2008, 12:57:03 PM »
eline sağlık Sinan..

sajT®

  • Guest
Re: SSI Dersleri - Orta Seviye
« Reply #2 on: June 10, 2008, 02:40:31 PM »
Güzel Çalışma Olmus Teşekkürler

Offline mavorerma

  • Semi-Newbie
  • *
  • Posts: 48
Re: SSI Dersleri - Orta Seviye
« Reply #3 on: June 14, 2008, 06:58:48 AM »
ssi_boardNews özelliğinde sadece sadece belirlenen bir forumdan mesajları çekebiliyor . Ben tüm forumdan çekmesini istiyorum .Ne yapmam gerekiyor .

Offline mavorerma

  • Semi-Newbie
  • *
  • Posts: 48
Re: SSI Dersleri - Orta Seviye
« Reply #4 on: June 18, 2008, 04:25:28 PM »
Yok mu cevap verecek bi arkadaş ?

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
Re: SSI Dersleri - Orta Seviye
« Reply #5 on: June 19, 2008, 07:00:24 AM »
Bunun için boardNews fonksiyonunda değişiklik yapmamız gerekecek. Bu fonksiyonda:

Bul ve sil:

Code: [Select]
WHERE ID_BOARD = $board
Former SMF Core Developer | My Mods | SimplePortal

Offline #Serseri

  • SMF Hero
  • ******
  • Posts: 1,701
  • Gender: Male
    • istanbulgezintisi on Facebook
    • @FerhatKocabaL on Twitter
Re: SSI Dersleri - Orta Seviye
« Reply #6 on: June 26, 2008, 08:53:43 AM »
Sinan ben şöyle birşey yapmak istiyorum. Bölümlerin ilk değilde. Bütün bölümlerin veya istediğim bir kaç bölümün Son mesajlarını almak istiyorum.

Sanırım bir kaç bölüm seçmek için  $board yazan yeri 2,5,10 olarak secebiliyoruz ? veya hepsini nasıl secerim? Birde ilk değilde son mesajlar olarak nasıl ayarlarım ?

Edit:Birinin hemen üstümde cevabı varmış :) Son mesajları hala öğrenemedim :(
« Last Edit: June 26, 2008, 12:47:10 PM by S e r s e r i »

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
Re: SSI Dersleri - Orta Seviye
« Reply #7 on: June 26, 2008, 01:09:51 PM »
Ben denemedim ama şu fonksiyonu kullanmayı dener misiniz?

Code: [Select]
// Show the latest news, with a template... by board.
function ssi_boardNews($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')
{
global $scripturl, $db_prefix, $txt, $settings, $modSettings, $context;
global $func;

loadLanguage('Stats');

// Must be integers....
if ($limit === null)
$limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 5;
else
$limit = (int) $limit;

if ($start === null)
$start = isset($_GET['start']) ? (int) $_GET['start'] : 0;
else
$start = (int) $start;

if ($board !== null)
$board = (int) $board;
elseif (isset($_GET['board']))
$board = (int) $_GET['board'];

if ($length === null)
$length = isset($_GET['length']) ? (int) $_GET['length'] : 0;
else
$length = (int) $length;

$limit = max(0, $limit);
$start = max(0, $start);

// Make sure guests can see this board.
$request = db_query("
SELECT ID_BOARD
FROM {$db_prefix}boards
WHERE " . ($board === null ? '' : "ID_BOARD = $board
AND ") . "FIND_IN_SET(-1, memberGroups)
LIMIT 1", __FILE__, __LINE__);
if (mysql_num_rows($request) == 0)
{
if ($output_method == 'echo')
die($txt['smf_news_error2']);
else
return array();
}
list ($board) = mysql_fetch_row($request);
mysql_free_result($request);

// Load the message icons - the usual suspects.
$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
$icon_sources = array();
foreach ($stable_icons as $icon)
$icon_sources[$icon] = 'images_url';

// Find the post ids.
$request = db_query("
SELECT ID_LAST_MSG
FROM {$db_prefix}topics
WHERE ID_BOARD = $board
ORDER BY ID_LAST_MSG DESC
LIMIT $start, $limit", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
$posts[] = $row['ID_LAST_MSG'];
mysql_free_result($request);

if (empty($posts))
return array();

// Find the posts.
$request = db_query("
SELECT
m.icon, m.subject, m.body, IFNULL(mem.realName, m.posterName) AS posterName, m.posterTime,
t.numReplies, t.ID_TOPIC, m.ID_MEMBER, m.smileysEnabled, m.ID_MSG, t.locked
FROM ({$db_prefix}topics AS t, {$db_prefix}messages AS m)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE t.ID_LAST_MSG IN (" . implode(', ', $posts) . ")
AND m.ID_MSG = t.ID_LAST_MSG
ORDER BY t.ID_LAST_MSG DESC
LIMIT " . count($posts), __FILE__, __LINE__);
$return = array();
while ($row = mysql_fetch_assoc($request))
{
// If we want to limit the length of the post.
if (!empty($length) && $func['strlen']($row['body']) > $length)
{
$row['body'] = $func['substr']($row['body'], 0, $length);

// The first space or line break. (<br />, etc.)
$cutoff = max(strrpos($row['body'], ' '), strrpos($row['body'], '<'));

if ($cutoff !== false)
$row['body'] = $func['substr']($row['body'], 0, $cutoff);
$row['body'] .= '...';
}

$row['body'] = parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']);

// Check that this message icon is there...
if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';

censorText($row['subject']);
censorText($row['body']);

$return[] = array(
'id' => $row['ID_TOPIC'],
'message_id' => $row['ID_MSG'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
'subject' => $row['subject'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'body' => $row['body'],
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0">' . $row['numReplies'] . ' ' . ($row['numReplies'] == 1 ? $txt['smf_news_1'] : $txt['smf_news_2']) . '</a>',
'replies' => $row['numReplies'],
'comment_href' => !empty($row['locked']) ? '' : $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . ';num_replies=' . $row['numReplies'],
'comment_link' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . ';num_replies=' . $row['numReplies'] . '">' . $txt['smf_news_3'] . '</a>',
'new_comment' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . '">' . $txt['smf_news_3'] . '</a>',
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => !empty($row['ID_MEMBER']) ? $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] : '',
'link' => !empty($row['ID_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>' : $row['posterName']
),
'locked' => !empty($row['locked']),
'is_last' => false
);
}
mysql_free_result($request);

if (empty($return))
return $return;

$return[count($return) - 1]['is_last'] = true;

if ($output_method != 'echo')
return $return;

foreach ($return as $news)
{
echo '
<div>
<a href="', $news['href'], '">', $news['icon'], '</a> <b>', $news['subject'], '</b>
<div class="smaller">', $news['time'], ' ', $txt[525], ' ', $news['poster']['link'], '</div>

<div class="post" style="padding: 2ex 0;">', $news['body'], '</div>

', $news['link'], $news['locked'] ? '' : ' | ' . $news['comment_link'], '
</div>';

if (!$news['is_last'])
echo '
<hr style="margin: 2ex 0;" width="100%" />';
}
}
Former SMF Core Developer | My Mods | SimplePortal

Offline #Serseri

  • SMF Hero
  • ******
  • Posts: 1,701
  • Gender: Male
    • istanbulgezintisi on Facebook
    • @FerhatKocabaL on Twitter
Re: SSI Dersleri - Orta Seviye
« Reply #8 on: June 26, 2008, 01:20:03 PM »
Sinan bu kodlar sayfaya yapıştırılacak kodlarsa sonuc bu

Parse error: syntax error, unexpected '<' in Dizin_asjdhakjsajsd/ferry.php on line 3
« Last Edit: June 26, 2008, 01:29:25 PM by S e r s e r i »

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
Re: SSI Dersleri - Orta Seviye
« Reply #9 on: June 26, 2008, 01:28:16 PM »
Değil. Bunlar kodlar sizin yeni ssi_boardNews fonksiyonunuzun.

İsterseniz bunu SSI.php'nin en sonuna ekleyin ve kodlarda

Bul:

Code: [Select]
function ssi_boardNews($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')
Değiştir:

Code: [Select]
function ssi_boardNewsLast($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')
Böylece normal fonksiyona dokunmamış oluruz. ssi_boardNewsLast() şeklinde çağırmalısınız.
Former SMF Core Developer | My Mods | SimplePortal

Offline #Serseri

  • SMF Hero
  • ******
  • Posts: 1,701
  • Gender: Male
    • istanbulgezintisi on Facebook
    • @FerhatKocabaL on Twitter
Re: SSI Dersleri - Orta Seviye
« Reply #10 on: June 26, 2008, 01:46:03 PM »
Sinan oldu fakat özür dileyerek söylüyorum yanlışlıkla mesaj demişim :( Benim istediğim konuydu. Ama seni uğrastırmak istemem kendim bulacağım inşallah. Verdiğin kodlar oldu işine yarayan kullanabilir. Teşekkürler :)

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
Re: SSI Dersleri - Orta Seviye
« Reply #11 on: June 26, 2008, 02:00:05 PM »
Konu nasıl oluyor? Benzer birşey üzerinde uğraşıyorum. (20 dolara :P)
Former SMF Core Developer | My Mods | SimplePortal

Offline #Serseri

  • SMF Hero
  • ******
  • Posts: 1,701
  • Gender: Male
    • istanbulgezintisi on Facebook
    • @FerhatKocabaL on Twitter
Re: SSI Dersleri - Orta Seviye
« Reply #12 on: June 26, 2008, 02:26:01 PM »
Konu nasıl oluyor? Benzer birşey üzerinde uğraşıyorum. (20 dolara :P)

Foruma açılan son bilmem kaç konunun anasayfada cıkmasını istiyorum ama 20 doları ben hayatımda bi arada görmedim acıkcası images googleden aramayı düşünüyorum doları ama bakacak cesaret yok :)

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
Re: SSI Dersleri - Orta Seviye
« Reply #13 on: June 26, 2008, 02:37:04 PM »
Seninki kolay. :) 20 dolara yaptığım recentTopics'in gelişmiş hali gibi.

recentTopics'de olduğu gibi en son güncellenen konuları alıyor ve onların son 3 mesajını gösteriyor.

SSI.php'nin sonuna ekle:

Code: [Select]
function ssi_boardTopics($limit = null, $length = null, $output_method = 'echo')
{
global $scripturl, $db_prefix, $txt, $settings, $modSettings, $context, $user_info;
global $func;

loadLanguage('Stats');

// Must be integers....
if ($limit === null)
$limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 5;
else
$limit = (int) $limit;

if ($length === null)
$length = isset($_GET['length']) ? (int) $_GET['length'] : 0;
else
$length = (int) $length;

$limit = max(0, $limit);
$start = max(0, $start);

// Load the message icons - the usual suspects.
$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
$icon_sources = array();
foreach ($stable_icons as $icon)
$icon_sources[$icon] = 'images_url';

// Find the post ids.
$request = db_query("
SELECT b.ID_FIRST_MSG
FROM {$db_prefix}topics as b
WHERE $user_info[query_see_board]
ORDER BY b.ID_TOPIC DESC
LIMIT $limit", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
$posts[] = $row['ID_FIRST_MSG'];
mysql_free_result($request);

if (empty($posts))
return array();

// Find the posts.
$request = db_query("
SELECT
m.icon, m.subject, m.body, IFNULL(mem.realName, m.posterName) AS posterName, m.posterTime,
t.numReplies, t.ID_TOPIC, m.ID_MEMBER, m.smileysEnabled, m.ID_MSG, t.locked
FROM ({$db_prefix}topics AS t, {$db_prefix}messages AS m)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE t.ID_FIRST_MSG IN (" . implode(', ', $posts) . ")
AND m.ID_MSG = t.ID_FIRST_MSG
ORDER BY t.ID_FIRST_MSG DESC
LIMIT " . count($posts), __FILE__, __LINE__);
$return = array();
while ($row = mysql_fetch_assoc($request))
{
// If we want to limit the length of the post.
if (!empty($length) && $func['strlen']($row['body']) > $length)
{
$row['body'] = $func['substr']($row['body'], 0, $length);

// The first space or line break. (<br />, etc.)
$cutoff = max(strrpos($row['body'], ' '), strrpos($row['body'], '<'));

if ($cutoff !== false)
$row['body'] = $func['substr']($row['body'], 0, $cutoff);
$row['body'] .= '...';
}

$row['body'] = parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']);

// Check that this message icon is there...
if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? 'images_url' : 'default_images_url';

censorText($row['subject']);
censorText($row['body']);

$return[] = array(
'id' => $row['ID_TOPIC'],
'message_id' => $row['ID_MSG'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
'subject' => $row['subject'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'body' => $row['body'],
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.0">' . $row['numReplies'] . ' ' . ($row['numReplies'] == 1 ? $txt['smf_news_1'] : $txt['smf_news_2']) . '</a>',
'replies' => $row['numReplies'],
'comment_href' => !empty($row['locked']) ? '' : $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . ';num_replies=' . $row['numReplies'],
'comment_link' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . ';num_replies=' . $row['numReplies'] . '">' . $txt['smf_news_3'] . '</a>',
'new_comment' => !empty($row['locked']) ? '' : '<a href="' . $scripturl . '?action=post;topic=' . $row['ID_TOPIC'] . '.' . $row['numReplies'] . '">' . $txt['smf_news_3'] . '</a>',
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => !empty($row['ID_MEMBER']) ? $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] : '',
'link' => !empty($row['ID_MEMBER']) ? '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>' : $row['posterName']
),
'locked' => !empty($row['locked']),
'is_last' => false
);
}
mysql_free_result($request);

if (empty($return))
return $return;

$return[count($return) - 1]['is_last'] = true;

if ($output_method != 'echo')
return $return;

foreach ($return as $news)
{
echo '
<div>
<a href="', $news['href'], '">', $news['icon'], '</a> <b>', $news['subject'], '</b>
<div class="smaller">', $news['time'], ' ', $txt[525], ' ', $news['poster']['link'], '</div>

<div class="post" style="padding: 2ex 0;">', $news['body'], '</div>

', $news['link'], $news['locked'] ? '' : ' | ' . $news['comment_link'], '
</div>';

if (!$news['is_last'])
echo '
<hr style="margin: 2ex 0;" width="100%" />';
}
}

ssi_boardTopics olarak kullan.
Former SMF Core Developer | My Mods | SimplePortal

Offline #Serseri

  • SMF Hero
  • ******
  • Posts: 1,701
  • Gender: Male
    • istanbulgezintisi on Facebook
    • @FerhatKocabaL on Twitter
Re: SSI Dersleri - Orta Seviye
« Reply #14 on: June 27, 2008, 02:27:09 AM »
Sinan tam istediğim gibi oldu fakat dövmessen birsey daha soracağım. :)

Code: [Select]
function ssi_boardTopics($limit = null, $length = null, $output_method = 'echo')
Bu kısmı kendime göre düzenledim. eklemeler yaptım. Fakat örneğin atıyorum forumun genelinden değilde sadece seçtiğim bir kaç bölümden ceksin istiyorum. Board$ = 2,3,4 olaarak denedim olmadı. :(

Offline [SiNaN]

  • SMF Super Hero
  • *******
  • Posts: 11,524
  • Young and Foolish
    • SimplePortal
Re: SSI Dersleri - Orta Seviye
« Reply #15 on: June 27, 2008, 02:42:34 AM »
Taksit taksit niye söylüyorsun ki? :)

Kodlarda;

Bul:

Code: [Select]
  function ssi_boardTopics($limit = null, $length = null, $output_method = 'echo')
Değiştir:

Code: [Select]
  function ssi_boardTopics($board = null, $limit = null, $length = null, $output_method = 'echo')
Bul:

Code: [Select]
WHERE $user_info[query_see_board]
Değiştir:

Code: [Select]
WHERE ID_BOARD IN $board
Former SMF Core Developer | My Mods | SimplePortal

Offline seksensekizbin

  • Full Member
  • ***
  • Posts: 473
  • Gender: Male
  • sekiz
Re: SSI Dersleri - Orta Seviye
« Reply #16 on: August 11, 2008, 04:56:27 AM »

Bir kaç hafta önce işime çok yaramıştı teşekkür edememiştim.
Bu bilgiler için çok sağolun.
ve hayat; sunulmuş bir armağandır insana..

Offline 01usagi01

  • Semi-Newbie
  • *
  • Posts: 11
Re: SSI Dersleri - Orta Seviye
« Reply #17 on: October 21, 2008, 11:06:19 AM »
üstatım 1 seviyedede sordum buradada soruyorum acaba profili nasıl çagırrız ssi portala

Offline 01usagi01

  • Semi-Newbie
  • *
  • Posts: 11
Re: SSI Dersleri - Orta Seviye
« Reply #18 on: November 05, 2008, 12:06:09 PM »
portala yollanan konuların altında

10 yorum | yorum yaz dior

bunu 10 yorumu silsek  yorum yazıda resimlendirmek istesem nasıl olur acaba

1de
<?php ssi_topPoster(); ?>

burdaki konu var

bu bende 5 kişi var ama hepside yanyana

bunları altalta avatarlarıyla nasıl alabilirim

şimdiden teşekkürler

Offline iammember

  • Semi-Newbie
  • *
  • Posts: 83
Re: SSI Dersleri - Orta Seviye
« Reply #19 on: December 10, 2008, 07:36:15 AM »
ustadlar, anket veya son oylanan anketi bir turlu sayfada yayinlayamadim diger istedigim butun SSI fonsiyonlar sorunsuz calisiyor anketi nasil cagirabilirim tesekkurler simdiden...
« Last Edit: December 10, 2008, 07:40:16 AM by iammember »