ข่าว IT ล่าสุด
ถูกใจอย่าลืม Like Fanpage
ถามเรื่องการดึงหัวข้อใหม่ของ smf มาแสดงแบบหน้าแรกเว็บนี้หน่อยครับ
แสดงแล้ว 50625 ครั้ง /
ตุลาคม 06, 2010, 12:48:09

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
เราจะใช้คำสั่ง get content ยังไงอะครับ  :P

แบบที่ตอบครั้งเเรกเลยไงครับ


metal4x

ออฟไลน์
กระทู้ : 12
คะแนนขอบคุณ : 0
ตุลาคม 06, 2010, 16:51:26
มีประโยชน์มากครับ....กะลังทำตามอยู่ครับ
............................................
รหัสบอร์ด ดูตรงใหนครับ ???... ผมต้องการในส่วนของ " กระทู้เมื่อเร็วๆ นี้  " ...ไม่ทราบว่ามีรหัสบอร์ด้วยป่ะ...กะลังหาครับ
« แก้ไขครั้งสุดท้าย: ตุลาคม 06, 2010, 17:09:23 โดย metal4x »

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 06, 2010, 21:50:21
มีประโยชน์มากครับ....กะลังทำตามอยู่ครับ
............................................
รหัสบอร์ด ดูตรงใหนครับ ???... ผมต้องการในส่วนของ " กระทู้เมื่อเร็วๆ นี้  " ...ไม่ทราบว่ามีรหัสบอร์ด้วยป่ะ...กะลังหาครับ

รหัสบอร์ดก็ดูจาก หน้าแรกของบอร์ดเลยไงครับ

ให้เราลอง copy link มันมา แบบนี้ >> [direct]http://www.it4x.com/forum/index.php/board,2.0.html[/direct]

รหัสบอร์ดคือ 2.0 หรือ 2 นั่นเองคงเดาออกแล้วใช่ไหมครับว่าดูตรงไหน

metal4x

ออฟไลน์
กระทู้ : 12
คะแนนขอบคุณ : 0
ตุลาคม 07, 2010, 03:01:13
ขอบคณมากคับ ต่ออีกนิดนะคับ....จริงๆ แล้วผมอยากจะเอา ..." กระทู้เมื่อเร็วๆ นี้  " ...ไปไว้หน้าแรกมากกว่าคับ..อยากจะเน้นที่คนโพสท์ตอบล่าสุดมากกว่านะคับ ..ลองหาดูๆแล้วมันไม่มีลิงค์ แบบคล้ายๆรหัสบอร์ดนะคับ...ทำไงดีเอ่ย ??

..." กระทู้เมื่อเร็วๆ นี้  " แบบของ it4x ตามรูปนี้คับ

อยากเอาไปวางไว้หน้าแรกซัก 15 โพสท์
รอ k.Moshi ตอบอีกแหละคับ...ขอบคุณคับผม

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 07, 2010, 07:56:11
ตอนแรกนะครับ เข้าหน้า ssi_examples.php

>> เช่นบอร์ดผม [direct=http://www.it4x.com/forum/ssi_examples.php]www.it4x.com/forum/ssi_examples.php[/direct]

จากนั้น หาคำว่า

To use SSI.php in your page add at the very top of your page before the tag on line 1:



เอาบรรทัดตรงสีแดงของผมเนี่ย แต่เอาของเว็บคุณนะ ไปไว้บนสุดของหน้า Index

จากนั้น อยากให้หัวข้อล่าสุดแสดงตรงไหนของหน้า index ก็ใช้ Function นี้

จากตัวอย่างให้แสดง 15 หัวข้อล่าสุดนะครับ เป็นหัวข้อแบบไม่มีคำ่ว่า RE:

โค๊ด: [Select]

แต่ถ้าอยากให้มีคำว่า RE หรือหัวข้อที่ตอบล่าสุด ทั้งหมดเลย

โค๊ด: [Select]

ลองไปประยุกต์ใช้ดูนะครับ


metal4x

ออฟไลน์
กระทู้ : 12
คะแนนขอบคุณ : 0
ตุลาคม 08, 2010, 02:45:35
ขอบคุณครับผม...จะลองดูคับ...(ตอบไวมากเลย... ยอดเยี่ยมคับ)

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 08, 2010, 07:27:55
เราจะใช้คำสั่ง get content ยังไงอะครับ  :P

ผมไปหาวิธีแก้มาละใช้ curl แทน

โค๊ด: [Select]
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "insert.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
$ch = iconv('windows-874','UTF-8',$ch);
curl_exec($ch);
curl_close($ch);
?>

ลองดุนะครับ

step69

ออฟไลน์
กระทู้ : 2
คะแนนขอบคุณ : 0
ตุลาคม 08, 2010, 14:43:37
 :'( พี่ ๆครับผมตามอ่านมาจนหมดละ ผมขอถามเรื่อง การแสดงกระทู้ต่อจากที่พี่ ๆถามาเเล้วนะครับคือ

หลังจากที่ผมเพิ่ม code ไปเเล้วมัน Error แบบนี้ครับ
โค๊ด: [Select]
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/xxxx.com/public_html/webbroad/showborad.php on line 42

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/xxxxx.com/public_html/webbroad/showborad.php on line 43

พี่ผมพออ่านเเล้วเข้าใจว่าประมาณ ว่าตรงที่
โค๊ด: [Select]
@mysql_connect($host,$user,$pass) or die("ขออภัยค่ะ ขณะนี้ไม่สามารถติดต่อฐานข้อมูลได้ กรุณาเข้าชมใหม่ภายหลัง");
if ($sboard=="0") {
$Sql = "SELECT * FROM $prefix order by ID_TOPIC DESC limit 0,$list ";
} elseif ($sboard=="1") {
$Sql = "SELECT * FROM $prefix where ID_BOARD='$board' order by ID_TOPIC DESC limit 0,$list ";

}
อันนี้ตามตัวอย่างที่พี่ได้โพสไว้คราวนี้ผมไม่รู้ว่าจะให้เชื่อกับตารางไหนหนะครับ ผมอยากว่าหัวข้อกระทู้มันอยู่ตรงตารางไหนเพราะว่า smf มันมีหลายตารางมากเลย รบกวนพี่ๆ ด้วยครับ
« แก้ไขครั้งสุดท้าย: ตุลาคม 09, 2010, 10:50:26 โดย step69 »

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 08, 2010, 21:18:36
:'( พี่ ๆครับผมตามอ่านมาจนหมดละ ผมขอถามเรื่อง การแสดงกระทู้ต่อจากที่พี่ ๆถามาเเล้วนะครับคือ

หลังจากที่ผมเพิ่ม code ไปเเล้วมัน Error แบบนี้ครับ
โค๊ด: [Select]
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/step69.com/public_html/webbroad/showborad.php on line 42

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/step69.com/public_html/webbroad/showborad.php on line 43

พี่ผมพออ่านเเล้วเข้าใจว่าประมาณ ว่าตรงที่
โค๊ด: [Select]
@mysql_connect($host,$user,$pass) or die("ขออภัยค่ะ ขณะนี้ไม่สามารถติดต่อฐานข้อมูลได้ กรุณาเข้าชมใหม่ภายหลัง");
if ($sboard=="0") {
$Sql = "SELECT * FROM $prefix order by ID_TOPIC DESC limit 0,$list ";
} elseif ($sboard=="1") {
$Sql = "SELECT * FROM $prefix where ID_BOARD='$board' order by ID_TOPIC DESC limit 0,$list ";

}
อันนี้ตามตัวอย่างที่พี่ได้โพสไว้คราวนี้ผมไม่รู้ว่าจะให้เชื่อกับตารางไหนหนะครับ ผมอยากว่าหัวข้อกระทู้มันอยู่ตรงตารางไหนเพราะว่า smf มันมีหลายตารางมากเลย รบกวนพี่ๆ ด้วยครับ

ผมไม่เข้าใจอ่ะครับ หมายถึง แสดงหน้า showborad.php ได้ยังครับ แอบอ่านจากชื่อ

กด เปิดหน้า showborad.php แล้วมัน ERRor ว่าอะไรบ้างครับ

step69

ออฟไลน์
กระทู้ : 2
คะแนนขอบคุณ : 0
ตุลาคม 09, 2010, 10:55:24
มัน error เเบนี้ครับ ขอบคุณมากนะครั ที่กรุณาตอบ
« แก้ไขครั้งสุดท้าย: ตุลาคม 09, 2010, 11:04:34 โดย step69 »

metal4x

ออฟไลน์
กระทู้ : 12
คะแนนขอบคุณ : 0
ตุลาคม 12, 2010, 17:14:07
กระทู้นี้..ท่าจะยาวว....ของผมต่อนะท่านโมชิ...(เรื่องการเอา 15กระทู้ล่าสุดจากเว็บบอร์ด..มาไว้หน้าแรก Home)

รูปแรกนี้คือ รูปที่ไม่มีปัญหา(แต่ผมไม่ค่อยต้องการ อิอิ)...ใช้เทคนิคแรก คือสร้างไฟล์ ขึ้น PHP ขึ้นมา 1 ไฟล์ แล้วเอาไปไว้ตำแหน่งเดียวกับไฟล์ ssi_examples.php ของบอร์ด.....แล้วใช้โค๊ด..ตอบ #8 ของท่าน....$data = @file_get_contents




ส่วนที่มีปัญหาคือ รูปถัดไป ..ใช้โค๊ดจาก ตอบ #19...
แล้วมันได้ผลตามรูปนี้ครับ


จากรูปข้างบนนี้

1.ถ้าจะให้แสดงภาษาไทยถูกต้อง ต้องแก้ยังไงครับ ? (เว็บผมใช้ charset=tis-620)

2.ถ้าจะเอาส่วนที่เป็นชื่อ หมวดบอร์ด ด้านหน้าออก ต้องเพิ่มคำสั่งอะไร ที่   (ผมจะเอาจากพวก Re: เป็นต้นไป)

3.ข้อความมันล้น
แก้ยังไง (อันนี้ถามเพื่อประหยัดเวลา...จริงๆรูปบนสุด ตอนแรกก็เป็นแบบนี้แหละ...แก้มั่วๆเอา ชักจะลืม อิอิ)

ขอบคุณนะครับผม (พอดีผมหัดทำเว็บได้ไม่นานนะคัรบ)

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 12, 2010, 23:31:03
ทั้ง 2 คนเดียวผมมาตอบให้นะครับ พึ่งกลับมาจากต่างจังหวัดเหนื่อยๆ หุหุ

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 13, 2010, 09:01:58
มัน error เเบนี้ครับ ขอบคุณมากนะครั ที่กรุณาตอบ


อยากให้ลอง COPY ของผมก่อนครับ แป๊ะๆเลยว่าได้ไหม

คล้ายๆ มันฟ้องว่า SQl ไม่สามารถทำการหา คิวรี่ ได้นี่หล่ะครับ แล้วบอร์ดคุณใช้เป้น RC2 ด้วยมันอาจจะใช้คนละตัว

แต่ลอง เอา ของผม แป๊ะๆเลยลองดูก่อนว่าจะได้ไหมครับ


แวะมา Edit เพิ่มเติม

หลังจากแอบไปเปิดดู ssi_examples.php -rc2

มันมีฟังก์ชั่นทำได้อยู่แล้วครับโดยอันแรกง่ายๆ

ผมดูของเจ้าของเว็บนะ  webbroad/ssi_examples.php ตามที่อยู่นี้

แล้วไปดูตรง Recent Topics

มันจะให้

เอาอันนี้ไว้บนสุด

โค๊ด: [Select]

จากนั้น ใช้แบบ advance

โค๊ด: [Select]



ตรง $exclude_boards ค่า Null ก็ลองเปลี่ยนเป็น รหัสบอร์ดดูครับ น่าจะใช่มั้ง หุหุ ถ้าเดาไม่ผิด ลองดูครับๆ
« แก้ไขครั้งสุดท้าย: ตุลาคม 13, 2010, 11:35:27 โดย Moshi »

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 13, 2010, 10:15:45
กระทู้นี้..ท่าจะยาวว....ของผมต่อนะท่านโมชิ...(เรื่องการเอา 15กระทู้ล่าสุดจากเว็บบอร์ด..มาไว้หน้าแรก Home)

รูปแรกนี้คือ รูปที่ไม่มีปัญหา(แต่ผมไม่ค่อยต้องการ อิอิ)...ใช้เทคนิคแรก คือสร้างไฟล์ ขึ้น PHP ขึ้นมา 1 ไฟล์ แล้วเอาไปไว้ตำแหน่งเดียวกับไฟล์ ssi_examples.php ของบอร์ด.....แล้วใช้โค๊ด..ตอบ #8 ของท่าน....$data = @file_get_contents




ส่วนที่มีปัญหาคือ รูปถัดไป ..ใช้โค๊ดจาก ตอบ #19...
แล้วมันได้ผลตามรูปนี้ครับ


จากรูปข้างบนนี้

1.ถ้าจะให้แสดงภาษาไทยถูกต้อง ต้องแก้ยังไงครับ ? (เว็บผมใช้ charset=tis-620)

2.ถ้าจะเอาส่วนที่เป็นชื่อ หมวดบอร์ด ด้านหน้าออก ต้องเพิ่มคำสั่งอะไร ที่   (ผมจะเอาจากพวก Re: เป็นต้นไป)

3.ข้อความมันล้น
แก้ยังไง (อันนี้ถามเพื่อประหยัดเวลา...จริงๆรูปบนสุด ตอนแรกก็เป็นแบบนี้แหละ...แก้มั่วๆเอา ชักจะลืม อิอิ)

ขอบคุณนะครับผม (พอดีผมหัดทำเว็บได้ไม่นานนะคัรบ)


ทำง่ายๆครับผม

ขั้นตอนแรก ให้เพิ่ม

โค๊ด: [Select]

ลงไว้ในหน้า index ก่อนครับ ที่เรา include ssi ไว้แล้วนะ

จากนั้นเปิดไฟล์ SSI.php

ให้ค้นหา

โค๊ด: [Select]
// Recent post list:   [board] Subject by Poster    Date
แล้วเพิ่ม อันนี้ด้านบน

โค๊ด: [Select]
function ssi_recentPosts2($num_recent = 8, $exclude_boards = null, $output_method = 'echo')
{
    global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER;
    global $user_info, $modSettings, $func;

    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() : $exclude_boards;

    // Find all the posts.  Newer ones will have higher IDs.
    $request = db_query("
        SELECT
            m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, m.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
        FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b)
            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 = m.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
            LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = m.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
        WHERE m.ID_MSG >= " . ($modSettings['maxMsgID'] - 25 * min($num_recent, 5)) . "
            AND b.ID_BOARD = m.ID_BOARD" . (empty($exclude_boards) ? '' : "
            AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
            AND $user_info[query_see_board]
        ORDER BY m.ID_MSG DESC
        LIMIT $num_recent", __FILE__, __LINE__);
    $posts = array();
    while ($row = mysql_fetch_assoc($request))
    {
        $row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']), array('
' => '
')));
        if ($func['strlen']($row['body']) > 128)
            $row['body'] = $func['substr']($row['body'], 0, 128) . '...';

        // Censor it!
        censorText($row['subject']);
        censorText($row['body']);

        // Build the array.
        $posts[] = array(
            'board' => array(
                'id' => $row['ID_BOARD'],
                'name' => $row['bName'],
                'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
                'link' => '' . $row['bName'] . ''
            ),
            'topic' => $row['ID_TOPIC'],
            'poster' => array(
                'id' => $row['ID_MEMBER'],
                'name' => $row['posterName'],
                'href' => empty($row['ID_MEMBER']) ? '' : $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
                'link' => empty($row['ID_MEMBER']) ? $row['posterName'] : '' . $row['posterName'] . ''
            ),
            'subject' => $row['subject'],
            'short_subject' => shorten_subject($row['subject'], 25),
            'preview' => $row['body'],
            'time' => timeformat($row['posterTime']),
            'timestamp' => forum_time(true, $row['posterTime']),
            'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . ';topicseen#new',
            'link' => '' . $row['subject'] . '',
            'new' => !empty($row['isRead']),
            'new_from' => $row['new_from'],
        );
    }
    mysql_free_result($request);

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

    echo '
        ';
    foreach ($posts as $post)
        echo '
           
               
               
            ';
    echo '
       

                    ', $post['subject'], '
                    ', $txt[525], ' ', $post['poster']['link'], '
                    ', $post['new'] ? '' : '' . $txt[302] . '', '
               

                    ', $post['time'], '
               
';
}

หมายเหตุ อยากตัดให้มันแสดงผลอะไรก็แก้ตรง table ข้างล่างนี้

กลับไปที่หน้า index ให้ใช้ Function นี้ในการแสดงแทน

โค๊ด: [Select]

ลองศึกษาทำตามดูน่าจะเข้าใจ

metal4x

ออฟไลน์
กระทู้ : 12
คะแนนขอบคุณ : 0
ตุลาคม 18, 2010, 00:16:39
คำสั่งนี้
โค๊ด: [Select]
มันส่งผล ยังไงบ้างครับผม....เพราะเท่าที่ผมลอง...มันไม่มีการเปลี่ยนแปลงใดๆ เลยครับ

....ผมเอาไปใช้งานแบบตามที่คุณโมชิบอกมาคือ... " ขั้นตอนแรก ให้เพิ่ม  " .....ไม่รู้ว่าใช้ถูกป่ะ...แบบนี้คัรบ
โค๊ด: [Select]







ืNote..
** ผมลองแก้ปัญหา โดยการเปลี่ยน charset=tis-620 เป็น charset=utf-8 ...มันก็โอเค...แต่มันก็ไปมีปัญหากับข่าวประจำวันที่ดึงมา ซะงั้น (คือข่าว ดันเป็นภาษาต่างดาวซะอีก) ==>> http://www.phanom.go.th/indextest5.php ....อันนี้สลับกัน==>>http://www.phanom.go.th/indextest6.php**

** ไปแอบดูก็ได้คัรบ อิอิ ...จริงๆแล้วเว็บบอร์ดที่ผมจะเอามาโชว์หน้าแรก..มันไม่มีไรน่าโชว์เลย...มันเป็นเว็บราชการ...แต่ผมทำเพราะผมอยากรู้หน่ะครับ **
« แก้ไขครั้งสุดท้าย: ตุลาคม 18, 2010, 01:09:48 โดย metal4x »

 

ด้วยฟังค์ชั่น ตอบด่วน คุณสามารถใช้โค๊ดและ เครื่องหมายแสดงอารมณ์ได้ เหมือนการตั้งกระทู้ธรรมดา แต่สามารถทำได้สะดวกกว่า

ระวัง: หัวข้อนี้ไม่มีการอัพเดทมานานถึง 120 วัน

แจ้งเตือน: โพสของคุณจะไม่แสดงจนกว่าผู้ดูแลจะอนุมัติ.
ชื่อ: อีเมล์: