Home Webboard ArticlesKnowledges  

ผู้เขียน หัวข้อ: Advanced Recent Posts / Topics  (อ่าน 25597 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ LittleCat

  • ไม่เต็มบาท
  • Administrator
  • *
  • กระทู้: 1608
  • เห็นด้วย&ขอบคุณ: 434
  • ตามโลกไม่ทัน
    • บอร์ดแมวเมา
Advanced Recent Posts / Topics
« เมื่อ: 24, มกราคม 2010, 06:14:52 PM »
แต่เดิมหน้าแรกเว็บบอร์ด ตรงส่วนของ "กระทู้เมื่อเร็วๆ นี้" จะเรียงตามกระทู้ที่ตั้งไป ไม่ว่าจะเป็นกระทู้เดียวกันหรือไม่ มันก็จะ Re: ลงไปเรื่อยๆ



ถ้าหากว่ามีการ Re: ในหัวข้อเดียวกัน หลายๆ กระทู้ ก็จะเป็นดังเช่นรูปข้างบน กระทู้อื่นๆ จะถูกดันตกกรอบนี้ไปหมด
Mod Advanced Recent Posts / Topics สามารถนำมาใช้ปรับแต่งกระทู้เมื่อเร็วๆ นี้ได้

อ้างถึง
Mod Name:
Advanced Recent Posts / Topics
Created By: Marook
Type: Feature Enhancement
First Created: January 16, 2008, 05:16:21 PM
Last Modified: January 23, 2008, 02:07:52 AM
Latest Version: 1.1
Compatible With: 1.1.4
Total Downloads: 33912


จะใช้ติดตั้งผ่านหน้าบอร์ด หรือจะทำแบบแมนนวลก็ได้

ในกระทู้นี้จะขอทดลองทำแบบแมนนวล


อย่าคิดว่าตนเองเก่ง อย่าคิดว่าคนอื่นขาดตนเองไม่ได้ -- หลักการในการทำงานของแมวขี้เมา

ออฟไลน์ LittleCat

  • ไม่เต็มบาท
  • Administrator
  • *
  • กระทู้: 1608
  • เห็นด้วย&ขอบคุณ: 434
  • ตามโลกไม่ทัน
    • บอร์ดแมวเมา
Re: Advanced Recent Posts / Topics
« ตอบกลับ #1 เมื่อ: 24, มกราคม 2010, 06:15:02 PM »
File Edits

./Sources/Recent.php
Find:
อ้างถึง
   global $scripturl, $txt, $db_prefix, $user_info, $modSettings, $func;

   // Find all the posts.  Newer ones will have higher IDs.  (assuming the last 20 * number are accessable...)
   // !!!SLOW This query is now slow, NEEDS to be fixed.  Maybe break into two?
   $request = db_query("
      SELECT
         m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG,
         IFNULL(mem.realName, m.posterName) AS posterName, t.ID_BOARD, b.name AS bName,
         LEFT(m.body, 384) AS body, m.smileysEnabled
      FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
         LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
      WHERE m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $showlatestcount) . "
         AND t.ID_TOPIC = m.ID_TOPIC
         AND b.ID_BOARD = t.ID_BOARD" . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? "
         AND b.ID_BOARD != $modSettings[recycle_board]" : '') . "
         AND $user_info[query_see_board]
      ORDER BY m.ID_MSG DESC
      LIMIT $showlatestcount", __FILE__, __LINE__);
Replace with:
โค๊ด: [Select]
global $scripturl, $txt, $db_prefix, $user_info, $modSettings, $func, $settings, $ID_MEMBER;

// Find all the posts.  Newer ones will have higher IDs.  (assuming the last 20 * number are accessable...)
// !!!SLOW This query is now slow, NEEDS to be fixed.  Maybe break into two?
if (!empty($modSettings['recent_topics']) && $modSettings['recent_topics']){
    $request = db_query("
   SELECT
   m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
   IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
   IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
   IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon, t.numReplies, t.numViews
   FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}messages AS ms)
   LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
   LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
   LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
   WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 35 * min($showlatestcount, 5)) . "
   AND t.ID_LAST_MSG = m.ID_MSG
   AND b.ID_BOARD = t.ID_BOARD" . (empty($exclude_boards) ? '' : "
   AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
   AND $user_info[query_see_board]
   AND ms.ID_MSG = t.ID_FIRST_MSG
   ORDER BY t.ID_LAST_MSG DESC
   LIMIT $showlatestcount", __FILE__, __LINE__);
} else {
      $request = db_query("
     SELECT
     m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG,
     IFNULL(mem.realName, m.posterName) AS posterName, t.ID_BOARD, b.name AS bName,
     LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon, t.numViews, t.numReplies
     FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
     LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
     WHERE m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $showlatestcount) . "
     AND t.ID_TOPIC = m.ID_TOPIC
     AND b.ID_BOARD = t.ID_BOARD" . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? "
     AND b.ID_BOARD != $modSettings[recycle_board]" : '') . "
     AND $user_info[query_see_board]
     ORDER BY m.ID_MSG DESC
     LIMIT $showlatestcount", __FILE__, __LINE__);
}

Find:
อ้างถึง
         ),
         'topic' => $row['ID_TOPIC'],
Add After:
โค๊ด: [Select]
'icon' => file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? $settings['images_url'] . '/post/' . $row['icon'] . '.gif' : $settings['default_images_url'] . '/post/' . $row['icon'] . '.gif',
'views' => $row['numViews'],
'replies' => $row['numReplies'],



./Sources/ModSettings.php

Find:
อ้างถึง
         // Who's online.
         array('check', 'who_enabled'),
Replace with:
โค๊ด: [Select]
'',
      // Recent topics ?
      array('check', 'recent_topics',null, &$txt['recent_topics']),



./Themes/default/BoardIndex.template.php
Find:
อ้างถึง
                  <table cellpadding="0" cellspacing="0" width="100%" border="0">';
Replace with:
โค๊ด: [Select]
<table cellpadding="0" cellspacing="1" width="100%" border="0">
           <tr>
               <td class="catbg2" style="text-align:left;" colspan="2">', $txt[70] ,'</td>
               <td class="catbg2" style="text-align:center;">', $txt[110] ,'</td>
               <td class="catbg2" style="text-align:center;">', $txt[301] ,'</td>
               <td class="catbg2" style="text-align:center;">', $txt[20] ,'</td>
               <td class="catbg2" style="text-align:center;">', $txt[29] ,'</td>
               <td class="catbg2" style="text-align:right;">', $txt[317] ,'</td>
             </tr>';

Find:
อ้างถึง
         foreach ($context['latest_posts'] as $post)
            echo '
                     <tr>
                        <td class="middletext" valign="top"><b>', $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
                        <td class="middletext" align="right" valign="top" nowrap="nowrap">', $post['time'], '</td>
                     </tr>';
Replace with:
โค๊ด: [Select]
$cnt = 0;
foreach ($context['latest_posts'] as $post){
         $cnt++;
         $class = ($cnt % 2) ? 'windowbg' : 'windowbg2';
        
        echo '
<tr>
                <td class="', $class, '"><img src="', $post['icon'] , '" alt="" /></td>
<td class="', $class, '"" title="', $post['preview'] ,'">', $post['link'], '</td>
                <td class="', $class, '"" style="text-align:center;">', $post['replies'], '</td>
<td class="', $class, '"" style="text-align:center;">', $post['views'], '</td>
                <td class="', $class, '"" style="text-align:center;">',$post['board']['link'], '</td>
                <td class="', $class, '"" style="text-align:center;">',$post['poster']['link'], '</td>
<td class="', $class, '"" style="text-align:right;" nowrap="nowrap">', $post['time'], '</td>
</tr>';
       }



./Themes/default/languages/ModSettings.english.php

Find (at the end of the file):
อ้างถึง
?>
Add before:
โค๊ด: [Select]
$txt['recent_topics'] = 'Show recent topics instead of recent posts';


Code
add_settings.php
This file should be able to execute standalone.
อย่าคิดว่าตนเองเก่ง อย่าคิดว่าคนอื่นขาดตนเองไม่ได้ -- หลักการในการทำงานของแมวขี้เมา

ออฟไลน์ LittleCat

  • ไม่เต็มบาท
  • Administrator
  • *
  • กระทู้: 1608
  • เห็นด้วย&ขอบคุณ: 434
  • ตามโลกไม่ทัน
    • บอร์ดแมวเมา
Re: Advanced Recent Posts / Topics
« ตอบกลับ #2 เมื่อ: 24, มกราคม 2010, 06:15:15 PM »
เมื่อแก้ไขเสร็จแล้ว ก็จะได้เช่นนี้


เมื่อเราเข้าไปยัง Admin >> Features and Options >> Layout and Options จะมีคำสั่งเพิ่มขึ้นมาคือ Show recent topics instead of recent posts


อย่าลืมไปแก้ในไฟล์ ModSettings.thai.php เช่นกัน เพื่อให้แสดงผลภาษาไทย




ถ้าเราติ๊กเลือกตรงนี้ กระทู้เมื่อเร็วๆ นี้ก็จะแสดงแค่ชื่อหัวข้อที่เพิ่งมีการตอบกระทู้ จะไม่มีการ Re: ไล่ๆ กันหลายๆ รีไพลอีกต่อไป

อย่าคิดว่าตนเองเก่ง อย่าคิดว่าคนอื่นขาดตนเองไม่ได้ -- หลักการในการทำงานของแมวขี้เมา

ออฟไลน์ LittleCat

  • ไม่เต็มบาท
  • Administrator
  • *
  • กระทู้: 1608
  • เห็นด้วย&ขอบคุณ: 434
  • ตามโลกไม่ทัน
    • บอร์ดแมวเมา
Re: Advanced Recent Posts / Topics
« ตอบกลับ #3 เมื่อ: 24, มกราคม 2010, 06:15:28 PM »
ถ้าหากไม่ชอบให้มันแบ่งเป็นสองสีอย่างนี้ แก้ได้สองวิธี คือ
หนึ่ง. เปลี่ยนสีตรงส่วนของ 'windowbg' และ 'windowbg2' ในไฟล์ Style.css
สอง. เปลี่ยนโค้ดในไฟล์ BoardIndex.template.php ให้เป็นสีเดียวกัน
โค๊ด: [Select]
$class = ($cnt % 2) ? 'windowbg' : 'windowbg';
เช่นนี้เป็นต้น


ที่เหลืออื่นๆ ก็ยังสามารถปรับแต่งไปเรื่อยๆ จนกว่าเราจะพอใจ



อย่าคิดว่าตนเองเก่ง อย่าคิดว่าคนอื่นขาดตนเองไม่ได้ -- หลักการในการทำงานของแมวขี้เมา

ออฟไลน์ capuchinz

  • Ju
  • *
  • กระทู้: 3
  • เห็นด้วย&ขอบคุณ: 2
Re: Advanced Recent Posts / Topics
« ตอบกลับ #4 เมื่อ: 06, กุมภาพันธ์ 2010, 09:32:16 PM »
สอบถามนะครับ ถ้าผมใช้ themes อื่น นี่ทำเหมือนกันเลย หรือต้องเปลี่ยนจาก default เป็น theme ของเราเอง
พอดีลองแล้วไม่ขึ้นอะครับ

ออฟไลน์ เซียวเหล่งนึ่งฯ

  • Global Moderator
  • *
  • กระทู้: 5547
  • เห็นด้วย&ขอบคุณ: 2148
    • SMFjusthost.com
Re: Advanced Recent Posts / Topics
« ตอบกลับ #5 เมื่อ: 06, กุมภาพันธ์ 2010, 09:54:51 PM »
เอาธีมของเราเป็นหลักก่อน 
ส่วนไฟล์ไหนที่ในธีมเราไม่มีให้ไปแก้ในธีมดีฟอลด์ 

ออฟไลน์ LittleCat

  • ไม่เต็มบาท
  • Administrator
  • *
  • กระทู้: 1608
  • เห็นด้วย&ขอบคุณ: 434
  • ตามโลกไม่ทัน
    • บอร์ดแมวเมา
Re: Advanced Recent Posts / Topics
« ตอบกลับ #6 เมื่อ: 06, กุมภาพันธ์ 2010, 09:56:16 PM »

อ่า ...
แก้หมดทุกไฟล์ตามแบบแมนนวลของ SMF รึเปล่าอ่ะจ๊ะ?

ถ้าใช่ ก็ไม่รู้ว่ามันได้ไม่ได้แล้วหละ แหะๆ
เพราะปกติเหมียวเล็กจะใช้แต่ theme default
ยังไม่เคยลองกับธีมอื่นๆ นอกเหนือจากนี้

อันที่จริง ยังไม่เคยใช้ธีมอื่น แหะๆๆ
 :adore:



ไอ๊หยา โดนแซง
อย่าคิดว่าตนเองเก่ง อย่าคิดว่าคนอื่นขาดตนเองไม่ได้ -- หลักการในการทำงานของแมวขี้เมา

ออฟไลน์ jeepono

  • Just M
  • ***
  • กระทู้: 59
  • เห็นด้วย&ขอบคุณ: 7
Re: Advanced Recent Posts / Topics
« ตอบกลับ #7 เมื่อ: 04, มิถุนายน 2010, 03:35:33 AM »
ชอบเว็บ จัส จังเลยค่ะ อบอุ่นเป้นกันเอง มากๆ  :smitten:

ออฟไลน์ Tcomputer

  • Just Staff
  • *
  • กระทู้: 600
  • เห็นด้วย&ขอบคุณ: 498
Re: Advanced Recent Posts / Topics
« ตอบกลับ #8 เมื่อ: 05, มิถุนายน 2010, 11:45:24 AM »
./Sources/ModSettings.php

Find:
อ้างถึง
        // Who's online.
         array('check', 'who_enabled'),

Replace with:
โค๊ด: [Select]
'',
      // Recent topics ?
      array('check', 'recent_topics',null, &$txt['recent_topics']),

ขออภัยด้วยนะครับถ้าผิดพลาดผมเพิ่งหัดทำ ไม่ทราบจากข้อความนี้ถูกต้องหรือเปล่าครับผม พอดีผมไปดูในไฟล์ Modsettings แล้วจะเห็นโค๊ตด้านล่างต่อจาก //Who's Online เป็น //recent topics นะครับผม

ออฟไลน์ เซียวเหล่งนึ่งฯ

  • Global Moderator
  • *
  • กระทู้: 5547
  • เห็นด้วย&ขอบคุณ: 2148
    • SMFjusthost.com
Re: Advanced Recent Posts / Topics
« ตอบกลับ #9 เมื่อ: 05, มิถุนายน 2010, 11:55:38 AM »
ถ้ามันมีอยู่แล้วแสดงว่าได้เมนวลไปแล้วรอบนึง
หรือได้ลงม็อดผ่านทางศูนย์จัดการแพ็คเกจไปแล้ว 

ก็ต้องดูว่า ถ้ามันมีอยู่  ก็ไม่ต้องใส่เพิ่ม

ออฟไลน์ Tcomputer

  • Just Staff
  • *
  • กระทู้: 600
  • เห็นด้วย&ขอบคุณ: 498
Re: Advanced Recent Posts / Topics
« ตอบกลับ #10 เมื่อ: 26, กรกฎาคม 2010, 05:52:13 AM »
ผมเจอปัญหาอย่างหนึ่งเข้าครับ ในส่วนนี้กรณีหัวข้ออื่นไม่ได้มีการเคลื่อนไหว แล้วมีคนมาตอบหัวข้อเดียวซ้ำๆเยอะๆ  ตรงส่วนศูนย์กลางข้อมูล จากที่ผมตั้งไว้ 15  มันจะย่นลงไม่ถึง 15 กระทู้ครับผม แต่ถ้าผมลองปิด Code ที่ทำ มันถึงจะแสดงได้ครบ 15 หัวข้อ เป็น Re นะครับผม ไม่ทราบว่าปัญหานี้ต้องแก้ไขตรงจุดไหนครับผม




ออฟไลน์ Mr.-[CAT]-

  • Just M
  • ***
  • กระทู้: 76
  • เห็นด้วย&ขอบคุณ: 60
  • เพศ: ชาย
    • Oๅศsมinw
Re: Advanced Recent Posts / Topics
« ตอบกลับ #11 เมื่อ: 26, กรกฎาคม 2010, 07:49:40 AM »
ชอบเว็บ จัส จังเลยค่ะ อบอุ่นเป้นกันเอง มากๆ  :smitten:

เห็นด้วยเป็นอย่างยิ่งกับเว็บนี้
-สิ้uiiสVจัunsๅ Is iวaๅที่isๅwsๅกจๅกกัu-

ออฟไลน์ LittleCat

  • ไม่เต็มบาท
  • Administrator
  • *
  • กระทู้: 1608
  • เห็นด้วย&ขอบคุณ: 434
  • ตามโลกไม่ทัน
    • บอร์ดแมวเมา
Re: Advanced Recent Posts / Topics
« ตอบกลับ #12 เมื่อ: 27, กรกฎาคม 2010, 07:33:53 AM »
ขอบคุณคะ
อย่าคิดว่าตนเองเก่ง อย่าคิดว่าคนอื่นขาดตนเองไม่ได้ -- หลักการในการทำงานของแมวขี้เมา

ออฟไลน์ sam99

  • Ju
  • *
  • กระทู้: 12
  • เห็นด้วย&ขอบคุณ: 2
Re: Advanced Recent Posts / Topics
« ตอบกลับ #13 เมื่อ: 13, กันยายน 2011, 02:45:59 PM »
ผมเจอปัญหาอย่างหนึ่งเข้าครับ ในส่วนนี้กรณีหัวข้ออื่นไม่ได้มีการเคลื่อนไหว แล้วมีคนมาตอบหัวข้อเดียวซ้ำๆเยอะๆ  ตรงส่วนศูนย์กลางข้อมูล จากที่ผมตั้งไว้ 15  มันจะย่นลงไม่ถึง 15 กระทู้ครับผม แต่ถ้าผมลองปิด Code ที่ทำ มันถึงจะแสดงได้ครบ 15 หัวข้อ เป็น Re นะครับผม ไม่ทราบว่าปัญหานี้ต้องแก้ไขตรงจุดไหนครับผม

เป็นปัญหาเดียวกันเลยครับ จะแก้กำหนดตัวเลขให้ตรง จะต้องแก้ตรงไหนครับ (ขอให้กระทู้เดิม ถามต่อเลยครับ)

ออฟไลน์ Sriiam

  • Ju
  • *
  • กระทู้: 11
  • เห็นด้วย&ขอบคุณ: 6
Re: Advanced Recent Posts / Topics
« ตอบกลับ #14 เมื่อ: 06, ตุลาคม 2011, 10:57:20 PM »
ยอม (พักยก) :embarrassed:
ก่อนหน้านี้เคยปรับแต่งไปแล้ว ได้แนวมาจากอีกกระทูหนึ่ง

ทำแล้ว ออกมาเป็นอย่างนี้
http://imageshack.us/photo/my-images/17/000zqt.jpg/ [nofollow]

แต่อยากเปลี่ยนใหม่ มาทำตามกระทู้นี้ ลง mod ก็แล้ว manual ก็แล้ว จึงงงไปใหญ่ ไล่จนตาลาย  :cheesy:
ขอพักยกไว้ก่อน (แต่ยังไม่ยอม 555)

แนะนำท่านอื่น ๆ หากอยากทำได้ตามกระทู้นี้ ต้องไม่เคยปรับแต่งตรงส่วนนี้มาก่อน
ไม่งั้นตาลายแน่ (ขอบอก... :tickedoff:)

ของผมตามลบตามแก้ กลับมาได้เหมือนเดิม  ดีใจเหมือนกับทำได้ใหม่ ๆ เลย  :yaahoo:

กระทู้ก็สอนละเอียดดีครับ

แต่สงสัยอยู่ตรงนี้
โค๊ด: [Select] [nofollow]
         ),
         'topic' => $row['ID_TOPIC'],

ผมค้นหาแล้ว มันมีอยู่ 2 ช่วง ไม่รู้ใส่อันไหน แต่ก็มั่วไปทั้ง 2 แล้ว (ต้องค้นจนจบหน้านะครับ)

โค๊ด: [Select] [nofollow]
'',
      // Recent topics ?
      array('check', 'recent_topics',null, &$txt['recent_topics']),

ตรงเครื่องหมาย '', ด้านบนนั้น ผมว่ามันมีอยู่แล้วนะ จะซ้ำกัน 2 อันหรือเปล่า
ฝากถามผู้รู้หน่อยครับ

ขอบคุณทีมงาน justusers.net

 

Sitemap 1 2 3 4 5 6 
Back to top