SSI Rehberi

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

Previous topic - Next topic

pspturkey

Arkadaşlar ben 3,5 ve 7. mesaj odasından haberleri  göstermek istedim şu kodu ekledim:

<?php ssi_boardNews($board = array(3,5,7),  $output_method = 'echo'); ?>

Ancak şöyle bir hata aldım:

Misafirlere izin verilen bir bölüm belirtmediniz. Lütfen önce bölüm numarasını kontrol edin.

Bunu nasıl çözebiliriz?
Türkçe PSP Kaynağı: www.pspturkey.net
Türkçe Konsol Kaynağı: www.konsolum.net
Türkçe Oyun Hileleri Kaynağı: www.hiletr.net

Elmacik

@pspturkey, senin kullandığın ssi_boardNews fonksiyonu o şekilde çalışmaz. Oraya yazdığın bölüm numaraları dahil olacak olanları değil, hariç tutulacak olanları belirtiyor. Yani senin istediğinin tam tersi. Yalnız senin istediğini daha önce soran çok oldu, DEV lerden biri bu fonksiyonun benzerini yazdı ve ben de bu konuda öceki sayfalarda o kodu verdim. Gerilere doğru diğer mesajları okuyuver.

Bu yalan dünya da kahroluversin. Dünyayı boşadım boşadım diyorum demek ki boşayamamışım.
Home of Elmacik

hoochie coochie man

Öncelikle döküman için çok teşekkürler..
Ben sadece forumdaki herhangi tek bir konuyu göstermek istiyorum, onun için ne yapmalıyım?
Teşekkürler..

hoochie coochie man

Quote from: Hoochie Coochie Man on August 18, 2007, 10:30:55 AM
Öncelikle döküman için çok teşekkürler..
Ben sadece forumdaki herhangi tek bir konuyu göstermek istiyorum, onun için ne yapmalıyım?
Teşekkürler..
Sonuçta komutlarla çağırıyorsun bilgileri, o yüzden elbet bununda bir yapılabiliriği vardır ama malesef ben bilmiyorum, bilen yok mu?

worms

Müthişsiniz siz yaaaa bravooooo hepinize teşekkürler

shalamar

Daha önce sorduğumu hatırlıyorum ancak bulamadım:
Forumdan son mesajlar benzeri şekilde "Forumdan Rastgele Konular"ı göstermek istiyordum.

Buna hazır bir çözüm bulamayınca SSI içerisinde başka bir fonksiyonu biraz değiştirerek yeni fonksiyon yazdım: ssi_randomTopics

Eğer ilgisini çeken arkadaşlar olursa paylaşmak isterim. (Önce yetkin arkadaşların güvenlik açığı vb sorunları kontrolü sonrası)

Sevgiyle...

Elmacik

"Forumdan Rastgele Konular" dediğin sadece konu başlığı olarak mı?
Eğer öyleyse ssi_recentTopics(); bu işi yapıyor. Yok eğer konu olarak göstermekse istediğin, onu da  ssi_boardNews(); yapıyor. Bu iki fonksiyon da rastgele yani random konular gösteriyor zaten.

Ama bir fonksiyon yazabilecek kadar bilgin varsa, İngilizce de biliyor gibi göründüğüne göre, sen de ssi fonksiyonlarının ne işe yaradığını biliyorsundur. O yüzden sanırım bir şeyleri eksik anlattın ya da ben eksik anladım.

Yine de yazdığın kodu buraya koy inceleyelim.
Home of Elmacik

HoT_sOuRcE_

Quote from: hoochie coochie man on August 18, 2007, 10:30:55 AM
Öncelikle döküman için çok teşekkürler..
Ben sadece forumdaki herhangi tek bir konuyu göstermek istiyorum, onun için ne yapmalıyım?
Teşekkürler..

Simple Blog Olarak Arat Onun Buna Benzer Bir Özellği Vardı ;) demek istediğin sanırım sadece belli bir konuyu yada istediğin bir konuyu
Ne Mutlu Türk'üm Diyene!!!

Bursa Gazi Anadolu Lisesi İnternet Sitesi ve Forumu
Forumuma Üye Olabilmek İçin Bursa Gazi Anadolu Lisesi Mensubu Olmanız Gerekli!

worms

" Notice: SSI.php was unable to load a session! This may cause problems with logout and other functions - please make sure SSI.php is included before *anything* else in all your scripts! in /home/kullancıadı/public_html/forum/SSI.php on line 160 "

Bende bu şekilde bir hata veriyo neden?

HoT_sOuRcE_

tam olarak bilmiyorum ama sanırım ssı ile yaptığın sayfayı forum dizinine atman gerekiyor o zaman çalışıyor yanlış hatırlamıyorusam ;)
Ne Mutlu Türk'üm Diyene!!!

Bursa Gazi Anadolu Lisesi İnternet Sitesi ve Forumu
Forumuma Üye Olabilmek İçin Bursa Gazi Anadolu Lisesi Mensubu Olmanız Gerekli!

worms

Tamam beyler hallettim <body></body> taglarının arasına koymayı unutmuşum :S Yardımlarınız için teşekkürler..

shalamar

#131
Quote from: Elmacik on August 30, 2007, 03:46:06 PM
"Forumdan Rastgele Konular" dediğin sadece konu başlığı olarak mı?
Eğer öyleyse ssi_recentTopics(); bu işi yapıyor. Yok eğer konu olarak göstermekse istediğin, onu da  ssi_boardNews(); yapıyor. Bu iki fonksiyon da rastgele yani random konular gösteriyor zaten.

Ama bir fonksiyon yazabilecek kadar bilgin varsa, İngilizce de biliyor gibi göründüğüne göre, sen de ssi fonksiyonlarının ne işe yaradığını biliyorsundur. O yüzden sanırım bir şeyleri eksik anlattın ya da ben eksik anladım.

Yine de yazdığın kodu buraya koy inceleyelim.

Sevgili Elmacik,
Koddan ziyade sonucunu gösterirsem anlatmak istediğimi daha iyi anlatabilirim:
http://www.melektozlari.com/mt
(sayfanın alt tarafında)

ssi_recentTopics() fonksiyonu rastgele değil güncel konuları gösteriyor diye biliyorum.
Yapmaya çalıştığım ssi_randomTopics() ise forumda bulunan tüm konular arasından (eski/yeni tarihli) rastgele seçerek konu başlıklarını gösteriyor.

Sıfırdan bir fonksiyon yazmadım, var olan fonksiyonlardan birinde değişklikler yaparak oluşturdum.

Elmacik

#132
Anladım.. Haklısın :)
Kodu verseydin, yararlanmak isteyen olur diye..? :)
Home of Elmacik

shalamar

SSI.php içerisine, sayfanın en sonuna, "?>" hemen öncesine yapıştırılabilir.

// Random topic list:   
function ssi_randomTopics($num_random = 15, $exclude_boards = array(HARİÇ TUTULACAK BOARD ID NUMARALARI), $output_method = 'echo')
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER, $user_info, $modSettings;

if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : $exclude_boards;

$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 all the posts in distinct topics.  Newer ones will have higher IDs.
$request = db_query("
SELECT
m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}messages AS ms)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 3500 * min($num_random, 5)) . "
AND t.ID_LAST_MSG = m.ID_MSG
AND b.ID_BOARD = t.ID_BOARD" . (empty($exclude_boards) ? '' : "
AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
AND $user_info[query_see_board]
AND ms.ID_MSG = t.ID_FIRST_MSG
ORDER BY RAND()
LIMIT $num_random", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
{
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']), array('<br />' => '&#10;')));
if (strlen($row['body']) > 128)
$row['body'] = substr($row['body'], 0, 128) . '...';

// Censor the subject.
censorText($row['subject']);
censorText($row['body']);

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';

// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['ID_BOARD'],
'name' => $row['bName'],
'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['ID_BOARD'] . '.0">' . $row['bName'] . '</a>'
),
'topic' => $row['ID_TOPIC'],
'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']) ? $row['posterName'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>'
),
'subject' => $row['subject'],
'short_subject' => shorten_subject($row['subject'], 25),
'preview' => $row['body'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '">' . $row['subject'] . '</a>',
'new' => !empty($row['isRead']),
'new_from' => $row['new_from'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
mysql_free_result($request);

// Just return it.
if ($output_method != 'echo' || empty($posts))
return $posts;

// Ekrana yazdir
echo '
<table  class="windowbg2" cellspacing="1" width="100%" cellpadding="0"  border="0">
<tr>
<th class="windowbg" align="left">Konu</th>
<th class="windowbg" align="left">Bölüm</th>
<th class="windowbg" align="left">Son Mesaj Tarihi</th>
</tr>';

foreach ($posts as $post)
echo '

<tr>
<td class="windowbg" valign="middle">', $post['link'], '</td>
<td class="windowbg" valign="middle">', $post['board']['link'], '</td>
<td class="windowbg" valign="middle">', $post['time'], '</td>
</tr>';

echo '
</table>';

}


Not: Önceki mesajımda verdiğim örnek linki, forumda upgrade yapmam nedeniyle geçersiz olduğundan değiştirdim.

thunderlion

bu konu bana portalı hazırlarken bayağı yardımcı oldu.emeği geçen herkese teşekkür ederim....

hakanel



merhaba bu verdiğiniz kodları tiny portalda nasıl uygularım? işime çok yarayacak bir konu. lütfen yardımcı olurmusunuz.
TP + SMF 1.1.3 kullanıyorum.

rastgele karışık 15 konu göstermek istiyorum TP anasayfada. forum altında değil sadece TP anasayfada (hep TP hem forum sayfasının alt kısmında da olur.)

teşekkürler





Quote from: shalamar on August 31, 2007, 09:12:05 PM
SSI.php içerisine, sayfanın en sonuna, "?>" hemen öncesine yapıştırılabilir.

// Random topic list:  
function ssi_randomTopics($num_random = 15, $exclude_boards = array(HARİÇ TUTULACAK BOARD ID NUMARALARI), $output_method = 'echo')
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER, $user_info, $modSettings;

if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : $exclude_boards;

$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 all the posts in distinct topics.  Newer ones will have higher IDs.
$request = db_query("
SELECT
m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}messages AS ms)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 3500 * min($num_random, 5)) . "
AND t.ID_LAST_MSG = m.ID_MSG
AND b.ID_BOARD = t.ID_BOARD" . (empty($exclude_boards) ? '' : "
AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
AND $user_info[query_see_board]
AND ms.ID_MSG = t.ID_FIRST_MSG
ORDER BY RAND()
LIMIT $num_random", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
{
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']), array('<br />' => '')));
if (strlen($row['body']) > 128)
$row['body'] = substr($row['body'], 0, 128) . '...';

// Censor the subject.
censorText($row['subject']);
censorText($row['body']);

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';

// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['ID_BOARD'],
'name' => $row['bName'],
'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['ID_BOARD'] . '.0">' . $row['bName'] . '</a>'
),
'topic' => $row['ID_TOPIC'],
'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']) ? $row['posterName'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>'
),
'subject' => $row['subject'],
'short_subject' => shorten_subject($row['subject'], 25),
'preview' => $row['body'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '">' . $row['subject'] . '</a>',
'new' => !empty($row['isRead']),
'new_from' => $row['new_from'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
);
}
mysql_free_result($request);

// Just return it.
if ($output_method != 'echo' || empty($posts))
return $posts;

// Ekrana yazdir
echo '
<table  class="windowbg2" cellspacing="1" width="100%" cellpadding="0"  border="0">
<tr>
<th class="windowbg" align="left">Konu</th>
<th class="windowbg" align="left">Bölüm</th>
<th class="windowbg" align="left">Son Mesaj Tarihi</th>
</tr>';

foreach ($posts as $post)
echo '

<tr>
<td class="windowbg" valign="middle">', $post['link'], '</td>
<td class="windowbg" valign="middle">', $post['board']['link'], '</td>
<td class="windowbg" valign="middle">', $post['time'], '</td>
</tr>';

echo '
</table>';

}


Not: Önceki mesajımda verdiğim örnek linki, forumda upgrade yapmam nedeniyle geçersiz olduğundan değiştirdim.


baypal

selam lar

ben   http://www.............com/forum/ssi_examples.php adresine girdiğimde
şöyle bi hata alıyorum


/forum/SSI.php' (include_path='.:/usr/share/pear') in
/forum/ssi_examples.php on line 3

nasıl düzeltebilirim yardıcı olursanız sevinirim

HoT_sOuRcE_

3. satırda neler var ftpden bakar mısın? bir hata varsa onu düzelt o dosyada

yoksa ve son zamanlarda ssi_examples klasörü içinde bir değişiklik yapmadıysan orjinalini atmayı dene
Ne Mutlu Türk'üm Diyene!!!

Bursa Gazi Anadolu Lisesi İnternet Sitesi ve Forumu
Forumuma Üye Olabilmek İçin Bursa Gazi Anadolu Lisesi Mensubu Olmanız Gerekli!

baypal

hiç bir değişiklik yapmadığım halde yinede dosyayı orjinali ile değiştirdim yine olmadı 3. satır öncesi ve sonrasında şunlar var

1<?php
2
3require(dirname(__FILE__) . '/SSI.php');
4

hmurat

herşeyi hallettimde bir tek <?php ssi_login(); ?> çalışmıyor bende neden olabilir acaba?
hxxp:www.fmdizayn.com/fmforum/ssi_examples.php [nonactive] burdada gözükmüyor???

Advertisement: