Belirli bölümden rastgele konular.

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

Previous topic - Next topic

ℓσяєиz

@єνσℓυтιση™

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

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

buraya boardid çagırmak

Barış Dokumacı


MY THEMES

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

Elmacik

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

ℓσяєиz

#22
@Elmacik  sources e eklerse

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


gibi değer olarak okunması için contextle desteklemek gerekmiyormu fonksiyonu

Barış Dokumacı


MY THEMES

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

Evo™

Elmacık dediğin gibi ben messageindex.template.php de göstericem hangisini yapmam daha iyi olur.

Elmacik

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

Özgür

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

Evo™

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.

Elmacik

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

Evo™

Elmacik usta benim dediğimde yapılabilir mi zor mudur yani.

Özgür

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

Evo™

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.

Yağız...

@Я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>';
}

Özgür

Teşekkürler yağız çalışıyor. Yapımda emeği geçen herkese teşekkürler. =)
So Long

Elmacik

Arkadaşlar oradaki LIMIT 1 ifadesini 5 yapmakla 5 haber göstermiş olmazsınız, onu ayrıca yapmanız lazım.
Home of Elmacik

Shadow1243

#34
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 :


Özgür

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

Elmacik

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

Shadow1243

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

Ebu_Davud

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) [nofollow]" width="700px" height="100px"></iframe>

diye denedim olmadı

Bu kodu nasıl bir kodlar ile birlikte koyacağız
Hatim Yap [nofollow]
İlahi Dinle [nofollow]
Rss [nofollow]
İslami Forum [nofollow]

Minare

Bunu hem 1 hem de 2 için mod yapıp atsanız keşke =)

Tşk ler.

Advertisement: