ผู้เขียน หัวข้อ: วิธีย้ายกระทู้เมื่อเร็วๆนี้มาไว้ด้านบน2  (อ่าน 1863 ครั้ง)

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

ออฟไลน์ smf

  • [color=green][i]"ถ้าคุณไม่สามารถอธิบายอย่างง่ายๆ ให้คนอื่นเข้าใจได้แล้วล่ะก็ แสดงว่าคุณยังเข้าใจมันไม่ดีพอ"[/i][/color]
  • Administrator
  • Hero Member
  • *****
  • กระทู้: 1,368
  • พอยท์: 5
    • ดูรายละเอียด
    • pordoo.com
    • อีเมล์
1. สร้างไฟล์ชื่อ showrecent.php แล้วเขียนโค้ดนี้ลงไปใน showrecent.php
โค๊ด: [Select]
<?php
function ShowRecentTopicsOnBoardIndex($num_recent 8$exclude_boards null$include_boards null$output_method 'echo')
{
    global 
$context$settings$scripturl$txt$db_prefix$user_info;
    global 
$modSettings$smcFunc;

    if (
$exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
        
$exclude_boards = array($modSettings['recycle_board']);
    else
        
$exclude_boards = empty($exclude_boards) ? array() : (is_array($exclude_boards) ? $exclude_boards : array($exclude_boards));

    
// Only some boards?.
    
if (is_array($include_boards) || (int) $include_boards === $include_boards)
    {
        
$include_boards is_array($include_boards) ? $include_boards : array($include_boards);
    }
    elseif (
$include_boards != null)
    {
        
$output_method $include_boards;
        
$include_boards = array();
    }

    
$stable_icons = array('xx''thumbup''thumbdown''exclamation''question''lamp''smiley''angry''cheesy''grin''sad''wink''moved''recycled''wireless');
    
$icon_sources = array();
    foreach (
$stable_icons as $icon)
        
$icon_sources[$icon] = 'images_url';

    
// Find all the posts in distinct topics.  Newer ones will have higher IDs.
    
$request $smcFunc['db_query']('substring''
        SELECT
            m.poster_time, ms.subject, m.id_topic, m.id_member, m.id_msg, b.id_board, b.name AS board_name, t.num_replies, t.num_views,
            IFNULL(mem.real_name, m.poster_name) AS poster_name, ' 
. ($user_info['is_guest'] ? '1 AS is_read, 0 AS new_from' '
            IFNULL(lt.id_msg, IFNULL(lmr.id_msg, 0)) >= m.id_msg_modified AS is_read,
            IFNULL(lt.id_msg, IFNULL(lmr.id_msg, -1)) + 1 AS new_from'
) . ', SUBSTRING(m.body, 1, 384) AS body, m.smileys_enabled, m.icon
        FROM {db_prefix}topics AS t
            INNER JOIN {db_prefix}messages AS m ON (m.id_msg = t.id_last_msg)
            INNER JOIN {db_prefix}boards AS b ON (b.id_board = t.id_board)
            INNER JOIN {db_prefix}messages AS ms ON (ms.id_msg = t.id_first_msg)
            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 = {int:current_member})
            LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:current_member})' 
'') . '
        WHERE t.id_last_msg >= {int:min_message_id}
            ' 
. (empty($exclude_boards) ? '' '
            AND b.id_board NOT IN ({array_int:exclude_boards})'
) . '
            ' 
. (empty($include_boards) ? '' '
            AND b.id_board IN ({array_int:include_boards})'
) . '
            AND {query_wanna_see_board}' 
. ($modSettings['postmod_active'] ? '
            AND t.approved = {int:is_approved}
            AND m.approved = {int:is_approved}' 
'') . '
        ORDER BY t.id_last_msg DESC
        LIMIT ' 
$num_recent,
        array(
            
'current_member' => $user_info['id'],
            
'include_boards' => empty($include_boards) ? '' $include_boards,
            
'exclude_boards' => empty($exclude_boards) ? '' $exclude_boards,
            
'min_message_id' => $modSettings['maxMsgID'] - 35 min($num_recent5),
            
'is_approved' => 1,
        )
    );
    
$posts = array();
    while (
$row $smcFunc['db_fetch_assoc']($request))
    {
        
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br />' => '')));
        if (
$smcFunc['strlen']($row['body']) > 128)
            
$row['body'] = $smcFunc['substr']($row['body'], 0128) . '...';

        
// Censor the subject.
        
censorText($row['subject']);
        
censorText($row['body']);

        if (empty(
$modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
            
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' $row['icon'] . '.gif') ? 'images_url' 'default_images_url';

        
// Build the array.
        
$posts[] = array(
            
'board' => array(
                
'id' => $row['id_board'],
                
'name' => $row['board_name'],
                
'href' => $scripturl '?board=' $row['id_board'] . '.0',
                
'link' => '<a href="' $scripturl '?board=' $row['id_board'] . '.0">' $row['board_name'] . '</a>'
            
),
            
'topic' => $row['id_topic'],
            
'poster' => array(
                
'id' => $row['id_member'],
                
'name' => $row['poster_name'],
                
'href' => empty($row['id_member']) ? '' $scripturl '?action=profile;u=' $row['id_member'],
                
'link' => empty($row['id_member']) ? $row['poster_name'] : '<a href="' $scripturl '?action=profile;u=' $row['id_member'] . '">' $row['poster_name'] . '</a>'
            
),
            
'subject' => $row['subject'],
            
'replies' => $row['num_replies'],
            
'views' => $row['num_views'],
            
'short_subject' => shorten_subject($row['subject'], 25),
            
'preview' => $row['body'],
            
'time' => timeformat($row['poster_time']),
            
'timestamp' => forum_time(true$row['poster_time']),
            
'href' => $scripturl '?topic=' $row['id_topic'] . '.msg' $row['id_msg'] . ';topicseen#new',
            
'link' => '<a href="' $scripturl '?topic=' $row['id_topic'] . '.msg' $row['id_msg'] . '#new" rel="nofollow">' $row['subject'] . '</a>',
            
// Retained for compatibility - is technically incorrect!
            
'new' => !empty($row['is_read']),
            
'is_new' => empty($row['is_read']),
            
'new_from' => $row['new_from'],
            
'icon' => '<img src="' $settings[$icon_sources[$row['icon']]] . '/post/' $row['icon'] . '.gif" align="middle" alt="' $row['icon'] . '" border="0" />',
        );
    }
    
$smcFunc['db_free_result']($request);

    
// Just return it.
    
if ($output_method != 'echo' || empty($posts))
        return 
$posts;


////////////////////////Display Zone////////////////////////
echo '
<div id="boardindex_table">
        <table class="table_list">
            <tbody class="header">
                <tr>
                    <td colspan="4" class="catbg"><span class="left"></span>
                        Recent Topics
                    </td>
                </tr>
            </tbody>
            <tbody class="content">
'
;
foreach (
$posts as $post) echo '    
                <tr class="windowbg2">
                    <td width="25" align="center">
                        '
.$post['icon'].'
                    </td>

                    <td class="info">
                        <a href="'
$post['href'], '">'$post['subject'], '</a><br />
                        <font size="1" color="#999999">From: '
$post['board']['link'].'</font>
                    </td>
                    <td width="300">
                        <font size="1">
                        '
$post['time'], ' <br />
                        By: '
$post['poster']['link'], '
                        </font>
                    </td>
                </tr>'
;
echo 
'
            </tbody>    
        </table>
</div>
'
;
////////////////////////Display Zone////////////////////////
}
?>

2. เอาไฟล์ showrecent.php ไปวางไว้ที่เดียวกับ SSI.php ครับ โฟลเดอร์ชั้นแรกของบอร์ด smf เช่น yourwebsite.com/board/showrecent.php

3.เปิดไฟล์ BoardIndex.template.php ใน themes ที่ใช้งานอยู่
ค้นหา:
โค๊ด: [Select]
echo '
<div id="boardindex_table">
<table class="table_list">';

แล้วเพิ่มโค้ดด้านล่างนี้ไว้ข้างบน
โค๊ด: [Select]
require("showrecent.php");
ShowRecentTopicsOnBoardIndex(20);
echo '<br />';

หากคุณ เปลี่ยน themes ใหม่ ก็ต้องแก้ไข ไฟล์ showrecent.php ในส่วน
////////////////////////Display Zone////////////////////////
ให้ตรงกับ themes ปัจจุบันด้วยครับ

 :) เสร็จแล้วครับ
เครดิต:http://www.worldit2007.com/board/index.php?topic=1179.0
« แก้ไขครั้งสุดท้าย: 2 สิงหาคม 2015, 14:29:08 โดย moojoom »