Önceki Sonraki Butonları Yerine Konu Başlıkları Olsun

Başlatan Sosyal Öğretmeni, 27 Ekm 2014, 20:58

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçiler konuyu incelemekte.

Sosyal Öğretmeni

Önceki Sonraki Butonları Yerine Konu Başlıkları Olsun

sources/Display.php içinde
Bul

$context['previous_next'] = $modSettings['enablePreviousNext'] ? '<a href="' . $scripturl . '?topic=' . $topic . '.0;prev_next=prev#new">' . $txt['previous_next_back'] . '</a> <a href="' . $scripturl . '?topic=' . $topic . '.0;prev_next=next#new">' . $txt['previous_next_forward'] . '</a>' : '';

Bununla Değiştir
$context['previous_next'] = evo_previous_next();

Bul
?>

Üstüne Ekle
// Previous_next Title


function evo_previous_next()
{
   global $smcFunc, $modSettings, $board_info, $scripturl, $txt, $topic, $board, $user_info;
   
   if (!$modSettings['enablePreviousNext'])
      return;
   
   // First super query
   $query = 'SELECT m.subject, m.id_topic
      FROM {db_prefix}topics AS t
         INNER JOIN {db_prefix}topics AS t2 ON (' . (empty($modSettings['enableStickyTopics']) ? '
         t2.id_last_msg {raw:way} t.id_last_msg' : '
         (t2.id_last_msg {raw:way} t.id_last_msg AND t2.is_sticky {raw:way}= t.is_sticky) OR t2.is_sticky {raw:way} t.is_sticky') . ')
         LEFT JOIN {db_prefix}messages AS m ON (t2.id_first_msg = m.id_msg)
      WHERE t.id_topic = {int:current_topic}
         AND t2.id_board = {int:current_board}' . (!$modSettings['postmod_active'] || allowedTo('approve_posts') ? '' : '
         AND (t2.approved = {int:is_approved} OR (t2.id_member_started != {int:id_member_started} AND t2.id_member_started = {int:current_member}))') . '
      ORDER BY' . (empty($modSettings['enableStickyTopics']) ? '' : ' t2.is_sticky{raw:order},') . ' t2.id_last_msg{raw:order}
      LIMIT 1';
     
   // No luck? try with this!
   $query2 = 'SELECT m.subject, m.id_topic
         FROM {db_prefix}topics AS t
            LEFT JOIN {db_prefix}messages AS m ON (m.id_topic = t.id_first_msg)
         WHERE t.id_board = {int:current_board}' . (!$modSettings['postmod_active'] || allowedTo('approve_posts') ? '' : '
            AND (t.approved = {int:is_approved} OR (t.id_member_started != {int:id_member_started} AND t.id_member_started = {int:current_member}))') . '
         ORDER BY' . (empty($modSettings['enableStickyTopics']) ? '' : ' t.is_sticky{raw:order},') . ' t.id_last_msg{raw:order}
         LIMIT 1';
     
   // Seek first title!
   $request = $smcFunc['db_query']('', $query,
      array(
         'current_board' => $board,
         'current_member' => $user_info['id'],
         'current_topic' => $topic,
         'is_approved' => 1,
         'id_member_started' => 0,
         'way' => '>',
         'order' => '',
      )
   );


   // Nothing? try simple!
   if ($smcFunc['db_num_rows']($request) == 0)
   {
      $smcFunc['db_free_result']($request);


      $request = $smcFunc['db_query']('', $query2,
         array(
            'current_board' => $board,
            'current_member' => $user_info['id'],
            'is_approved' => 1,
            'id_member_started' => 0,
            'order' => '',
         )
      );
   }


   // Finally!
   list ($prev_subject, $prev_id) = $smcFunc['db_fetch_row']($request);
   $smcFunc['db_free_result']($request);
         
   // First query for next topic
   $request = $smcFunc['db_query']('', $query,
      array(
         'current_board' => $board,
         'current_member' => $user_info['id'],
         'current_topic' => $topic,
         'is_approved' => 1,
         'id_member_started' => 0,
         'way' => '<',
         'order' => ' DESC',
      )
   );


   // If no luck, try with this!
   if ($smcFunc['db_num_rows']($request) == 0)
   {
      $smcFunc['db_free_result']($request);


      $request = $smcFunc['db_query']('', $query2,
         array(
            'current_board' => $board,
            'current_member' => $user_info['id'],
            'is_approved' => 1,
            'id_member_started' => 0,
            'order' => ' DESC',
         )
      );
   }


   // Gotcha!
   list ($next_subject, $next_id) = $smcFunc['db_fetch_row']($request);
   $smcFunc['db_free_result']($request);
   
   return '<a href="' . $scripturl . '?topic=' . $prev_id . '.0">&laquo; ' . $prev_subject . '</a> | <a href="' . $scripturl . '?topic=' . $next_id . '.0">' . $next_subject . ' &raquo;</a>';
}


Konu kardeşim   gencveteriner.com aittir... Yani alıntıdır.
Herkes göründüğü gibi değil.

tarantula901

Teşekkürler güzel bir özellik ekledin cunku sonrakı yada oncekı olması yerıne konu baslıgı olması tıklanmayı artıracaktır ve arama motorları ıcın cok onemlıdır
Sitenizde işlem yapmadan önce mutlaka yedek alın, yedek alın yedek almayı unutmayın her şeyden önce bu önemli

Pm'den ve Skype'den istenilen destekler ücretlidir. Ücret ödememek için lütfen sitede sorunuzu konu açarak sorabilirsiniz.

Ücretli Smf Destek İçin

endorze

Merhaba,
Yeni konu açmamak için buradan yazıyorum.
Benim sorunum şu: bu modifikasyonu manuel olarak kurdum fakat kategori içerisindeki son konuya tıkladığım zaman sadece " Ã,« " çıkıyor. Yani konu ismi yok. Ortalardaki konulara tıkladığımda önceki ve sonraki konuları gösteriyor orada sıkıntı yok ama ne zaman ki son konuya gelirsem orada sıkıntı oluyor. Normalde bir sonraki kategorinin ilk mesajını gösterirdi fakat modu kurduktan sonra "http://siteadi.com/index.php?topic=.0" şeklinde bağlantı veriyor.
Lütfen yardımcı olur musunuz nasıl düzeltebilirim?
Ekran görüntüsü: http://i.hizliresim.com/BPyNvg.png

tarantula901

O kısım konunun bittiğinin anlamına gelmektedir. normal olarak bu şekilde bir kaç siteede kontrol ettim aynı şekilde.
Sitenizde işlem yapmadan önce mutlaka yedek alın, yedek alın yedek almayı unutmayın her şeyden önce bu önemli

Pm'den ve Skype'den istenilen destekler ücretlidir. Ücret ödememek için lütfen sitede sorunuzu konu açarak sorabilirsiniz.

Ücretli Smf Destek İçin

endorze

Modifikasyonları yüklemeden önce test amaçlı açtığım bir site var. Modifikasyon bu sitede yüklü değil ama konular bittiğinde bile "önceki konu - sonraki konu" sürekli kalıyor. Herhangi bir kategorideki konular bittiği zaman sonraki konuya tıkladığımda başka bir kategorinin ilk konusuna yönlendiriyor.
smf.gen.tr'de yani burada da son konuya gelip sonraki konu dediğimde bu kategorinin ilk konusuna yönlendiriyor.
Ayrıca bu durum bazı xhtml hatalarınıda beraberinde getirdi. Bir çözüm üretebilir miyiz? Normalde bu mod bu şekilde mi çalışıyor?

tarantula901

Displaya eklediğiniz kodu kaldırıp şu kodu deneyin bakın istediğiniz bu şekildemi

function evo_previous_next()
{
    global $smcFunc, $modSettings, $board_info, $scripturl, $txt, $topic, $board, $user_info;
if (!$modSettings['enablePreviousNext'])
return;

if ($board_info['num_topics'] == 1)
$query = 'SELECT m.subject, m.id_topic
FROM {db_prefix}topics AS t
INNER JOIN {db_prefix}topics AS t2 ON (' . (empty($modSettings['enableStickyTopics']) ? '
t2.id_last_msg {raw:way} t.id_last_msg' : '
(t2.id_last_msg {raw:way} t.id_last_msg AND t2.is_sticky {raw:way}= t.is_sticky) OR t2.is_sticky {raw:way} t.is_sticky') . ')
LEFT JOIN {db_prefix}messages AS m ON (t2.id_first_msg = m.id_msg)
WHERE t.id_topic = {int:current_topic}
AND t2.id_board = {int:current_board}' . (!$modSettings['postmod_active'] || allowedTo('approve_posts') ? '' : '
AND (t2.approved = {int:is_approved} OR (t2.id_member_started != {int:id_member_started} AND t2.id_member_started = {int:current_member}))') . '
ORDER BY' . (empty($modSettings['enableStickyTopics']) ? '' : ' t2.is_sticky{raw:order},') . ' t2.id_last_msg{raw:order}
LIMIT 1';

$query2 = 'SELECT m.subject, m.id_topic
FROM {db_prefix}topics AS t
LEFT JOIN {db_prefix}messages AS m ON (m.id_topic = t.id_first_msg)
WHERE t.id_board = {int:current_board}' . (!$modSettings['postmod_active'] || allowedTo('approve_posts') ? '' : '
AND (t.approved = {int:is_approved} OR (t.id_member_started != {int:id_member_started} AND t.id_member_started = {int:current_member}))') . '
ORDER BY' . (empty($modSettings['enableStickyTopics']) ? '' : ' t.is_sticky{raw:order},') . ' t.id_last_msg{raw:order}
LIMIT 1';

$request = $smcFunc['db_query']('', $query,
array(
'current_board' => $board,
'current_member' => $user_info['id'],
'current_topic' => $topic,
'is_approved' => 1,
'id_member_started' => 0,
'way' => '>',
'order' => '',
)
);

if ($smcFunc['db_num_rows']($request) == 0)
{
$smcFunc['db_free_result']($request);

$request = $smcFunc['db_query']('', $query2,
array(
'current_board' => $board,
'current_member' => $user_info['id'],
'is_approved' => 1,
'id_member_started' => 0,
'order' => '',
)
);
}

list ($prev_subject, $prev_id) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);

$request = $smcFunc['db_query']('', $query,
array(
'current_board' => $board,
'current_member' => $user_info['id'],
'current_topic' => $topic,
'is_approved' => 1,
'id_member_started' => 0,
'way' => '<',
'order' => ' DESC',
)
);

if ($smcFunc['db_num_rows']($request) == 0)
{
$smcFunc['db_free_result']($request);

$request = $smcFunc['db_query']('', $query2,
array(
'current_board' => $board,
'current_member' => $user_info['id'],
'is_approved' => 1,
'id_member_started' => 0,
'order' => ' DESC',
)
);
}

list ($next_subject, $next_id) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);

$final_text = '';
$first = false;

if (isset($prev_subject) && !empty($prev_subject) && trim($prev_subject) != '')
{
$first = true;
$final_text .= '<a href="' . $scripturl . '?topic=' . $prev_id . '.0">&laquo; ' . $prev_subject . '</a>';
}

if (isset($next_subject) && !empty($next_subject) && trim($next_subject) != '')
{
if ($first)
$final_text .= ' | ';

$final_text .= '<a href="' . $scripturl . '?topic=' . $next_id . '.0">' . $next_subject . ' &raquo;</a>';
}

return $final_text;
}
Sitenizde işlem yapmadan önce mutlaka yedek alın, yedek alın yedek almayı unutmayın her şeyden önce bu önemli

Pm'den ve Skype'den istenilen destekler ücretlidir. Ücret ödememek için lütfen sitede sorunuzu konu açarak sorabilirsiniz.

Ücretli Smf Destek İçin