<< การทำหน้าแรก หรือหน้ารวมข่าวสาร สำหรับ SMF >>
เขียนโดย คุณ VB Never Die
 
อ่านเต็มรูปแบบ ได้ที่

VBNeverdie.Com

มาทำความรู้จัก กับ SSI.php และ ssi_examples.php
รู้จัก กับ แต่ละฟังก์ชั่น
การแสดงผล / การนำไปประยุกต์ใช้ เพื่อทำหน้าแรก
การนำไปใช้งานจริง



มาทำความรู้จัก กับ SSI.php  และ ssi_examples.php

URL ตัวอย่างประกอบการทำบทความ
http://www.vbneverdie.com/board/ssi_examples.php

SSI.php ทำหน้าที่ รวบรวมฟังก์ชั่นพื้นฐานสำหรับพัฒนาต่อยอด เพื่อเรียก หรือค้นหาสิ่งที่เป็นพื้นฐานในการแสดงผล สิ่งที่จำเป็นสำหรับหน้าแรก
หรือ หน้ารวม อยู่แล้ว เช่น ฟังก์ชั่น กระทู้ล่าสุด ฟังก์ชั่น หัวข้อล่าสุด  ฟังก์ชั่น ข่าว  ฯลฯ  เป็นต้น
อันประกอบไปด้วย

  • ฟังก์ชั่น

  • ตัวแปรต่างๆ

  • คำสั่ง SQL

  • การเก็บค่า ในแต่ละ Record ลงอาเรย์

  • การแสดงผล เป็น HTML


  • ซึ่ง  ฟังก์ชั่นต่างๆ เหล่านี้ สามารถแก้ไขได้ โดยอิสระ  โดยอาจจะแก้ หรือเพิ่มเติมที่คำสั่ง SQL หรือ แก้ไขที่รูปแบบการแสดงผล HTML ก็ได้ครับ

    คุณสามารถ ติดตั้ง ssi mod ได้ตามความต้องการ โดยดาวน์โหลด จาก SimpleMachimes.org
    โดย Mod ตัวนั้นๆ จะทำการ Modify ทั้ง SSI.php และ ssi_examples.php
    หรือ อาจจะ ดัดแปลง ฟังก์ชั่น เดิมๆ แล้วเซฟเป็นฟังก์ชั่นใหม่ ในสไตล์คุณเอง ก็ได้ครับ
    ตัวอย่าง

  • User Online ในห้องแชต ของไทยแอดมิน และเวปอื่นๆ ของลูกค้าของผม  ซึ่งดัดแปลงจาก ssi_whosOnline

  • List Last Reply  ในแต่ละบอร์ด  ของหน้าแรก ไทยแอดมิน ซึ่งดัดแปลงจาก ssi_recentPosts / ssi_recentTopics

  • กระทู้ข่าวสาร ประกาศจากทีมงาน  ของหน้าแรก ไทยแอดมิน ซึ่งดัดแปลงจาก  ssi_boardNews


  • เป็นต้น



    ssi_examples.php   ทำหน้าที่  เรียก ฟังก์ชั่น ที่เขียนไว้ใน SSI.php  มาแสดงผล
    หน้านี้ จะเป็น แรงบัลดาลใจ ให้ใครหลายๆ คน นำข้อมูลไปจัดเลย์เอ๊าท์ สวยๆ   และจัดทำเป็นหน้าแรก
    เหมือนกับที่ ผมทำให้ ไทยแอดมิน นี้ และที่ทำที่เวปของผมเอง และลูกค้าหลายๆ ราย ของผม



    รู้จัก กับ แต่ละฟังก์ชั่น กันก่อน ละกันครับ

    ชื่อ ฟังก์ชั่น ใช้งานเพื่อ...
    ssi_recentTopics แสดงหัวข้อล่าสุด
    ssi_recentPosts แสดงกระทู้ที่มีการโพสล่าสุด (ทั้งการตั้งใหม่ และตอบกลับ)
    ssi_recentPoll โพลล่าสุด
    ssi_topBoards สถิติบอร์ดที่มีกระทู้ และหัวข้อ สูงสุด
    ssi_topTopicsViewsสถิติหัวข้อที่มีผู้สนใจอ่านมากที่สุด
    ssi_topTopicsRepliesสถิติหัวข้อที่มีผู้ตอบมากที่สุด
    ssi_topPoll โพลที่มีผู้สนใจร่วมโหวต มากที่สุด
    ssi_topPoster สถิติผู้มีกระทู้สูงสุด
    ssi_showPoll($topic) โพล ที่แสดงรายละเอียดของเนื้อหา
    ssi_latestMember แสดงข้อความ ต้อนรับสมาชิกล่าสุด
    ssi_boardStats สถิติโดยรวมของบอร์ด
    ssi_whosOnlineแสดงผู้ที่กำลังออนไลน์
    ssi_logOnlineแสดงผู้ที่กำลังออนไลน์
    ssi_welcome แสดงข้อความยินดีต้อนรับ ชื่อสมาชิกด้านบน
    ssi_news แสดงข่าวแบบสุ่มรายการ
    ssi_boardNewsแสดงกระทู้ข่าว
    ssi_menubar แสดงแถบเมนูของบอร์ด
    ssi_quickSearch แสดงกรอบการค้นหา
    ssi_login แสดงกรอบชื่อผู้ใช้ และรหัสผ่านเพื่อการเข้าสู่ระบบ
    ssi_logout แสดงปุ่มให้ผู้ใช้กด เพื่อออกจากระบบ
    ssi_todaysBirthdays แสดงวันเกิดสมาชิก
    ssi_todaysHolidays แสดงวันหยุด
    ssi_todaysEvents แสดงเหตุการณ์ที่กำหนดไว้
    ssi_todaysCalendar แสดงรายการที่กำหนดไว้ในปฏิทินกิจกรรม
    ssi_recentEvents แสดงรายการที่กำหนดไว้ ในปฏิทินกิจกรรมเร็วๆ นี้


    คร่าวๆ นะครับ สำหรับ ssi_examples.php
    ลองศึกษา จาก เวปบอร์ดของคุณเองครับ แล้วจะรู้ว่า  ssi_examples.php เรียกอะไร ออกมาจากเวปบอร์ดของคุณ ได้บ้าง

    บทต่อไป พบกับ การนำไปใช้จริง ครับ

    เมื่อ:  4 มีนาคม 2008, 08:21:26

    การแสดงผล / การนำไปประยุกต์ใช้ เพื่อทำหน้าแรก

    ก่อนอื่นใด ต้อง ทำการเพิ่มเมนู ให้มีลิงค์ไป เวปหลัก ก่อนครับ



    เห็นมั้ยครับ ว่าจะมีคำว่า  หน้าแรก  กับ คำว่า เวปบอร์ด  และต่อๆ ไปตามลำดับ
    คำว่า หน้าแรก  คือสิ่งที่เราเพิ่มมา
    คำว่า เวปบอร์ด คือสิ่งที่เราเปลี่ยนแปลง จากคำว่า หน้าแรก เดิม

    ทีนี้  ทำอย่างไรล่ะ  ???  ???  ???

    ก่อนอื่นใด ต้องทำการแก้ไขไฟล์ Index.template.php ก่อนครับ
    ผมขอยึดตามแบบธีม default นะครับ  สำหรับธีมอื่นๆ ก็คงจะคล้ายๆ กัน แต่ วิธีการเขียน จะต่างกันครับ

    ค้นหา
     
    // Show the [home] button.


    แทรก ก่อนหน้า
     

    <?php //Don't care this line----------------------------------------------

    // Show the [main] button.
    echo ($current_action=='MainSite' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '">&nbsp;</td>' : '' , '
    <td valign="top" class="maintab_' , $current_action == 'MainSite' ? 'active_back' : 'back' , '">
    <a href="../">', $txt['MainSite'] ,'</a>
    </td>' , $current_action == 'MainSite' ? '<td class="maintab_active_' . $last . '">&nbsp;</td>' : '';


    แก้ไขไฟล์ภาษา
    modification.english.php   เพิ่ม
     
    $txt['MainSite']='Home';


    modification.thai.php   เพิ่ม
     
    $txt['MainSite']='หน้าแรก';


    แก้ไขไฟล์ภาษา

    index.thai.php
    ค้นหา
     
    $txt[103]='หน้าแรก';


    เปลี่ยนเป็น คำที่คุณต้องการ เช่นเวปบอร์ด หรือ ฟอรั่ม หรือ พูดคุย
     
    $txt[103]='เวบบอร์ด';


    index.english.php
    ค้นหา
     
    $txt[103]='Home';


    เปลี่ยนเป็น คำที่คุณต้องการ เช่น Webboard หรือ Forum หรือ Community
     
    $txt[103]='Webboard';


    อัพโหลดขึ้นเวปโฮสติ้ง แล้วดูผลที่ได้ครับ



    การนำไปใช้งานจริง

    แนะนำว่า ไม่ควรนำไปรวมกับ Directory ของ Board นะครับ  ประโยชน์ ไม่มีอะไรมาก นอกจากความเป็นระเบียบเรียบร้อยของงาน ครับ
    กรณีที่ ท่านจะใช้ หน้าที่จะทำใหม่ เป็น HomePage เลย ก็ให้ท่านสร้างไฟล์ ขึ้นมาเป็น  index.php เลยครับ
    แต่ถ้าไม่ใช่  และต้องการที่จะใช้หน้า index.php  ให้มีปุ่ม คลิกเข้ามาที่หน้าใหม่นี้ หรือจะสั่งให้ Redir มา ก็ สุดแท้แต่ท่าน ครับ



    สำหรับ ท่านที่จะใช้ index.php   แล้วสั่งให้ re direct  มาที่หน้าใหม่นี้ ก็ใส่รายละเอียดตามนี้ เข้าไปด้านในครับ
     
    <?php
    header("Location: main.php");
    ?>


    สำหรับไฟล์ main.php  ท่านอาจจะใช้ Stylesheet ในการตกแต่ง หรือ มีเทมเพลทส่วนตัวในการจัดการอยู่แล้ว
    เราก็ไม่ว่ากันครับ

    ตานี้ ก็มาถึงงานที่เราต้องทำ ล่ะครับ ว่า จะเรียกเอาฟังก์ชั่น ที่อยู่ใน SSI.php เข้ามาใช้งานได้อย่างไร
    ที่บรรทัดแรกสุด เลย ให้แทรก
     
    <?php require("board/SSI.php"); ?>


    ไว้บนสุด  ให้อยู่เหนือสิ่งอื่นใด ครับ  หลังจากนั้น ก็ จัดการ layout ต่างๆ ที่ต้องการจะใส่ ssi function

    ดูโครงสร้างประกอบ นะครับ  (ท่านอาจจะทำได้ดีกว่าผม   ผมมั่นใจ)



    ขออนุญาต ไม่ Preview ให้ดู เพราะ มันไม่ค่อยสวยหรอก  ทุกๆ ท่านอาจจะทำได้ดีกว่าผม   ผมมั่นใจ
    แค่นี้ล่ะครับ ที่จะบอก (ฟรีๆ)  ยากกว่านี้ หรือลูกเล่นใดๆ ที่มากกว่านี้  คงไม่ขอเปิดเผย นะครับ