Belirli bölümden rastgele konular.

Started by Özgür, October 29, 2008, 01:07:35 AM

Previous topic - Next topic

Özgür

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

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.
So Long

PureLove™

dökümantasyonda SSI rehberi diye bir konu var incele derim  ;)
- -

Herkesi İnsan Hakları Konusunda Düşünmeye Çağırıyoruz...
Hayat, İclal Aydın ile güzeldir.
www.iclalaydinfan.com

Özgür

SSI var olan birşey değil. inan en az 100 defa okudum o konuyu. Yeni bir fonksiyon gerekli.
So Long

#Serseri

Я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

Evo™

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.

Özgür

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.
So Long

Özgür

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.
So Long

1SeVDa

valla bende ıstıyorummm arkadaslar super olur ya
Seveni Sev SeVmeYeni terKet....
https://birevlilik.com
https://webdizin.com

Tias_

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.

Özgür

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?
So Long

Tias_

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

ℓσяєиz

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

Barış Dokumacı


MY THEMES

The greates enemy will hide in the last place you would ever lock..

Yağız...

ssi_recentTopics fonksiyonunda birkaç değişiklik yaparsanız olabilir. Sadece konuları karışık olarak çekmenizi sağlayacak bir kod gerekiyor.

ℓσяєиz

#13
@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

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 =)

Barış Dokumacı


MY THEMES

The greates enemy will hide in the last place you would ever lock..

Elmacik

#14
Şö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

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.)
Home of Elmacik

Evo™

Arkadaşlar her ikinize de teşekkürler sadece SSI'ye ekleme yapılarak daha kolay olur gibime geliyor tekrar tekrar teşekkürler.

ℓσяєиz

helal olsun abi iki yoluda yapmış olduk isteyen istediğini yapar teşekürler abi yaptıgını bilsem yapmazdım :)

Barış Dokumacı


MY THEMES

The greates enemy will hide in the last place you would ever lock..

Evo™

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.

Elmacik

Ç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.
Home of Elmacik

Evo™

Çok teşekkürler Elmacık deneyeceğim hemen Allah razı olsun.

Advertisement: