News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

Belirli bölümden rastgele konular.

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

Previous topic - Next topic

Özgür

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

Ebu_Davud

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

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 [nofollow]
Hatim Yap [nofollow]
İlahi Dinle [nofollow]
Rss [nofollow]
İslami Forum [nofollow]

Gökhan | Brestgerfich

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ü ?


grafitus

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.

Gökhan | Brestgerfich

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.

Özgür

SSI.phpyi index.template'ye dahil ettiniz mi?
So Long

Gökhan | Brestgerfich


Özgür

index.template.php'de bul
<?php
altına ekle
require_once('/ssi_dizini/SSI.php');
/ssi_dizini/ forumla aynı dizindir. Settings.php den bakabilirsin.
So Long

Gökhan | Brestgerfich

<?php
require_once('/home/takxxxok/public_html/SSI.php');


olarak değiştirdim ancak yine de aynı problem cıktı :/

Ebu_Davud

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 [nofollow]
Hatim Yap [nofollow]
İlahi Dinle [nofollow]
Rss [nofollow]
İslami Forum [nofollow]

Advertisement: