วันพฤหัสบดีที่ 24 กุมภาพันธ์ พ.ศ. 2554

การลงม็อดแบบ Manual (ตอนที่ 1)

smf mod จะมีบางกรณีที่ไม่สามารถลงแบบอัตโนมัติได้
ก็จำเป็นต้องลงแบบเมนวล แกะโค๊ดเอง 
- บางทีอาจเพราะไม่สามารถเปอมิสชันไฟล์ 777 ได้  เมื่อ 777 ไม่ได้ ไฟล์ก็เขียนทับไม่ได้
- บางทีไฟล์เขียนได้ แต่ไม่สามารถแอดดาต้าเบสได้ (บางม็อดจำเป็นต้องแอด)
- บางบอร์ดยำโค๊ดไฟล์จนเละเทะ ม็อดแบบออโตไม่สามารถหาโค๊ดเพื่อเขียนทับได้
- ม็อดบางตัว แก้ไฟล์ภาษาเยอะ เพราะฉะนั้นถ้าเราใช้ภาษาไทย เมนวลเอายังจะง่ายกว่าเสียอีก

แต่ทั้งนี้ การเมนวลม็อดนั้น ไม่ใช่ว่าจะเป็นข้อเสีย กลับเป็นข้อดีเสียด้วยซ้ำ 
- ได้ฝึกการอ่านโค๊ดจากไฟล์ติดตั้ง
- ได้รู้ลักษณะโครงสร้างของม็อด ทั้งเรื่องภาษา การทำงาน การขยายไฟล์
- ได้เรียนรู้การอ่านโค๊ดของไฟล์เว็บบอร์ด การจัดวางด้วยภาษาพีเอชพี
- โดยเฉพาะคนที่มีพื้นฐานเอชทีเอมแอลมาแล้ว จะเรียนรู้ได้อย่างรวดเร็ว

ตอนต่อไป
มาดูวิธีติดตั้งแบบครบสมบูรณ์  ทั้งดาต้าเบส วิธีแก้ไฟล์ วิธีอ่านไฟล์ติดตั้ง

วันอังคารที่ 22 กุมภาพันธ์ พ.ศ. 2554

ลงม็อดทำอย่างไร Modification (การลงม็อดแบบออโตแพ็คเกจ)

Modification หรือถ้าเทียบกับพวกจุมลาก็จะเป็นโมดูล หรือเป็นปลักอินในเว็บแอพพลิเคชันอื่นๆ
ม็อด ใช้ทำอะไร
1. ใช้เพิ่มความสามารถบางประการที่บอร์ดไม่ได้ทำมาให้ หรือทำมาให้แต่ไม่เพียงพอ
 เช่น แอนติบ็อท-สแปม   การแสดงคลิปวีดีโอ  การปรับแต่งโฆษณา เป็นต้น
2. ใช้เปลี่ยนแปลงและเพิ่มสมรรถนะบางประการให้กับฟีเจอร์ที่มีอยู่แล้ว
เช่น เพิ่มเติมการตอบด่วน  การสมัครสมาชิก เป็นต้น

Modification  ม็อดนี้หาได้จากไหน
http://custom.simplemachines.org/mods/
เลือกดูตามลักษณะการใช้งานได้เลยว่าเราจะปรับแต่งอะไร 

วิธีลงม็อด มีอยู่ 2 วิธี
1. แบบออโตแพ็คเกจ  
- ดาวน์โหลดม็อดที่ต้องการ  จากนั้นอัพขึ้นโฟลเดอร์แพ็คเกจ บนโฮสต์
- จากนั้นเปอมิสชั่น 777  ไฟล์หน้าแรก โฟลเดอร์ ธีม  ซอร์ส  แพ็คเกจ
- เข้าไปที่ผู้ดูแล / ศูนย์จัดการแพ็คเกจ / เลือกดูแพ็คเกจ
จะเจอม็อดที่เราอัพขึ้นไป  จากนั้นคลิกที่บันทึกม็อด

ลงม็อดแล้วไม่แสดงผล
* ม็อดบางตัวลงแล้วแสดงผลทันที นั่นก็เพราะไม่มีการปรับแต่งในส่วนที่แอดมินต้องไปเปิด หรือเลือกดำเนินการ
* ม็อดบางตัวลงแล้ว ต้องไปแก้ไฟล์ภาษาไทยด้วยถึงจะแสดงผล  วิธีสังเกตุ  ต้องดูว่าม็อดตัวนั้น แก้ไขไฟล์ภาษาอะไรบ้าง วิธีการดู



จากรูป เราจะเห็นว่า  ม็อดตัวนี้มีเวอร์ชันล่าสุด 1.0  
ม็อดตัวนี้ สนับสนุนเวอรืชัน 2.0 อาซี5   จากนั้นไปที่เมนูเลือกเวอรืชันของบอร์ดเรา
จากนั้นคลิกที่เพียร์

ลองดูส่วนท้ายๆ มักจะมีการแก้ภาษา  จากรูปเขาบอกให้ แก้ที่ไฟล์ม็อด.อิงลิส
เราก้ต้องไปแก้ที่ไฟล์  ม็อด.ไทย  (เพราะเราใช้ภาษาไทย)


* การจะดูว่าเปิดใช้งานหรือตั้งค่าม็อดได้จากไหน  ให้ดูจากลิงก์ม็อดต้นฉบับนั้นๆ เช่น custom.simplemachines.org/mods/index.php?mod=1623 External Link  อ่านเอาจาก Description: ม็อดตัวนี้แสดงผลทันที

อีกวิธีคือ ดูว่าม็อดนั้นๆแก้ไฟล์อะไรบ้าง  เช่น  แก้ไฟล์แอดมินเทมเพลท  แสดงว่าจะต้องมีเมนูเพิ่มมาในหน้าแอดมิน 
หรือแก้ไฟล์เปอมิสชัน  แสดงว่าจะต้องมีการเพิ่มการอนุญาต

การเขียนเว็บด้วย frame (ตอนที่ 3-จบ)

เราจะแบ่งพื้นที่โดยประมาณ ให้มีขนาดดังนี้
ส่วน ก. เมนู มีความกว้าง 250
ส่วน ข. ส่วนหัว มีความสูง 170
ส่วน ค. ส่วนเนื้อหา มีขนาดเท่าที่เหลือนั่นแหละ แค่ไหนก็แค่นั้น


ดังนั้นถ้าเขียนแบ่งเฟรม ก็จะได้ประมาณว่า

โค๊ด:
<FRAMESET cols="250, *">
    <FRAME name="menu" src="menu.htm">
    <FRAMESET rows="170, *">
        <FRAME name="header" src="header.htm">
        <FRAME name="content" src="page-01.htm">
    </FRAMESET>
</FRAMESET>

ถ้าเราต้องการเพิ่มการจัดรูปแบบของแต่ละเฟรม ก็ใส่ option ของ post ด้านบน
แต่ว่าถ้ากำหนด scrolling = no
จะมีปัญหาว่า ถ้าคนที่หน้าจอเล็กกว่าที่เราทำ
มันจะตกขอบ มองไม่เห็นส่วนที่เหลือ

ลองๆ ทำดูจะเห็นเอง

เอาล่ะ หน้าแรก แบบเต็มๆ

โค๊ด:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>A simple frameset document</TITLE>
</HEAD>
<FRAMESET cols="250, *">
    <FRAME name="menu" src="menu.htm">
    <FRAMESET rows="170, *">
        <FRAME name="header" src="header.htm">
        <FRAME name="content" src="page-01.htm">
    </FRAMESET>
</FRAMESET>
</HTML>

อธิบายแบบคร่าวๆ นะขอรับ :)
หวังว่าคงเข้าใจบ้าง

ลืมไป อีกหน่อย

ถ้าต้องการให้ link ไปปรากฏในเฟรมที่ต้องการ
อย่าลืมกำหนด target ที่ link นั้นด้วยนะ


การเขียนเว็บด้วย frame (ตอนที่ 2)

ขั้นต่อไป พอกำหนดหน้าตาของเว็บแล้ว จะใส่เนื้อหายังไง
เช่น ต้องการแบ่งเป็น 2 คอลัมน์ โดยด้านซ้ายเป็นเมนู
เมนูกว้าง 250 pixel ส่วนด้านขวา ก็ให้มีความกว้างตามพื้นที่ที่เหลือ

โค๊ด:
<FRAMESET cols="250,*">
      <FRAME src="menu.htm">
      <FRAME src="page-01.htm">
</FRAMESET>

ใน <FRAMESET> กำหนดว่าจะแบ่งเป็นกี่ส่วน
ก็จะต้องมี <FRAME src="ชื่อไฟล์ที่จะให้แสดง"> ตามจำนวนที่แบ่งไว้เท่ากัน

ในที่นี้แบ่งไว้ 2 ส่วน คือส่วนเมนู กับส่วนเนื้อหา
ส่วนเมนู คือไฟล์ menu.htm
ส่วนเนื้อหา คือไฟล์ page-01.htm

ทั้งสองไฟล์ ก็สร้างเป็นหน้าเว็บธรรมดานี่แหละ




มาดูกันต่อ ว่า <FRAME src=""> มีการกำหนดค่าอะไรได้บ้าง
name = กำหนดชื่อของ frame เอาไว้ใช้อ้างอิงเวลาที่ต้องการทำ link เพื่อให้แสดงใน frame ที่กำหนด
src = เนื้อหาของไฟล์ที่จะให้ปรากฏอยู่ในเฟรม
noresize ถ้ากำหนดค่านี้ไว้ จะทำให้เฟรมนี้ไม่มีการเปลี่ยนขนาด
scrolling = auto|yes|no เป็นการกำหนดว่าจะให้มี scroll bar หรือเปล่า เมื่อเนื้อหาที่แสดงมีขนาดใหญ่กว่าพื้นที่เฟรมที่กำหนดไว้ให้
frameborder = 1|0 จะให้แสดงขอบของเฟรมหรือไม่
marginwidth = pixels กำหนดว่าจะให้เว้นขอบซ้ายขวาของเนื้อหา กับกรอบของเฟรมเป็นระยะห่างเท่าไหร่
marginheight = pixels กำหนดว่าจะให้เว้นขอบบนล่างของเนื้อหา กับกรอบของเฟรมเป็นระยะห่างเท่าไหร่

การเขียนเว็บด้วย frame (ตอนที่ 1)


Credit : ธุลีดาว

การเขียนเว็บด้วย frame

อ้างอิงจาก
http://www.w3.org/TR/html401/present/frames.html

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

แต่ถ้าเราใช้เฟรม ก็เขียนเมนูเพียงแค่หน้าเดียว เวลาแก้ก็แก้แค่หน้าเดียว

ลองดูตัวอย่างเฟรม

โค๊ด:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>A simple frameset document</TITLE>
</HEAD>
<FRAMESET cols="20%, 80%">
  <FRAMESET rows="100, 200">
      <FRAME src="contents_of_frame1.html">
      <FRAME src="contents_of_frame2.gif">
  </FRAMESET>
  <FRAME src="contents_of_frame3.html">
  <NOFRAMES>
      <P>This frameset document contains:
      <UL>
         <LI><A href="contents_of_frame1.html">Some neat contents</A>
         <LI><IMG src="contents_of_frame2.gif" alt="A neat image">
         <LI><A href="contents_of_frame3.html">Some other neat contents</A>
      </UL>
  </NOFRAMES>
</FRAMESET>
</HTML>

จะได้หน้าตาเว็บประมาณนี้
โค๊ด:
---------------------------------------
|         |                             |
|         |                             |
| Frame 1 |                             |
|         |                             |
|         |                             |
|---------|                             |
|         |          Frame 3            |
|         |                             |
|         |                             |
|         |                             |
| Frame 2 |                             |
|         |                             |
|         |                             |
|         |                             |
|         |                             |
 ---------------------------------------


นั่นก็คือ หน้าที่ใช้สำหรับเรียกหน้าเว็บอื่นๆ จะเป็นหน้าที่กำหนดค่าเฟรม สำหรับแสดงผล
เช่น มีหน้า index.htm เป็นหน้าเฟรมสำหรับเรียกหน้าอื่นมาแสดง
และมีหน้าเนื้อหาคือ menu.htm กับ page-01.htm

ก่อนอื่น หน้า index.htm ก็ต้องสร้างเฟรมขึ้นมาก่อน ด้วยคำสั่ง
โค๊ด:
<FRAMESET></FRAMESET>

เราต้องออกแบบเสียก่อน ว่าจะให้มีการแบ่งหน้าแบบไหน? แนวตั้ง หรือแนวนอน
ถ้าแบ่งหน้าตามแนวนอน ก็จะใช้คำสั่ง
โค๊ด:
<FRAMESET cols="ความกว้างของคอลัมน์ 1, ความกว้างของคอลัมน์ 2, ความกว้างของคอลัมน์ 3, ..."></FRAMESET>

โดยที่ความกว้างนั้นสามารถกำหนดได้ 2 แบบคือ
กำหนดเป็นค่า pixel หรือ กำหนดเป็นเปอร์เซนต์
ถ้ากำหนดเป็น pixel ก็ใส่ค่าตัวเลข
ถ้ากำหนดเป็นเปอร์เซนต์ ก็ใส่ค่าตัวเลข ตามด้วยเครื่องหมาย %

คอลัมน์ จะมีกี่คอลัมน์ก็ได้ (แต่ถ้ามีมากจะงง แนะนำแค่ 2 ก็พอ)
เช่น ถ้าเราต้องการให้มี 2 คอลัมน์ โดยที่คอลัมน์ด้านซ้าย มีความกว้าง 250 ส่วนคอลัมน์ด้านขวา ต้องการให้เป็นพื้นที่ที่เหลือทั้งหมด
โค๊ด:
<FRAMESET cols="250,*"></FRAMESET>

แต่ถ้าต้องการแบ่งตามแนวตั้ง จะใช้รูปแบบ
โค๊ด:
<FRAMESET rows="ความสูงของแถว 1, ความสูงของแถว 2, ความสูงของแถว 3, ..."></FRAMESET>
การกำหนดค่าก็เหมือนกับการแบ่งตามแนวนอน

และถ้าต้องการแบ่งแบบซับซ้อน ก็สามารถใส่ได้ทั้ง cols กับ rows
โค๊ด:
<FRAMESET cols="xx,yy,zz" rows="aa,bb"></FRAMESET>

และสามารถทำเฟรมซ้อนเฟรมได้อีกด้วย เช่นตัวอย่างที่เขียนไว้ด้านบน