Menü

İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır. Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz.

İletileri Göster Menü

Mesajlar - mucan54

#1
Ceşitli / Ynt: Count unread replies 2.0
01 Şub 2015, 18:18
Dene ve gör :D
#2
SMF 2.0.9 da denedim hata verdi. Sorun çözümü ise şöyle

Şu kodu http://custom.simplemachines.org/mods/index.php?action=parse    Load.php de değiştirmek gerekiyor.

//Count unread replies on index MOD- Start
    $user_info['unread_topics'] = 0;
    $user_info['unread_replies'] = 0;
   //Only count for members, and those who can see at least one board
    if (!$user_info['is_guest'] && !empty($user_info['query_wanna_see_board']))
            $request = $smcFunc['db_query']('', '
                SELECT MIN(lmr.id_msg), member_groups
                FROM {db_prefix}boards AS b
                    LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:id_member})
                WHERE {query_wanna_see_board}',
                array(
                    'id_member' => $id_member,
                )
            );
        list ($earliest_msg) = $smcFunc['db_fetch_row']($request);
        $smcFunc['db_free_result']($request);

        // This is needed in case of topics marked unread.
        if (empty($earliest_msg))
          $earliest_msg = 0;
        else
        {
            // This query is pretty slow, but it's needed to ensure nothing crucial is ignored.
            $request = $smcFunc['db_query']('', '
                SELECT MIN(id_msg)
                FROM {db_prefix}log_topics
                WHERE id_member = {int:id_member}',
 array(
 'id_member' => $id_member,
 )
 );
            list ($earliest_msg2) = $smcFunc['db_fetch_row']($request);
            $smcFunc['db_free_result']($request);

            if ($earliest_msg2 == 0)
                $earliest_msg2 = -1;
            $earliest_msg = min($earliest_msg2, $earliest_msg);
        }


        //Select the boards to choose from... all
        $request = $smcFunc['db_query']('', '
            SELECT b.id_board
            FROM {db_prefix}boards AS b
            WHERE {query_wanna_see_board}' . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? '
                AND b.id_board != ' . (int) $modSettings['recycle_board'] : ''));
        $boards = array();
        while ($row = $smcFunc['db_fetch_assoc']($request))
            $boards[] = $row['id_board'];
        $smcFunc['db_free_result']($request);

        if (empty($boards))
          fatal_lang_error('error_no_boards_selected');

        $query_this_board = 'id_board IN (' . implode(', ', $boards) . ')';
 
        //Count unread topics
        $request = $smcFunc['db_query']('', '
            SELECT COUNT(*), b.member_groups, t.*
           FROM {db_prefix}boards AS b
                LEFT JOIN {db_prefix}topics AS t ON (b.id_board = t.id_board)
                LEFT JOIN {db_prefix}log_topics AS lt ON (lt.id_topic = t.id_topic AND lt.id_member = {int:id_member})
                LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = t.id_board AND lmr.id_member = {int:id_member})
            WHERE {query_see_board}
                AND t.id_last_msg > {int:earliest_msg}
                AND IFNULL(lt.id_msg, IFNULL(lmr.id_msg, 0)) < t.id_last_msg',
            array(
 'earliest_msg' => $earliest_msg,
                'id_member' => $id_member,
                'query_see_board' => $query_this_board,
                )
             );
        list ($user_info['unread_topics']) = $smcFunc['db_fetch_row']($request);
        $smcFunc['db_free_result']($request);

 //Count unread replies
        $request = $smcFunc['db_query']('', '
            SELECT COUNT(DISTINCT t.id_topic)
            FROM ({db_prefix}boards AS b, {db_prefix}messages AS m)
                LEFT JOIN {db_prefix}topics AS t ON (b.id_board = t.id_board)
                LEFT JOIN {db_prefix}log_topics AS lt ON (lt.id_topic = t.id_topic AND lt.id_member = {int:id_member})
                LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = t.id_board AND lmr.id_member = {int:id_member})
            WHERE {query_see_board}
                AND m.id_topic = t.id_topic
                AND m.id_member = {int:id_member}
                AND IFNULL(lt.id_msg, IFNULL(lmr.id_msg, 0)) < t.id_last_msg',
            array(
                'id_member' => $id_member,
                'query_see_board' => $query_this_board,
                )
            );
        list ($user_info['unread_replies']) = $smcFunc['db_fetch_row']($request);
        $smcFunc['db_free_result']($request);
    }
//Count unread replies on index MOD- End


// Check for moderators and see if they have access to the board.
#3
Hocam aslında, dediğiniz plugin tarzıda olabilir yani, Haberdar Et(0)  Haberdar Et(3)  tarzı yapılması daha kolay sanırım.
#4
Aynen hocam
#5
Hocam nolur anlayın artık :D  benim mesajlarıma yazılan cevaplar umrumda değil. Beni ilgilendiren takip ettiğim, yani haberdar et butonuna tıkladığım konular...
#6
biliyorum onu ancak ben forumda gezinirken, takip ettiğim konularda bir yenilik olduğunu farkedebilmem için, ana sayfada da belirli olmasını istiyorum, bunuda yazının rengini değiştirerek yapmak istiyroum.
#7
hata verirken kurdum, çok hatası var, hallederim bi şekilde, hocam yazılan özelliklerinde haberdar etmeyle ilgili bir bölüm yok, eminsiniz değil mi haberdar edilmeyi seçilen konularıda kapsadığından.

"Yeni gönderilen iletileri göster.
İletilerime yazılan yeni yanıtları göster."
#8
Hocam site gitti :D
#9
Ana sayfada nasıl gösterecem peki, takip ettiğim konularda değişiklik olduğunu ?
#10
O zaman tamam onun kodlarını inceleyip benim istediğim şekilde ayarlayabilirim sanırım. Eğer takip ettiğim, ama cevap yazmamış olduğum konulara yazılan cevapları da algılıyorsa.
#11
Hocam benim anlatmak istediğim şey renkle ilgili değil, benim aradığım şey haberdar et dediğim konuda bir değişiklik olduğu zaman ana sayfaya eklediğim kısayolda bildirim geldiğini anlamak. Takip ettiğim konularda değişiklik olduğunu anlamak. Haberdar et dediğim konularda değişiklik olduğu zaman bunu takip etmek. Haberdar et dediğim konulara cevap yazıldığı zaman ana sayfaya eklediğim kısayol yazısını kırmızıya çevirmek. Haberdar et olabilir bu takip ettiğim konular olabilir, oraya ne yazdığım çok önemli değil, haberdar et dediğim konulardaki değişikliği tespit edip, yazının rengini değiştirebilmek.


#12
Var hocam, örneğin ben Phtoshop konusundaki bir konuyu takip ediyorum, başka deneme hesabıylada oraya yorum yapıyorum, deneyebilmek için.

#13
Hocam sanırım notify ile ilgili birşeyler de olması lazım konuda, bizim kod sadece unreadları alıyo, bize lazım olan unread olup notifyed de olması gerek. Yani hem okunmamış hem de haberdar et olarak seçilmiş olması gerek.

#14
Hocam ekledim kodu ancak, haberdar et dediğim konulara girdim ama değişmedi kırmızı olarak kaldı. Yeni konu olmamasına rağmen.

#15
Evet böylece başka konularda dolaşırken, takip ettiği konuda değişiklik olduğu zaman kaçırmayacak, aslında bu iletilerime yazılan yeni yanıtlar yeni konular içinde yapılabilirse kullanışlı olabilir. Siz ne aşamadasınız, ben birkaç gündür uğraşıyorum ama çalışır bir kod elde edemedim, çok yoruldum.