วิธีดึง10 กระทู้ล่าสุดมาแสดงที่หน้าแรกของเว็บ
- +

วิธีดึง10 กระทู้ล่าสุดมาแสดงที่หน้าแรกของเว็บ

  • 2 ตอบ
  • 468 อ่าน

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

*

ออฟไลน์ smfTopic starter

  • "ถ้าคุณไม่สามารถอธิบายอย่างง่ายๆ ให้คนอื่นเข้าใจได้แล้วล่ะก็ แสดงว่าคุณยังเข้าใจมันไม่ดีพอ"
  • *****
  • 1,353
  • 2
    • ดูรายละเอียด
    • pordoo.com
    • อีเมล์
  • คอมเมนต์สินค้า: (1)
คือการดึงเอาหัวข้อล่าสุด (Recent topics) ออกมาโชว์ไว้ที่หน้าเว็บอื่นๆของเรา

แบบที่1. ธรรมดาทั่วๆไป ที่ใช้ function จาก ssi_recentTopics


ดูตัวอย่าง : show_ssi_recenttopics1

สร้างไฟล์ Show_ssi_recentTopics1.php :
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.วิธีใช้ : วาง iframe ในตำแหน่งที่เราต้องการให้มันโชว์
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.สิ่งที่ต้องแก้ไข :
1. <?php require("webboard/SSI.php"); ?> วางพาธไฟล์เรียก SSI.php ให้ถูกต้องตามเว็บของท่าน
2. <iframe src="Show_ssi_recentTopics1.php"  วางพาธไฟล์ที่ iframe เรียก Show_ssi_recentTopics1.php ให้ถูกต้องตามเว็บของท่าน
หรือใช้ <?php include("Show_ssi_recentTopics1.php"); ?> ก็ได้ ถ้าไม่ชอบแบบ Iframe เพราะยุ่งยากเรื่องพื้นหลังและความกว้างxยาว



แบบที่2. ssi_recentTopics2 มีตารางกับไม่มีตาราง


ดูตัวอย่าง: show_ssi_recenttopics2

สร้างไฟล์ Show_ssi_recentTopics2.php :
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.วิธีใช้ : วาง iframe ในตำแหน่งที่เราต้องการให้มันโชว์
   
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.สิ่งที่ต้องแก้ไข :
1. <?php require("webboard/SSI.php"); ?> วางพาธไฟล์เรียก SSI.php ให้ถูกต้องตามเว็บของท่าน
2. <iframe src="Show_ssi_recentTopics2.php"  วางพาธไฟล์ที่ iframe เรียก Show_ssi_recentTopics2.php ให้ถูกต้องตามเว็บของท่าน
หรือใช้ <?php include("Show_ssi_recentTopics2.php"); ?> ก็ได้ ถ้าไม่ชอบแบบ Iframe เพราะยุ่งยากเรื่องพื้นหลังและความกว้างxยาว
3. เปลี่ยนบอร์ดที่ต้องการให้แสดงหรือไม่แสดงได้ตรงที่ array(4,5,6), array(1,2,3) ปล่อยว่าง array() มาทุกบอร์ด ผมทำตัวอย่างไว้2แบบ ให้เลือกใช้แบบใดแบบหนึ่ง  ตัวอย่างเช่น ssi_recentTopics('10',array(4,5,6), array(),'array');  //4,5,6 คือกั้นบอร์ดที่ไม่ต้องการให้แสดง ที่เหลือปล่อยไว้เป็นต้น

หมายเหตุ
       เมื่อใส่ บอร์ดที่ไม่ให้แสดง array(4,5,6) นานๆไป Recent Topics มักจะลดจำนวนเหลือน้อยลงจนหายเกลี้ยง  อธิบายดังนี้ Recent Topics เป็นการนำบทความล่าสุดมาแสดงตามจำนวน เช่น จำนวนกระทู้ที่ต้องการให้แสดง 20 ถ้าสั่งให้แสดงทุกๆบอร์ด แม้ไม่มีกระทู้เข้ามาใหม่ บทความเก่าล่าสุดก็ยังแสดงอยู่ แต่ถ้าเมื่อไหร่มีคำสั่งให้ ไม่แสดงบอร์ดใดๆร่วมด้วย และบอร์ดที่ไม่ให้แสดงมีจำนวนกระทู้ใหม่มากกว่า บอร์ดที่แสดงในหน้ารวมกระทู้จนมากขึ้นไปเรื่อยๆ จึงทำให้หน้ารวมกระทู้ Recent Topics ถูกลดจำนวนลงไปจนหายเกลี้ยง เพราะกระทู้ที่แสดงถูกแทนที่ด้วย20บทความใหม่ ที่ถูกไม่ให้แสดง หน้าจึงว่างเปล่า
ยกตัวอย่าง array(4,5,6)บอร์ดที่จะไม่ให้แสดง สมุติว่าบอร์ดที่ 4,5,6 คือบอร์ดเกี่ยวกับให้ลงประกาศโฆษณาฟรี เราไม่ต้องการให้แสดงในหน้ารวมกระทู้ Recent Topics เราให้ array(1,2,3)บอร์ดที่จะให้แสดง เป็นบอร์ดหลักที่ต้องการให้แสดงผลที่หน้ารวมกระทู้เท่านั้น แต่บังเอิญ บอร์ดหลักของเว็บเราดันมีบทความอัพเดทน้อยกว่าบอร์ดที่ให้ลงประกาศโฆษณา ฟรี จึงทำให้ บทความที่ลงประกาศโฆษณาฟรี มีจำนวนเพิ่มขึ้นเรื่อยๆจนเกินจำนวน 20 กระทู้ทีเราตั้งโชว์ไว้ ในเมื่อ Recent Topics ถูกให้โชว์กระทู้ล่าสุดที่ 20 กระทู้ แต่แล้ว บอร์ดที่ 4,5,6 คือบอร์ดเกี่ยวกับให้ลงประกาศโฆษณาฟรี กลับถูกงดให้แสดง ดังนั้นในหน้ารวมกระทู้ Recent Topics จึงไม่มีอะไรเหลือให้แสดงอีกจนกว่าเราจะไปโพสท์บทความใหม่ๆ ของบอร์ดหลัก (1,2,3)บอร์ดที่จะให้แสดง เพิ่มกระทู้ใหม่ขึ้นมาจนมากกว่าบอร์ด ลงประกาศโฆษณาฟรี (บอร์ดที่จะไม่ให้แสดง) เมื่อนั้นจึงมีบทความใหม่ๆแสดงให้เห็น นี่คือหลักของ Recent Post - Topics ถ้าต้องการแสดงแยกเดีี่ยวๆ แนะนำไม่ให้ใช้ Function Recent หรือถ้าจะใช้ต้องสั่งแสดงทุกบอร์ดหรือไม่บอร์ดหลักของเราต้องมีกระทู้โพสท์ใหม่ๆ มากกว่าบอร์ดที่ไม่ต้องการให้แสดง



แบบที่3. ssi_recentTopics3 (แบบ Hot)

ดูตัวอย่าง: show_ssi_recenttopics3 (Hot)
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.การแก้ไขและการใช้งานก็แบบเดียวกันกับด้านบน สามารถเอาไปประยุคใช้แทน กระทู้เมื่อเร็วๆนี้ที่หน้าบอร์ดได้ แบบไม่มี Re:



แบบที่4. ssi_recentTopics4  Full Table


ดูตัวอย่าง: show_ssi_recenttopics4 (Hot)

โค๊ด:
Only registered users can see contents. Please click here to Register or Login.
การแก้ไขการใช้งานก็แบบเดียวกันกับด้านบน สามารถเอาไปประยุคใช้แทน กระทู้เมื่อเร็วๆนี้ที่หน้าบอร์ดได้ แบบไม่มี Re:
***อธิบายเพิ่มเติม การปรับแต่ง***
ตาราง <table border="0" width="1024">';
ssi_recentTopics4 full table เป็นแบบตาราง 4 คอลัมน์ แต่ซ่อนไว้ด้วยการใส่ 0 ที่ border ถ้าต้องการให้แสดงตารางใส่ 1
ส่วนความกว้าง แต่ละบอร์ดไม่เหมือนกันให้เปลี่ยนที่ width="1024" ถ้าบอร์ดใดใช้เป็นแบบ เปอร์เซ็นต์ 100% ก็เปลี่ยนตามนั้น

คอลัมน์ <td width="540">
แต่ละคอลัมน์ ต้องเปลี่ยนให้สมพันธ์กันด้วย

การนำไปประยุคใช้งาน เนื่องจากผมใส่ตัวแปร $post ต่างๆไว้ครบชัดเจนหมดแล้ว
จึงสามารถเคลื่อนย้ายและตัดทิ้งตัวแปร $post ต่างๆได้ตามชอบใจดังนี้

หัวข้อ =
', $post['href'], '">', $post['subject'], '
โดย = ', $txt['by'], ' ', $post['poster']['link'], '

Icon New = ', !$post['is_new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new" rel="nofollow"><img src="' . $settings['lang_images_url'] . '/new.gif" alt="' . $txt['new'] . '" /></a>', '
[อ่าน ] [ตอบ ] = [', $txt['views'], ' ', $post['views'],'] [', $txt['replies'], ' ',$post['replies'],']
ชื่อบอร์ด = [', $post['board']['link'], ']
วันเวลา = ', $post['time'], '

วิธีตัดคำให้สั้นลง
เปลี่ยนจาก ', $post['subject'],'
เป็น  ',mb_substr($post['subject'],0,30,'UTF-8'),'....
30 คือ จำนวนตัวอักษรที่ต้องการตัดคำให้แสดงเพียงเท่านั้น...

เพิ่มเติม การเพิ่ม icon ก่อนกระทู้  ให้แทรกคอลัมน์ <td width="15"> หลัง <tr>

นำโค้ดนี้ไปใส่
   <td width="15">
   <img src="' . $settings['images_url'] . '/icons/bb_icon.png" alt="' . $txt['new'] . '" /></a>
   </td>

แล้วอัพโหลดรูป icon bb_icon.png ไปไว้ที่ Themes/ธีมปัจจุบันที่ใช้/images/icons/icon bb_icon.png

หรือเติม icon ของบอร์ดโดยอัตโนมัติ
', $post['icon'], '

เพิ่มเติม
$post['preview']  แสดงรายละเอียด แสดงรายละเอียดได้สูงสุดที่ 128 ตัวเท่านั้น
$post['short_subject'] แสดงหัวข้อสั้นๆ แสดงหัวข้อสั้นๆสูงสุดที่  25 ตัวเท่านั้น

*หมายเหตุ สร้างขอบตรางสีฟ้าบน-ล่างแบบในตัวอย่าง*
สร้าง Show_iframe_ssi_recentTopics4.php ให้เป็นเสมือนหน้าเพจหลัก (home) ก่อนแล้วดึง iframe หรือ include โชว์ 10 กระทู้มาแสดงในหน้าเพจหลักอีกทีหนึ่ง
โค้ดดังนี้  Show_iframe_ssi_recentTopics4.php
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.สรุปแบบในตัวอย่างคือการสร้าง 2 เพจ  Show_iframe_ssi_recentTopics4.php คือหน้าหลักมีขอบตารางสีฟ้าบน-ล่างหน้านี้อาจเป็นหน้า homepage มีเมนู login-out ป้ายแบนเนอร์ต่างๆร่วมด้วยก็ได้นะครับ กับ Show_ssi_recentTopics4.php ดึงกระทู้ล่าสุดมาโชว์ร่วม

credit: http://www.welovethailand.com/webboard/index.php?topic=173.0
« แก้ไขครั้งสุดท้าย: 31 มกราคม 2016, 02:38:32 โดย smf »

*

ออฟไลน์ smfTopic starter

  • "ถ้าคุณไม่สามารถอธิบายอย่างง่ายๆ ให้คนอื่นเข้าใจได้แล้วล่ะก็ แสดงว่าคุณยังเข้าใจมันไม่ดีพอ"
  • *****
  • 1,353
  • 2
    • ดูรายละเอียด
    • pordoo.com
    • อีเมล์
  • คอมเมนต์สินค้า: (1)
หัวข้อล่าสุด แบบการเขียนเรียกไฟล์ดึงออกมาเองจากฐานข้อมูลโดยตรง เพื่อใส่ลูกเล่นต่างๆ เช่นจัดตารางได้ตามใจชอบฯลฯ เลือกบอร์ดได้ กำหนดจำนวนกระทู้ได้ มีหลายรูปแบบ พร้อมไฟล์ตกแต่ง CSS ดังนี้

แบบ List ทั่วๆไป


แบบ List และ Icon Image


แบบตาราง 3 คอลัมน์


แบบตาราง 5 คอลัมน์


แบบตารางสีฟ้า 5 คอลัมน์
credit: http://www.welovethailand.com/webboard/index.php?topic=173.0
« แก้ไขครั้งสุดท้าย: 31 มกราคม 2016, 02:28:02 โดย smf »

*

ออฟไลน์ smfTopic starter

  • "ถ้าคุณไม่สามารถอธิบายอย่างง่ายๆ ให้คนอื่นเข้าใจได้แล้วล่ะก็ แสดงว่าคุณยังเข้าใจมันไม่ดีพอ"
  • *****
  • 1,353
  • 2
    • ดูรายละเอียด
    • pordoo.com
    • อีเมล์
  • คอมเมนต์สินค้า: (1)
การดึง10 กระทู้ล่าสุดของแต่ละหัวข้อมาทำ content ในหน้าแรกที่สร้างใหม่
โค๊ด:
Only registered users can see contents. Please click here to Register or Login.ขอบคุณ:DexMore.Com

แท็ก:
 
แชร์บทความ...
โค้ดแบบ forum
(BBCode)
โค้ดแบบ site/blog
(HTML)


anything