Simple Machines Community Forum

SMF Support => Türkçe Bölümü (Turkish) => Language Specific Support => İpuçları ve Hileler => Topic started by: Özgür on October 29, 2008, 01:07:35 AM

Title: Belirli bölümden rastgele konular.
Post by: Özgür on October 29, 2008, 01:07:35 AM
Başlık anlamsız gelecektir muhtemelen.
Anlatayım. IP.B de böyle bir olay var. Belirli bölüm seçiyorsun o bölümden son 10 konuyu her yenilemede farklı olacak olacak şekilde seçiyor ve linktree nin üstüne kutu içinde Sadece başlığı yazacak şekilde gösteriyor.

Yani mesela
http://img243.imageshack.us/img243/236/adszeb0.jpg
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fimg243.imageshack.us%2Fimg243%2F236%2Fadszeb0.jpg&hash=e31fd533b0fada83793b040c55046eb72acde183)
Resimden de anlaşılıyor sanırım.

Ben bunu smf de nasıl yaparım. Basitçe de olabilir mesela o Bölümdeki son 10 konu arasından değilde o bölümdeki tüm konular arasından da yapabilir. Eskiyenleri arşive taşırım.

Tüm forumu kapsayanını Serseri de istiyor. Dediği gibi SSI ile de başka sayfalara eklenebilirse gerçekten harika olur.
Title: Re: Belirli bölümden rastgele konular.
Post by: PureLove™ on October 29, 2008, 06:24:48 AM
dökümantasyonda SSI rehberi diye bir konu var incele derim  ;)
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on October 29, 2008, 11:18:19 AM
SSI var olan birşey değil. inan en az 100 defa okudum o konuyu. Yeni bir fonksiyon gerekli.
Title: Re: Belirli bölümden rastgele konular.
Post by: #Serseri on October 29, 2008, 01:35:55 PM
ЯocKayseri Kardeşim :)

Bende bütün forumu kapsayan böyle birşey istiyorum. Bu olsun ama başka sayfalara SSI ile eklenebilsin :P Mesajına Serseride bunu istiyor eklermisin :P
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on October 29, 2008, 01:44:25 PM
Gerçekten çok güzel olur böyle birşey mesela her bölüm içine girdiğimizde o bölümle ilgili rastgele konuları göstermiş olsa çok daha iyi olur her bölümde otomatik çekecek SSI ile'de bölüm id'si girerek farklı sayfalarda çekebilsek çok güzel olur belki çok zor değildir çekmek ama beni aşıyor Yağız belki yapar bilemiyorum ama yapılsa çok kişinin işine yarayacaktır eminim.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on October 29, 2008, 02:16:00 PM
Mantıken şöyle olacak normalde tarihe göre sıralı olarak seçiyor, başlık adına , yazarına göre çekmeside mümkündür herhalde çokta zor değil yani. rastgele seçmeside olanaklı yani. zor olan kısmıysa o bölümde son 5 konunun yada 10 içerisinden rastgele konuyu göstermesi. Şöyle düşünün haberler bölümünü hiç taşımıyorsunuz 5000 tane mesaj var 2 yıl önce yazılmış birşeyi çekse neye yarar? Ama oda işe yarayacaktır.Yani yazılırsa o haline de kabulüm ben. İlerde geliştirilip tüm bu saydığımız özellikler eklenir. Çokta güzel olur.

@Serseri ekledim ilk mesaja.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on November 04, 2008, 02:25:37 PM
Konu halen güncel.

Normalde son konuyu son konuların sayısını 1 e indirerek alabiliyorz benim sitediğim şey random alması. Bu şekilde konuların sıralanma şeklini değiştirmeyi de öğrenmiş olucam yani bir bölümdeki tüm konuları alfabetik olarak nasıl sıralayabileceğimi de öğrenmiş olucam.
Title: Re: Belirli bölümden rastgele konular.
Post by: 1SeVDa on November 04, 2008, 05:06:39 PM
valla bende ıstıyorummm arkadaslar super olur ya
Title: Re: Belirli bölümden rastgele konular.
Post by: Tias_ on November 04, 2008, 05:54:00 PM
Merhaba,

Zaten smf'de vBulletin'den esinlenip yapılan benzer konular eklentisi yokmu?
Onu alıp linktree'nin altına yerleştirebilirsiniz.Mesaj sayısını 1 yapıp sadece konu adını ve bağlantısını verebilirsiniz biraz kod düzenleme bilginiz varsa.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on November 04, 2008, 06:41:03 PM
benzer konularla alakasını kuramadım ben?benzer konularda konunun içinde geçen textlerle diğer konularda geçenleri karşılaştırıp en benzerini buluyor. ne alakası var bu dediğimle anlamadım ben?
Title: Re: Belirli bölümden rastgele konular.
Post by: Tias_ on November 04, 2008, 07:37:37 PM
Quote from: ЯocKayseri on November 04, 2008, 06:41:03 PM
benzer konularla alakasını kuramadım ben?benzer konularda konunun içinde geçen textlerle diğer konularda geçenleri karşılaştırıp en benzerini buluyor. ne alakası var bu dediğimle anlamadım ben?

pardon ben yanlış anlamışım.kusura bakmayın
Title: Re: Belirli bölümden rastgele konular.
Post by: ℓσяєиz on November 05, 2008, 06:24:00 AM
henuz yapan yok galiba bekledim ama bir sonuc cıkmadı sunucumdaki sql sorunu çözülsün yapiyim çok basit bişi sadece bir kaç satırlık bi php dosyası hazırlanıcak
Title: Re: Belirli bölümden rastgele konular.
Post by: Yağız... on November 05, 2008, 06:35:43 AM
ssi_recentTopics fonksiyonunda birkaç değişiklik yaparsanız olabilir. Sadece konuları karışık olarak çekmenizi sağlayacak bir kod gerekiyor.
Title: Re: Belirli bölümden rastgele konular.
Post by: ℓσяєиz on November 05, 2008, 08:17:40 AM
@yagız
sadece bir bolumdekileri gostermek istiyor ssi_boardNews kullanılacak. Ben yaptım ama random çekimde bi sorun yaşıyorum onu çözünce eklicem

mesaj Düzenleme :

ve finish =) ama biraz ugrastıracak arakdaslar demedi demeyin
Demo  (http://genclup.net/lululululu/index.php?theme=1)

Code (lorenz.php olarak forum dizinine kaydedin) Select

<?php
####Lorenzo =P####
header('Content-Type: text/plain');
require_once(
'SSI.php'); 
$board 1// boad id
$mesaj 15// gosterilecek mesja sayısı
$array ssi_boardNews($board$mesajnull0'array');
foreach (
$array as $lorenz)
{
echo 
'<a href="',$lorenz['href'] ,'">' ,$lorenz['subject'],' </a>
'
;
}
?>



.htaccess dosyasını açın
Code (en alta ekleyin) Select

RewriteEngine on
RewriteRule ^lorenz.txt$ lorenz.php [L,NC]


İndex.template.php aç (default için)
Code (bul) Select

<div class="tborder" ', $context['browser']['needs_size_fix'] && !$context['browser']['is_ie6'] ? ' style="width: 100%;"' : '', '>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="catbg" height="32">';

if (empty($settings['header_logo_url']))
echo '
<span style="font-family: Verdana, sans-serif; font-size: 140%; ">', $context['forum_name'], '</span>';
else
echo '
<img src="', $settings['header_logo_url'], '" style="margin: 4px;" alt="', $context['forum_name'], '" />';

echo '
</td>
<td align="right" class="catbg">
<img src="', $settings['images_url'], '/smflogo.gif" style="margin: 2px;" alt="" />
</td>
</tr>
</table>';



Code (altına ekle) Select

// random mesaj Lorenz
echo '
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="titlebg" height="32">';

$lorenz['php'] = file("lorenz.txt");
$lorenz['random'] = array_rand($lorenz['php']);
$lorenz['sonuc'] = $lorenz['php'][$lorenz['random']];
echo ' <font color="red">Rastgele Konu :</font> '.$lorenz['sonuc'].'';
echo ' </td>
</tr>
</table>';


$board = 1; kısmını kendinizce ayarlayın hadi geçmiş olsun =)
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on November 05, 2008, 08:34:43 AM
Şöyle bir şeyler karaladım; SSI.php dosyasının en altına ?> işaretinden önce ekle:

function ssi_rastgeleKonu($bolum = null)
{
global $db_prefix, $scripturl;

$bolum = empty($bolum) ? (isset($_GET['bolum']) ? (int) $_GET['bolum'] : 0) : (int) $bolum;
$bolum = max(0, $bolum); // Sifirin altinda bir bolum düsünemiyorum. :)

$request = db_query("
SELECT t.ID_TOPIC, m.subject
FROM {$db_prefix}topics AS t
LEFT JOIN {$db_prefix}messages AS m
ON (m.ID_MSG = t.ID_FIRST_MSG)
WHERE m.ID_BOARD = $bolum
ORDER BY RAND()
LIMIT 1", __FILE__, __LINE__);

if (mysql_num_rows($request) == 0)
die('Hiç haber girilmemiş.');
else list($konu_no, $konu_baslik) = mysql_fetch_row($request);
mysql_free_result($request);

echo 'Sitemizden son haberler: <a href="', $scripturl, '?topic=', $konu_no, '"><i>', $konu_baslik, '</i></a>';
}


Daha sonra da nerede bu "rast gele konu" görünsün istiyorsan oraya şu kodu yaz: ssi_rastgeleKonu(5);
Buradaki "5" sayısı, haberleri göstermek istediğin bölüm numarasını ifade ediyor. Yani 5 numaralı bölümden tamamen rastlantısal bir konu seçip onu şu şekilde ekrana yazdıracak:

QuoteSitemizden son haberler: Belirli bölümden rastgele konular (http://www.simplemachines.org/community/index.php?topic=271062.0)

Nasıl görüneceğini yazdığım koddan kendin düzenleyebilirsin.

Bu arada ℓσяєиz benden erken davranmış, hakkını helal etsin yine de yolluyorum faydalanmak isteyenler için. :) (Yukarıdaki koddan daha sade ve kolay uygulanabilir. Ayrıca daha hızlı da olacaktır.)
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 08:36:21 AM
Arkadaşlar her ikinize de teşekkürler sadece SSI'ye ekleme yapılarak daha kolay olur gibime geliyor tekrar tekrar teşekkürler.
Title: Re: Belirli bölümden rastgele konular.
Post by: ℓσяєиz on November 05, 2008, 08:36:34 AM
helal olsun abi iki yoluda yapmış olduk isteyen istediğini yapar teşekürler abi yaptıgını bilsem yapmazdım :)
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 08:43:17 AM
Peki şimdi aklıma geldide Elmacik şöyle birşey olabilir mi acaba mesela diyelim 34 numaralı bölüme girdik sadece 34 numaralı bölümdeki konuları o bölümün içinde üst tarafda rastgele gösterse daha sonra 15. bölüme geçtik aynı şekide 15.bölümden rastgele konuları gösterebilecek bunlarda ilginizi çekebilir gibisinden bi başlık ile onu nasıl yapabiliriz acaba her bölüm içinde o bölüme ait konulardan bir tanesini rastgele nasıl çekebiliriz.
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on November 05, 2008, 08:47:26 AM
Çok güzel düşünmüşsün evolution (kusura bakmayın abudik karakterlerle uğraşamayacağım :P). Bu düşünceni ekstra kod yazmadan benim verdiğim fonksiyonla hayata geçirebilirsin, zira fonksiyonu modüler yaptık. Yani örneğin;

ssi_rastgeleKonu($context['current_board']);

Şeklinde kullanırsan, o an hangi bölümdeyse, o bölümden rastgele bir haber yazdırır ekrana.
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 08:48:53 AM
Çok teşekkürler Elmacık deneyeceğim hemen Allah razı olsun.
Title: Re: Belirli bölümden rastgele konular.
Post by: ℓσяєиz on November 05, 2008, 08:50:10 AM
@єνσℓυтιση™

evet yapılır yaman gereken ssi daki kodu ekliyip

require_once('SSI.php');
ssi_rastgeleKonu(boardid);

buraya boardid çagırmak
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on November 05, 2008, 08:56:23 AM
Aslında bunu SSI.php dosyası için yazdım ama başka dosyalara da ekleyebilirsiniz, SSI mecburiyetiniz yok. Zaten eğer forum içinde kullanmayı düşünüyorsanız SSI.php 'ye değil de bir Source dosyasına eklemeniz çok çok daha iyi olur. Böylece SSI dosyasını boşuna çalıştırmamış olursunuz, bu da daha hızlı çalışmasını sağlar.

Örneğin mesajların üzerinde gösterecekseniz verdiğim fonksiyonu /Sources/Display.php içine koymanız çok daha iyi olur.
Title: Re: Belirli bölümden rastgele konular.
Post by: ℓσяєиz on November 05, 2008, 08:59:18 AM
@Elmacik  sources e eklerse

foreach ($context['  '] as $deger)
{
echo '


gibi değer olarak okunması için contextle desteklemek gerekmiyormu fonksiyonu
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 09:01:00 AM
Elmacık dediğin gibi ben messageindex.template.php de göstericem hangisini yapmam daha iyi olur.
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on November 05, 2008, 09:10:46 AM
@lorenz, "$context ile desteklemek" derken herhalde globalleştirmeyi kastediyorsun. Eğer öyle ise, benim yazdığım fonksiyonda ona gerek yok. Çünkü ben fonksiyonun içinde $context'i kullanmadım.

@evolution, /Sources/MessageIndex.php dosyasına at bu fonksiyonu. Böylece başka bir işlem yapmadan daha önce söylediğim şekilde her bölümün kendi içinden haberler gösterebilirsin.

Bir de şunu söyleyeyim, ben bunu SSI için yazmıştım, SSI.php dosyasına eklediğinizde bu kodu forum dışından da çağırabilirsiniz ve adres satırına bolum=5 gibi bir eklenti yaparak hangi bölümden haber göstereceğini de belirleyebilirsiniz.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on November 05, 2008, 10:27:28 AM
Teşekkürler arkadaşlar.

Yalnız birşey sorucam Elmacik. Bu kodlar 2.0 da çalışmıyor olabilir mi ben denedim çalıştıramadım bir türlü.
Sanırım db query yerine db function kullanılması gerekiyor.
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 01:40:28 PM
Arkadaşlar birde bu sistemi aynen önemli ve sabit konular gibi ayırsak konuyu açan görütüleyen sayısı yanıt sayısı gibi şeyleride yazdırabilsek tablolar halinde çok mu zor olur acaba nasıl yapabiliriz onu.
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on November 05, 2008, 02:37:22 PM
Evet arkadaşlar söylemeyi unuttum yazarken aklımdaydı kusuruma bakmayın unutmuşum. Benim verdiğim fonksiyon sadece 1.x serisinde çalışır. Aslında 2.x 'de çalışması için sadece sorguda bir iki değişiklik yapmanız lazım. İcap ederse ona da bakarım yalnız şu anda vaktim yok.
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 02:42:02 PM
Elmacik usta benim dediğimde yapılabilir mi zor mudur yani.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on November 05, 2008, 03:05:26 PM
madem öyle biraz öğrenelim. şimdi smf 2.0 da db_query çalışmıyor daha doğrusu farklı çalışıyor. Ve id_msg falan küçük harfle yazılıyor.

       $result = $smcFunc['db_query']('', '
                SELECT poster_time
                FROM {db_prefix}messages
                WHERE id_msg = {int:id_msg}
                LIMIT 1',
                array(
                    'id_msg' => $user_settings['id_msg_last_visit'],
                )
            );


Bu şekilde bir örnek vermişler. Bizim elimizde olan kodun

  $result = $smcFunc['db_query']('', '
      SELECT t.id_topic, m.subject
      FROM {$db_prefix}topics AS t
      LEFT JOIN {$db_prefix}messages AS m
         ON (m.id_msg = t.id_first_msg)
      WHERE m.id_board = $bolum
      ORDER BY RAND()
  LIMIT 1", __FILE__, __LINE__);

Başını değiştirebiliyorum yani. Peki Son tarafını yani
  LIMIT 1", __FILE__, __LINE__);

Burayı nasıl değiştirmeliyim ?
Hem kodun  ikinci kısmında $request in çektiği veriyi göstermesi sağlanıyor o kısımlarıda $result oalrak mı göstereceğim.

Yani şu kısım

if (mysql_num_rows($request) == 0)
die('Hiç haber girilmemiş.');
else list($konu_no, $konu_baslik) = mysql_fetch_row($request);
mysql_free_result($request);

echo 'Sitemizden son haberler: <a href="', $scripturl, '?topic=', $konu_no, '"><i>', $konu_baslik, '</i></a>';
}


Evo evet dediğin şeyde yapılabilir zaten konu başlığı daha doğrusu konuyu alıyoruz diğer bilgilerde alınabilir zannımca.
Title: Re: Belirli bölümden rastgele konular.
Post by: Evo™ on November 05, 2008, 03:19:42 PM
Vallahi dediğim gibi olursa daha güzel olur gibime geliyor seçme konular önemli konular norma konular diye 3 satır iyi olabilir diye düşünüyorum. Birde oradaki limit 1 yazan yeri 5 yaparsak 5 tane konuyu gösterebiliriz değil mi arkadaşlar.
Title: Re: Belirli bölümden rastgele konular.
Post by: Yağız... on November 05, 2008, 05:24:17 PM
@ЯocKayseri;
Bunu dener misin?
function ssi_rastgeleKonu($bolum = null)
{
global $smcFunc, $scripturl;

$bolum = empty($bolum) ? (isset($_GET['bolum']) ? (int) $_GET['bolum'] : 0) : (int) $bolum;
$bolum = max(0, $bolum); // Sifirin altinda bir bolum düsünemiyorum. :)

$request = $smcFunc['db_query']('', "
SELECT t.id_topic, m.subject
FROM {db_prefix}topics AS t
LEFT JOIN {db_prefix}messages AS m
ON (m.id_msg = t.id_first_msg)
WHERE m.ID_BOARD = {string:bolum}
ORDER BY RAND()
LIMIT 1",
array(
'bolum' => $bolum,
)
);

if ($smcFunc['db_num_rows']($request) == 0)
die('Hiç haber girilmemis.');
else list($konu_no, $konu_baslik) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);

echo 'Sitemizden son haberler: <a href="', $scripturl, '?topic=', $konu_no, '"><i>', $konu_baslik, '</i></a>';
}
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on November 05, 2008, 06:30:25 PM
Teşekkürler yağız çalışıyor. Yapımda emeği geçen herkese teşekkürler. =)
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on November 05, 2008, 06:38:01 PM
Arkadaşlar oradaki LIMIT 1 ifadesini 5 yapmakla 5 haber göstermiş olmazsınız, onu ayrıca yapmanız lazım.
Title: Re: Belirli bölümden rastgele konular.
Post by: Shadow1243 on January 31, 2009, 12:24:47 PM
Tüm forumdan rastgele göstermek için hangi mesajdakini uygulamamız gerekir ?

Buradaki gibi bir buton ve tüm forumdan rastgele konu seçimi :

(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fimg228.imageshack.us%2Fimg228%2F8119%2Fadszjf7.jpg&hash=df9baa4dfbf9585da108b8620765f7e736d82539)
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on January 31, 2009, 12:41:10 PM
Buradakilerde Tüm forumdan rastgele konu alan bir kod yok. kodu baştan yazmak gerekir sanırım onun için.

Quote from: Elmacik on November 05, 2008, 08:47:26 AM
Çok güzel düşünmüşsün evolution (kusura bakmayın abudik karakterlerle uğraşamayacağım :P). Bu düşünceni ekstra kod yazmadan benim verdiğim fonksiyonla hayata geçirebilirsin, zira fonksiyonu modüler yaptık. Yani örneğin;

ssi_rastgeleKonu($context['current_board']);

Şeklinde kullanırsan, o an hangi bölümdeyse, o bölümden rastgele bir haber yazdırır ekrana.

Bu mesajını yeni gördüm sayın @Elmacık, Buda çok işime yarayacak sanırım. Teşekkürler =)
Title: Re: Belirli bölümden rastgele konular.
Post by: Elmacik on February 01, 2009, 10:38:53 AM
Quote from: Özgür´ on January 31, 2009, 12:41:10 PM
Buradakilerde Tüm forumdan rastgele konu alan bir kod yok. kodu baştan yazmak gerekir sanırım onun için.

Bunu da yazdığım fonksiyonla yapabilirsin. Bölüm girilmemişse random bölüm seçmesi için şunu yap;

Code (Bul) Select

$bolum = empty($bolum) ? (isset($_GET['bolum']) ? (int) $_GET['bolum'] : 0) : (int) $bolum;
$bolum = max(0, $bolum); // Sifirin altinda bir bolum düsünemiyorum. :)


Code (Altına ekle) Select

if (empty($bolum))
{
$request = $smcFunc['db_query']('', "
SELECT id_board FROM {db_prefix}boards
ORDER BY RAND() LIMIT 1", array());

list ($bolum) = $smcFunc['db_fetch_row']($request);
$scFunc['db_free_result']($request);
}
Title: Re: Belirli bölümden rastgele konular.
Post by: Shadow1243 on February 01, 2009, 10:49:53 AM
Quote from: Elmacik on February 01, 2009, 10:38:53 AM
Quote from: Özgür´ on January 31, 2009, 12:41:10 PM
Buradakilerde Tüm forumdan rastgele konu alan bir kod yok. kodu baştan yazmak gerekir sanırım onun için.

Bunu da yazdığım fonksiyonla yapabilirsin. Bölüm girilmemişse random bölüm seçmesi için şunu yap;

Code (Bul) Select

$bolum = empty($bolum) ? (isset($_GET['bolum']) ? (int) $_GET['bolum'] : 0) : (int) $bolum;
$bolum = max(0, $bolum); // Sifirin altinda bir bolum düsünemiyorum. :)


Code (Altına ekle) Select

if (empty($bolum))
{
$request = $smcFunc['db_query']('', "
SELECT id_board FROM {db_prefix}boards
ORDER BY RAND() LIMIT 1", array());

list ($bolum) = $smcFunc['db_fetch_row']($request);
$scFunc['db_free_result']($request);
}


Hocam benim bahsettiğim ; yukarıda önizlemede verdiğim gibi birşey olsun.Yani index.template'ye bir buton ekleyelim,o butona tıkladığımızda Forumda bulunan herhangi bir konu sayfası açılsın. :)

Şu şekilde : http://img228.imageshack.us/img228/8119/adszjf7.jpg
Title: Re: Belirli bölümden rastgele konular.
Post by: Ebu_Davud on June 28, 2009, 09:36:46 AM
Quote from: Elmacik on November 05, 2008, 08:47:26 AM

ssi_rastgeleKonu($context['current_board']);


Bu kodu nasıl bir kodlar ile birlikte koyacağız

<iframe src="http://www.siteismi.com/SSI.php?ssi_function=rastgeleKonu(5)" width="700px" height="100px"></iframe>

diye denedim olmadı

Bu kodu nasıl bir kodlar ile birlikte koyacağız
Title: Re: Belirli bölümden rastgele konular.
Post by: Minare on June 28, 2009, 11:03:20 AM
Bunu hem 1 hem de 2 için mod yapıp atsanız keşke =)

Tşk ler.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on June 28, 2009, 12:29:40 PM
Kodlar elmacik'a ait. İzin almak gerek. Bir mesaj atıp sorayım kabul ederse ben yayınlarım. Tabiki admin panelinden ayarlabilir vesair olacak.
Title: Re: Belirli bölümden rastgele konular.
Post by: Ebu_Davud on July 28, 2009, 08:27:48 AM
Quote from: Elmacik on November 05, 2008, 08:34:43 AM
Şöyle bir şeyler karaladım; SSI.php dosyasının en altına ?> işaretinden önce ekle:

function ssi_rastgeleKonu($bolum = null)
{
global $db_prefix, $scripturl;

$bolum = empty($bolum) ? (isset($_GET['bolum']) ? (int) $_GET['bolum'] : 0) : (int) $bolum;
$bolum = max(0, $bolum); // Sifirin altinda bir bolum düsünemiyorum. :)

$request = db_query("
SELECT t.ID_TOPIC, m.subject
FROM {$db_prefix}topics AS t
LEFT JOIN {$db_prefix}messages AS m
ON (m.ID_MSG = t.ID_FIRST_MSG)
WHERE m.ID_BOARD = $bolum
ORDER BY RAND()
LIMIT 1", __FILE__, __LINE__);

if (mysql_num_rows($request) == 0)
die('Hiç haber girilmemiş.');
else list($konu_no, $konu_baslik) = mysql_fetch_row($request);
mysql_free_result($request);

echo 'Sitemizden son haberler: <a href="', $scripturl, '?topic=', $konu_no, '"><i>', $konu_baslik, '</i></a>';
}


Daha sonra da nerede bu "rast gele konu" görünsün istiyorsan oraya şu kodu yaz: ssi_rastgeleKonu(5);
Buradaki "5" sayısı, haberleri göstermek istediğin bölüm numarasını ifade ediyor. Yani 5 numaralı bölümden tamamen rastlantısal bir konu seçip onu şu şekilde ekrana yazdıracak:

QuoteSitemizden son haberler: Belirli bölümden rastgele konular (http://www.simplemachines.org/community/index.php?topic=271062.0)

Nasıl görüneceğini yazdığım koddan kendin düzenleyebilirsin.

Bu arada ℓσяєиz benden erken davranmış, hakkını helal etsin yine de yolluyorum faydalanmak isteyenler için. :) (Yukarıdaki koddan daha sade ve kolay uygulanabilir. Ayrıca daha hızlı da olacaktır.)


Fatal error: Call to undefined function ssi_rastgeleKonu() in /home/mavi/public_html/Sources/Load.php(1741) : eval()'d code on line 231

  Hatasını alıyorum

Yardım edebilirmisiniz.?

Load.php
http://rapidshare.com/files/260978211/Load.php.html
Title: Re: Belirli bölümden rastgele konular.
Post by: Gökhan | Brestgerfich on October 02, 2009, 02:58:50 PM
Elmacik, ℓσяєиz ve Yağız... 3ünüze de teşekkür ederim.

Benim bi sorum olacaktı.
Bu ssi çağrısını x id'li bir bölüme ve o bölüme ait y, z, t id'li alt bölümlere aynı anda uygulayabilir miyiz ?

$board = 1, 2, 3; gibi bir sıralamayla çalıştırabilmemiz mümkün mü ?

Title: Re: Belirli bölümden rastgele konular.
Post by: grafitus on October 02, 2009, 03:18:43 PM
Quote from: Gökhan | Brestgerfich on October 02, 2009, 02:58:50 PM
Elmacik, ℓσяєиz ve Yağız... 3ünüze de teşekkür ederim.

Benim bi sorum olacaktı.
Bu ssi çağrısını x id'li bir bölüme ve o bölüme ait y, z, t id'li alt bölümlere aynı anda uygulayabilir miyiz ?

$board = 1, 2, 3; gibi bir sıralamayla çalıştırabilmemiz mümkün mü ?



Hayır.
$board = array(1, 2, 3);

şeklinde kullanacaksın.
Title: Re: Belirli bölümden rastgele konular.
Post by: Gökhan | Brestgerfich on October 02, 2009, 07:02:03 PM
Quote from: Yağız... on November 05, 2008, 05:24:17 PM
@ЯocKayseri;
Bunu dener misin?
function ssi_rastgeleKonu($bolum = null)
{
   global $smcFunc, $scripturl;

   $bolum = empty($bolum) ? (isset($_GET['bolum']) ? (int) $_GET['bolum'] : 0) : (int) $bolum;
   $bolum = max(0, $bolum); // Sifirin altinda bir bolum düsünemiyorum.

   $request = $smcFunc['db_query']('', "
      SELECT t.id_topic, m.subject
      FROM {db_prefix}topics AS t
      LEFT JOIN {db_prefix}messages AS m
         ON (m.id_msg = t.id_first_msg)
      WHERE m.ID_BOARD = {string:bolum}
      ORDER BY RAND()
      LIMIT 1",
      array(
         'bolum' => $bolum,
      )
   );

   if ($smcFunc['db_num_rows']($request) == 0)
      die('Hiç haber girilmemis.');
   else list($konu_no, $konu_baslik) = $smcFunc['db_fetch_row']($request);
   $smcFunc['db_free_result']($request);

   echo 'Sitemizden son haberler: <a href="', $scripturl, '?topic=', $konu_no, '"><i>', $konu_baslik, '</i></a>';
}


Bu kodu ekledim SSI.php dosyama. Daha sonra index.template.php dosyama ssi_rastgeleKonu(5); kodunu ekledim. Ancak kodu ekledigim yerden sonrası görünmedi sitemde.

Yani link agacının üzerine eklemiştim ssi_rastgeleKonu(5); kodunu. Link agacı ve onun altındaki bölüm yok oldu.
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on October 02, 2009, 07:30:59 PM
SSI.phpyi index.template'ye dahil ettiniz mi?
Title: Re: Belirli bölümden rastgele konular.
Post by: Gökhan | Brestgerfich on October 02, 2009, 07:53:04 PM
Nasıl yani? Anlayamadım Özgür  :-\
Title: Re: Belirli bölümden rastgele konular.
Post by: Özgür on October 02, 2009, 08:29:38 PM
index.template.php'de bul
<?php
altına ekle
require_once('/ssi_dizini/SSI.php');
/ssi_dizini/ forumla aynı dizindir. Settings.php den bakabilirsin.
Title: Re: Belirli bölümden rastgele konular.
Post by: Gökhan | Brestgerfich on October 02, 2009, 09:05:12 PM
<?php
require_once('/home/takxxxok/public_html/SSI.php');


olarak değiştirdim ancak yine de aynı problem cıktı :/
Title: Re: Belirli bölümden rastgele konular.
Post by: Ebu_Davud on October 08, 2009, 02:47:40 PM
Ben Display.temlate.php ye ekledim sorun olmadı

Forum dizinini adresini tam olarak bilmiyorum diyorsanız...Admin paneline girin-Sunucu ayarlarında-Smf dizini yazan yerin karşısındaki adresi olduğu gibi kopyalayın ve aşağıdaki forumdiziniadresi kısmına yapıştırın bu sayede SSI.php ile bağlantı kurup içindeki fonksiyonu çağırmış olursunuz

Ben Sitemde aşağıdaki koddan sonraya
// Show the previous/next links.
echo '
<td valign="bottom" align="', !$context['right_to_left'] ? 'right' : 'left', '" class="smalltext">
<span class="nav">', $context['previous_next'], '</span>
</td>
</tr>
</table>';



Aşağıdaki Kodun hemen üstüne ekledim

// Is this topic also a poll?
if ($context['is_poll'])
{
echo '


eklediğim kod

require("/home/mavi/public_html/SSI.php");
ssi_rastgeleKonu($context['current_board']);

Ekran Görüntüsü
http://img43.imageshack.us/img43/8395/43219886.jpg