วันอังคารที่ 30 สิงหาคม พ.ศ. 2554
[smf] วิธีลบกระทู้ครั้งละหลายๆกระทู้
วันนี้ขอเสนอวิธีลบกระทู้ทั้งหมดทั้งมวลด้วยการคลิกครั้งเดียว !!!
วิธีแรก คือ คลิกไปยังชื่อผู้โพสต์เลย > เลือกการกระทำ > ลบผู้ใช้งานนี้ > เลือก กระทู้และหัวข้อ > คลิกตกลง
ทั้งกระทู้ตอบ และกระทู้ตั้งพร้อมทั้งสแปมคนนั้นจะหายไปจากบอร์ดของเราในบัดดล!!
ส่วนอีกวิธีหนึ่ง กรณีสแปมมาหลายตัวและโพสต์กระทู้สลับกันไปสลับกันมาเยอะแยะมากมาย เราต้องการติ๊กเลือกกระทู้โน้น กระทู้นี้ กระทู้นั่น กระทู้นั้น ฯลฯ แล้วคลิก ลบทีเดียวเลย ทำได้ไหม??
ทำได้ครับ..ดังนี้
ไปที่เมนู ข้อมูลส่วนตัว > แก้ไขข้อมูล > ปรับแต่งธีมและการวางรูปแบบ
เสร็จแล้วมองลงไปที่เมนูต่ำสุด ชื่อหัวชือ "แสดงปุ่มเลือกข้อความในหน้าดัชนีข้อความเป็น"
เปลี่ยนลิสต์ในบ็อกจาก "ไม่แสดง" เป็น "เช็คบล็อค" คลิกปุ่ม "เปลี่ยนแปลงรายละเอียด"
เสร็จแล้วครับ
ทีนี้ลองไปดูที่กระทู้รวม เราจะมีปุ่มสำหรับติ๊กหลังกระทู้แล้ว
ขอบคุณบทความนี้จาก http://www.justusers.net ครับ
วันเสาร์ที่ 20 สิงหาคม พ.ศ. 2554
SMF Blue Gallery บอร์ดสำหรับคนชอบถ่ายภาพ
คลิกดูตัวอย่างจริงที่นี่
ถ้าคลิกเข้าไปแล้ว เจอบ้างไม่เจอบ้าง ก็ไม่ต้องตกใจนะครับ พอดีผมไปอาศัยฝากข้อมูลไว้ที่โฮสท์ฟรี เลยอาจมีปัญหาบ้างในบางครั้ง ต้องกด f5 เพื่อรีเฟรซอีกสักครั้งหรือสองครั้ง สามครั้งก็ดี
สำหรับธีมตัวนี้ ก็ตามชื่อเลยครับ สำหรับสังคมของคนที่ชื่นชอบการถ่ายรูป แบ่งปันข้อมูลการท่องเที่ยวและอื่นๆ
ความแปลกใหม่ของธีมนี้นอกจากภาพพื้นหลังขนาดใหญ่ที่เป็นแบบสไลด์แล้ว มีการดึงเอากระทู้มาแสดงเนื้อหาอย่างย่อไว้ในหน้าแรก เพื่อให้ดูมีความน่าสนใจมากขึ้น
ส่วนบอร์ดแต่ละหมวดจะจัดไว้ในเมนูขวามือแทน โดยแสดงเป็นแบบแบนเนอร์ สามารถเปลี่ยนภาพประจำหมวดหมู่ได้ตามชอบใจ
ท่านที่สนใจธีมนี้ เมล์มาที่ nevikup(at)hotmail.com (ไม่ได้แจกนะครับ)
วันศุกร์ที่ 19 สิงหาคม พ.ศ. 2554
ฟังก์ชั่น BBCode to HTML แปลง BBCode เป็น HTML
ดังนั้น ต้องมีฟังก์ชั่นในการแปลงให้ข้อความจาก bbcode กลับเข้าสู่ html ดั่งเดิม
function bbcode2html($message) {
$preg = array(
'/(?<!\\\\)\[color(?::\w+)?=(.*?)\](.*?)\[\/color(?::\w+)?\]/si' => "<span style=\"color:\\1\">\\2</span>",
'/(?<!\\\\)\[size(?::\w+)?=(.*?)\](.*?)\[\/size(?::\w+)?\]/si' => "<span style=\"font-size:\\1\">\\2</span>",
'/(?<!\\\\)\[font(?::\w+)?=(.*?)\](.*?)\[\/font(?::\w+)?\]/si' => "<span style=\"font-family:\\1\">\\2</span>",
'/(?<!\\\\)\[align(?::\w+)?=(.*?)\](.*?)\[\/align(?::\w+)?\]/si' => "<div style=\"text-align:\\1\">\\2</div>",
'/(?<!\\\\)\[b(?::\w+)?\](.*?)\[\/b(?::\w+)?\]/si' => "<span style=\"font-weight:bold\">\\1</span>",
'/(?<!\\\\)\[i(?::\w+)?\](.*?)\[\/i(?::\w+)?\]/si' => "<span style=\"font-style:italic\">\\1</span>",
'/(?<!\\\\)\[u(?::\w+)?\](.*?)\[\/u(?::\w+)?\]/si' => "<span style=\"text-decoration:underline\">\\1</span>",
'/(?<!\\\\)\[center(?::\w+)?\](.*?)\[\/center(?::\w+)?\]/si' => "<div style=\"text-align:center\">\\1</div>",
// [email]
'/(?<!\\\\)\[email(?::\w+)?\](.*?)\[\/email(?::\w+)?\]/si' => "<a href=\"mailto:\\1\" class=\"bb-email\">\\1</a>",
'/(?<!\\\\)\[email(?::\w+)?=(.*?)\](.*?)\[\/email(?::\w+)?\]/si' => "<a href=\"mailto:\\1\" class=\"bb-email\">\\2</a>",
// [url]
'/(?<!\\\\)\[url(?::\w+)?\]www\.(.*?)\[\/url(?::\w+)?\]/si' => "<a href=\"http://www.\\1\" target=\"_blank\" class=\"bb-url\">\\1</a>",
'/(?<!\\\\)\[url(?::\w+)?\](.*?)\[\/url(?::\w+)?\]/si' => "<a href=\"\\1\" target=\"_blank\" class=\"bb-url\">\\1</a>",
'/(?<!\\\\)\[url(?::\w+)?=(.*?)?\](.*?)\[\/url(?::\w+)?\]/si' => "<a href=\"\\1\" target=\"_blank\" class=\"bb-url\">\\2</a>",
// [img]
'/(?<!\\\\)\[img(?::\w+)?\](.*?)\[\/img(?::\w+)?\]/si' => "<img src=\"\\1\" alt=\"\\1\" class=\"bb-image\" />",
'/(?<!\\\\)\[img(?::\w+)?=(.*?)x(.*?)\](.*?)\[\/img(?::\w+)?\]/si' => "<img width=\"\\1\" height=\"\\2\" src=\"\\3\" alt=\"\\3\" class=\"bb-image\" />",
// [list]
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\*(?::\w+)?\](.*?)(?=(?:\s*<br\s*\/?>\s*)?\[\*|(?:\s*<br\s*\/?>\s*)?\[\/?list)/si' => "\n<li class=\"bb-listitem\">\\1</li>",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\/list(:(?!u|o)\w+)?\](?:<br\s*\/?>)?/si' => "\n</ul>",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\/list:u(:\w+)?\](?:<br\s*\/?>)?/si' => "\n</ul>",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[\/list:o(:\w+)?\](?:<br\s*\/?>)?/si' => "\n</ol>",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(:(?!u|o)\w+)?\]\s*(?:<br\s*\/?>)?/si' => "\n<ul class=\"bb-list-unordered\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list:u(:\w+)?\]\s*(?:<br\s*\/?>)?/si' => "\n<ul class=\"bb-list-unordered\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list:o(:\w+)?\]\s*(?:<br\s*\/?>)?/si' => "\n<ol class=\"bb-list-ordered\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=1\]\s*(?:<br\s*\/?>)?/si' => "\n<ol class=\"bb-list-ordered,bb-list-ordered-d\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=i\]\s*(?:<br\s*\/?>)?/s' => "\n<ol class=\"bb-list-ordered,bb-list-ordered-lr\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=I\]\s*(?:<br\s*\/?>)?/s' => "\n<ol class=\"bb-list-ordered,bb-list-ordered-ur\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=a\]\s*(?:<br\s*\/?>)?/s' => "\n<ol class=\"bb-list-ordered,bb-list-ordered-la\">",
'/(?<!\\\\)(?:\s*<br\s*\/?>\s*)?\[list(?::o)?(:\w+)?=A\]\s*(?:<br\s*\/?>)?/s' => "\n<ol class=\"bb-list-ordered,bb-list-ordered-ua\">",
//line breaks
'/\n/' => "<br>",
// escaped tags like \[b], \[color], \[url], ...
'/\\\\(\[\/?\w+(?::\w+)*\])/' => "\\1"
);
$message = preg_replace(array_keys($preg), array_values($preg), $message);
return $message;
}
วิธีใช้
$body="ฉัน[b]รัก[/b]ประเทศไทย"
echo bbcode2html($body);
ผลลัพธ์
ฉัน<b>รัก</b>ประเทศไทย
วันพฤหัสบดีที่ 18 สิงหาคม พ.ศ. 2554
[smf] แจกธีมsmf Blue Theme 2.0
วันนี้ขอเอาใจคนใช้ smf เวอร์ชั่น 2.0 ย้ำนะครับว่าเป็นเวอร์ชั่น 2.0 finalเท่านั้น ประเภทเวอร์ชั่น 2 rc1 หรือ rc 3 rc 5 ใช้ไม่ได้นะครับ
หน้าตาอาจไม่ต่างจาก Blue Theme เวอร์ชั่น 1 มากนัก มาดูหน้าตาก่อนดีครับ
ดูตัวอย่างจริงคลิกที่นี่
ดาวน์โหลดคลิกที่นี่
สำหรับ Blue Theme ตัวนี้ผมได้ปรับแต่งจากธีม Default ของ smf ดังนั้นหน้าตาจึงดูไม่แตกต่างจากธีมดีฟอลต์สักเท่าไร แต่ถ้าใครต้องการหนีจากความซ้ำซากของธีมดีฟอลต์ ธีมนี้คือคำตอบ
สิ่งที่เพิ่มเติมให้ใน Blue Theme นี้คือ แบนเนอร์ และเมนูหลักเพื่อลิงค์ไปยังหน้าแรกของเว็บไซต์
เอาเป็นว่า หากใครพบปัญหาในการใช้งานหรือนำไปแก้ไขเปลี่ยนแปลงแล้วไม่ได้ดังใจ ก็แสดงความคิดเห็นด้านล่างได้
แล้วพบกันใหม่ในตอนนั้น
วันอังคารที่ 16 สิงหาคม พ.ศ. 2554
[smf] Theme 2.0 ธีม smf สำหรับเวอร์ชั่น 2.0
(คลิกที่ภาพเพื่อดูภาพใหญ่)
ธีมตัวนี้ชื่อว่า Nonthaburi แน่นอนครับ ตั้งชื่อตามเนื้อหา เพราะเนื้อหาต้องการสร้างเป็นชุมชมของคนนนทบุรี (หรือชุมชนของคนในจังหวัดใดจังหวัดหนึ่งที่นำธีมนี้ไปใช้) ต้องการให้คนในจังหวัดช่วยกันนำเสนอเนื้อหา ที่ท่องเที่ยวภายในจังหวัดของตนเอง
ถ้าทุกจังหวัดมีชุมชนออนไลน์เป็นของตัวเองอย่างเข้มแข็ง ทุกคนโพสต์ความคิดความเห็น นำเสนอสถานที่ท่องเที่ยว ฯลฯ ของจังหวัดตัวเอง ผมคิดว่าน่าจะเป็นเรื่องที่ดีมาก คงไม่มีใครรู้เรื่องในจังหวัดดีกว่าคนในจังหวัดนั้นๆ
ลองคลิกดูตัวอย่างจริงๆได้ที่นี่นะครับ
วันเสาร์ที่ 13 สิงหาคม พ.ศ. 2554
[smf] อัพเกรด upgrade smf 2.0
อันดับแรกเลยคือต้องทำการอัพเกรดจากเวอร์ชั่น 1.1+ สู่เวอร์ชั่น 2.0 !!
แนะนำอย่างหนึ่งก่อนทำการอัพเดทนะครับ ควรแบกอัพข้อมูลทุกอย่างไว้ให้เรียบร้อย อย่า ..บอกคำเดียวเลยว่า อย่า !! บังอาจไปอัพเกรดบนเซฟเวอร์ด้วยข้อมูลจริง บนโฮสท์จริงๆ ข้อมูลอาจสูญหาย มีปัญหา หรือมาไม่ครบถ้วน ถึงตอนนั้น ต่อให้จุดธูปบนบาน แก้บนหรือแก้ล่างด้วย ข้อมูลก็ไม่ยอมกลับมาครับ
อย่าให้เป็นเช่นนั้นเลย ข้อมูลที่สะสมผ่านการโพสต์จากมวลสมาชิกมากหน้าหลายตา กลั่นกรองมาหลายปีต้องมาป่นปี้ด้วยวิธีอัพเกรดที่ผิดพลาด !!
ดาวน์โหลดข้อมูลลงมาไว้ในเครื่องให้เสร็จสรรพก่อน แล้วค่อยอัพเกรดในเครื่องเราก่อนนี้แหละครับ
หลังจากโหลดมาไว้ในเครื่องแล้ว รันดูว่าใช้งานได้หรือเปล่า
ถ้าใช้งานได้ปกติให้ล็อกอินเข้าสู่เมนูแอดมิน ถ้าบอร์ดของเราเป็นภาษาไทย เปลี่ยนให้เป็นภาษาอังกฤษก่อน
การอัพเกรด smf จากเวอร์ชั่นอะไรก็แล้วแต่สู่เวอร์ชั่น 2.0 final ก่อนอื่นต้องไปดาวน์โหลดไฟล์upgrade ก่อนครับ (คลิกดาวน์โหลดที่ลิงค์ด้านล่าง)
http://download.simplemachines.org/
เลือกเอาที่เป็น Large upgrade นะครับ
จากนั้นเอามาแตกซิบให้เสร็จสรรพ แล้วจับมันโยนลงไปในโฟลเดอร์ของsmfของเราเลยครับ อาจมีการแจ้งเตือนการทับไฟล์เดิม ก็โอเคไปเลย
เมื่อดาวน์โหลดไฟล์มาไว้ในโฟลเดอร์เสร็จแล้ว ทีนี้เรียกไฟล์ upgrade.php ผ่านบราวเซอร์ http://localhost/forum/upgrade.php
พอมาถึงขั้นตอนนี้ระบบก็จะแจ้งทางหน้าจอว่าท่านต้องทำอะไรบ้าง ใส่รหัสผ่านดาต้าเบส ใส่ชื่อแอดมิน กระบวนการขั้นตอนคล้ายๆการ install ใหม่ครับ
หากไม่มีปัญหาใดๆ ในการอัพเกรดจะใช้เวลาไม่เกิน 15 นาที
เมื่อกระบวนการเสร็จสรรพเราก็จะได้ smf เวอร์ชั่น 2 ที่มีธีมdefault แปลกหูแปลกตา เร็ว สวย น่าดูกว่าเดิม ทั้งนี้มิใช่สวยแค่หน้าตานะครับ ระบบหลายๆอย่างได้เปลี่ยนไปในทางที่ดีขึ้น layout ของบอร์ดก็เปลี่ยนเอาตารางออกไป (แต่ยังออกไม่หมด) เอา css มาใช้ในการวางเลย์เอาเยอะขึ้น
การปรับแต่งหลายๆอย่างที่ทำได้ในเวอร์ชั่น 1 ก็ยังสามารถปรับแต่งได้ในเวอร์ชั่น 2 เช่นกันครับ
เดี๋ยวครั้งหน้าเรามาดูวิธีการแต่งธีมในเวอร์ชั่น 2.0 บ้าง
หมายเหตุ : ดูการอัพเกรดพร้อมภาพประกอบที่ http://www.select2web.com/forums/index.php?topic=45.0
วันพุธที่ 10 สิงหาคม พ.ศ. 2554
[web] print screen หน้าเว็บเพจง่ายๆด้วย Aviary
ท่านที่อยากจะปริ๊นสกรีนเว็บเพจทั้งหน้า หรือบางส่วน ส่วนใดส่วนหนึ่งของเว็บ ไม่จำเป็นต้องง้อโปรแกรมใหญ่ๆอีกแล้วครับ
บางคนอาจบอกว่า ใช้ปุ่มPrint Screen บนคีย์บอร์ด ไม่ง่ายกว่าเหรอ?
ง่ายกว่าจริงครับ แต่ถามว่าปุ่มนั้นปุ่มเดียวสามารถปรินสกรีนหน้าเว็บทั้งหน้าได้ไหมละ?
กรณีถ้าเว็บหน้าย๊าว ยาว
ทำได้เหมือนกัน แต่ต้องปรินสกรีนหลายๆครั้ง เอาไปต่อในโปรแกรม photoshop โอ๊ยยุ่งยากตายห่า!!
ผมมีวิธีที่ง่ายกว่านั้นครับ เพียงท่านใช้ Firefox ท่านก็ลง Add-ons ชื่อว่า Aviary
หรือคลิกที่นี่ครับ http://aviary.com/install/firefox
ในหน้าดังกล่าวระบบจะชวนให้ท่าน install Aviary ลงบนบราวเซอร์ Firefox ลงเสร็จแล้ว restart firefox สักรอบนึงก่อน
จากนั้นบนเมนูบราวเซอร์ของท่านจะมีเมนูเพิ่มมาอีกตัวคือ Aviary
ลองคลิกดูจะมีเมนูให้เลือกเพียบ!!
ทั้ง capture ภาพทั้งเพจ เฉพาะจุด หรือตำแหน่งที่เลือกก็ได้
งานนี้บอกได้คำเดียวว่า ..มันจอร์จมาก!!
วันจันทร์ที่ 8 สิงหาคม พ.ศ. 2554
[smf]Tip การตั้งค่าให้แสดงเวลาในการประมวลผลในหน้าเพจ
วันนี้เลยจะมาแนะนำเมนูสำหรับแสดงเวลาในการประมวลผลในหน้าเพจ
สำหรับเวอร์ชั่น 1 เข้าแอดมนิ > ส่วนปรับแต่งค่าการใช้งาน > วางรูปแบบ
ติ๊กตรงคำว่า แสดงเวลาที่ใช้ในการสร้างหน้าทุกหน้า
กดบันทึก..เสร็จ
สำหรับเวอร์ชั่น 2 เข้าแอดมิน > ปรับแต่งบอร์ด > Features and Options > Layout
ติ๊กตรงคำว่า Display time taken to create every page
กดบันทึก.. เสร็จ
วันนี้มาง่ายๆจบง่ายๆงี้แหละ
วันศุกร์ที่ 5 สิงหาคม พ.ศ. 2554
[smf] แจกธีมsmf Blue Theme
เมื่อเขียนบทความเรื่องอะไร ก็ไปปรับแต่งในธีมนั้นๆ ไปด้วย บทความที่เีขียนเกี่ยวกับ smf มากกว่า 20 บทความผมได้ลงมือจริงในธีมที่ชื่อว่า Blue theme
และบัดนี้บทความเกี่ยวกับการแต่งธีมหรือโมธีมในเวอร์ชั่น 1+ ได้สมบูรณ์แล้ว
จึงนำมาให้ลองนำไปใช้ ไปแต่งเพิ่ม ตัดทิ้ง หรือแก้ไขเปลี่ยนแปลงแล้วแต่สะดวกครับ ท่านสามารถนำไปใช้ได้ตามใจชอบ ขอเพียงอย่างหนึ่งว่าให้เครดิตผมนิ๊สนึงตรงจุดใดก็ได้ภายในเว็บ
ภายในธีมผมได้ใส่ไฟล์ psd ไปด้วย เผื่อท่านนำไปปรับแต่งแก้ไขตามใจสะดวก
หากนำไปใช้แล้ว ไม่เป็นผลตามภาพ แนะนำให้ท่านเข้ามาอ่านวิธีลง วิธีใช้ในบล็อกแห่งนี้นะครับ
ภาพตัวอย่าง
คลิกดูตัวอย่างจริง
ดาวน์โหลดที่นี่
ธีมนี้สำหรับ smf เวอร์ชั่น 1 เท่านั้นนะครับ จะ 1.1 หรือ 1. อะไรก็ได้ ส่วนเวอร์ชั่น 2 รอหน่อยนะครับ จะออกมาพร้อมๆกับบทความ
และไม่ support กับ ไออี 6 นะครับ
หากมีปัญหาการใช้งาน กรุณาโพสต์ถามที่นี่นะครับ
วันพฤหัสบดีที่ 4 สิงหาคม พ.ศ. 2554
[smf] แก้ปัญหาเมื่อตั้งกระทู้ยาวๆไม่ได้
การตั้งกระทู้ยาวๆไม่ได้ นั้น
ปัญหาเกิดจากการใช้ charset เป็น utf-8 ทำให้มีการจัดเก็บตัวอักษรเพิ่มขึ้น วิธีการแก้ปัญหาสามารถแก้ได้หลายจุด หรืออาจจะต้องแก้พร้อมๆกัน
1. ในส่วนของ database mysql ถ้าหากเป็น utf8_bin อาจจะต้องไปแก้ใน table "smf_messages" จาก TINYTEXT เป็น MEDIUMTEXT
ข้อนี้เท่ากับเป็นการขยายขนาดฟิลด์ แต่ถ้าแก้แค่นี้ก็ยังคงเหมือนเดิม นอกจากจะเปลี่ยนสคริปตามที่คุณ terdsak บอก
2. การแก้ไขในส่วนของคำสั่ง
เปิดไฟล์ /Sources/Post.php แล้วหาบรรทัดคำสั่ง
// Make sure the subject isn't too long - taking into account special characters.
if ($func['strlen']($form_subject) > 100)
$form_subject = $func['substr']($form_subject, 0, 100);
// At this point, we want to make sure the subject isn't too long.
if ($func['strlen']($_POST['subject']) > 100)
$_POST['subject'] = addslashes($func['substr'](stripslashes($_POST['subject']), 0, 100));
// Maximum number of characters.
if ($func['strlen']($_POST['subject']) > 100)
$_POST['subject'] = addslashes($func['substr'](stripslashes($_POST['subject']), 0, 100));
ทั้งหมด 3 จุด แล้วเปลี่ยนตัวเลขจาก 100 ให้เพิ่มขึ้นเป็นซัก 300 - 500 แทน
ตรง นี้ทำให้มีการตัดคำให้ยาวขึ้น ซึ่งจะแก้ปัญหาได้ระดับหนึ่ง แต่จะยังมีปัญหาว่าถ้าเกิดมีการตั้งหัวข้อที่ยาวมากๆๆก็จะเจอปัญหาการตัดคำ ไม่ลงตัว กลายเป็นมีตัวประหลาดเหมือนเดิม
ั3. เปิดไฟล์ /Themes/default/Post.template.php
ประมาณบรรทัดที่ 426
// Now show the subject box for this post.
echo '
<tr>
<td align="right" style="font-weight: bold;', isset($context['post_error']['no_subject']) ? 'color: red;' : '', '" id="caption_subject">
', $txt[70], ':
</td>
<td>
<input type="text" name="subject"', $context['subject'] == '' ? '' : ' value="' . $context['subject'] . '"', ' tabindex="', $context['tabindex']++, '" size="80" maxlength="80" />
ให้เปลี่ยนค่า maxlength ให้ลดลงเหลือซัก 50
เครดิตจาก : http://smf.rcw.ms/index.php?topic=1753.0
[smf] ศัลยกรรมหน้าบอร์ดให้เป็นหน้าเว็บ
ติดตั้งเหล็กดัด มุ้งลวดให้บอร์ดเรียบร้อยแล้ว จากนี้ก็จะมานั่งคิดต่อว่า ถ้าเกิดเราจะทำบอร์ดของเราให้เป็นเว็บเลยได้ไหม?
หลายๆเว็บก็ทำกันแบบนั้น ประมาณว่าเข้ามาในเว็บปุ๊บก็เจอบอร์ดปั๊บเลย แบบนั้นมันธรรมดาไป
ในฐานะคนแต่งบอร์ดต้องรู้จักจัดวางตำแหน่งใหม่ ให้คนเข้ามาในเว็บแล้ว ไม่รู้สึกว่าเข้ามาในบอร์ด หน้าเว็บนะ ไม่ใช่หน้าบอร์ด
หน้าบอร์ดเป็นยังไง? แล้วหน้าเว็บต้องเป็นยังไง?
หน้าบอร์ดก็มีกระทู้เรียงรายหลายหัวหลายหัวข้อ
หน้าเว็บก็จะมีการสรุปดึงเฉพาะกระทู้ที่สำคัญ หรือกระทู้ใหม่มาแสดงแต่พองาม ไม่มาก ไม่น้อยจนเกินไป
เมื่อแยกความแตกต่างได้แล้ว ทีนี้ก็ไม่ยากเลย เราต้องทำหน้าบอร์ดให้กลายเป็นหน้าเว็บ!!!
ก็จึงเลยดำเนินการปรับปรุงศัลยกรรมหน้าตาของเว็บบอร์ดให้ออกมาเป็นหน้าเว็บ (ดังภาพ)
ส่วนตัวอย่างจริง คลิกไปดูที่นี่ครับ
เดี๋ยวตอนต่อไปจะพาไปดูว่า วิธีศัลยกรรมหน้าตาบอร์ดให้เป็นหน้าเว็บนั้นทำอย่างไร?
[smf] เพิ่มปุ่ม like และปุ่มGoogle+1ในกระทู้
ใช้ได้กับ smf ทุกเวอร์ชั่นนะครับ
มาดูวิธีใส่ใน smf ก่อน
เปิดไฟล์ Display.template.php ถ้าเป็น smf เวอร์ชั่น 1 ให้ค้นหาคำว่า
<hr class="hrcolor" width="100%" size="1">
ส่วนถ้าเป็นเวอร์ชั่น 2 ให้ค้นหาคำว่า
<div class="inner" id="msg_', $message['id'], '"', '>
หลังจากเจอแล้วให้ใส่โค๊ดนี้ด้านล่าง
<div class="like">
<iframe src="http://www.facebook.com/plugins/like.php?href=',$scripturl,'/topic,',$context['current_topic'],'.msg',$message['id'],'&layout=standard&show-faces=true&width=530&height=60&action=like&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:530px; height:60px"></iframe>
</div>
จบวิธีสำหรับใส่ปุ่ม like
วิธีใส่ปุ่ม Google + 1 ในกระทู้บ้าง
ก่อนอื่นเปิดไฟล์ index.template.php
ก็อปปี้โค๊ดด้านล่างนี้
echo '<script type="text/javascript" src="https://apis.google.com/js/plusone.js">{lang: "
ไปใส่ในส่วน head ครับ เสร็จแล้วเซฟ
ถัดไปเปิดไฟล์ Display.template.php ที่อยู่ในธีมของเรา
สำหรับเวอร์ชั่น 2 ให้ค้นหาำำคำว่า <ul class="reset smalltext quickbuttons">';
ถ้าเป็นเวอร์ชั่น 1 ให้ค้นหาคำว่า <td align="', !$context['right_to_left'] ? 'right' : 'left', '" valign="bottom" height="20" style="font-size: smaller;">';
เมื่อเจอแล้ว ให้วางโค๊ดนี้ถัดจากโค๊ดที่ค้นหาเจอนั้น
สำหรับเวอร์ชั่น 2 echo '<li><g:plusone href="',$scripturl,'/topic,',$context['current_topic'],'.msg',$message['id'],'"></g:plusone></li>';
สำหรับเวอร์ชั่น 1 <td align="', !$context['right_to_left'] ? 'right' : 'left', '" valign="bottom" height="20" style="font-size: smaller;">';
ตำแหน่งที่วางนี้ไม่ได้จำกัดตายตัวว่าต้องวางตรงนี้นะครับ จริงๆแล้วอยากใส่ตรงไหนก็สามารถไปแหมะวางตรงนั้นได้ แต่ที่ผมพิกัดพื้นที่ให้แบบนี้ เพื่อง่ายต่อการเขียนอธิบายครับ
[smf] ทำบอร์ดให้โพสต์ youtube ได้(สำหรับ smf เวอร์ชั่น 2+)
ถ้าเวอร์ชั่น 2 ก็จะมีการแก้ไขที่แตกต่างกันไป (ยกเว้นคนติดตั้ง mod ) อาจไม่ยุ่งยากและซับซ้อนเท่าไร แต่ผมใช้วิธี manual ครับ
ไฟล์ที่เกี่ยวข้องมี แค่ 3 ตัวครับ
1 ./Sources/Subs.php
2 ./Sources/Subs-Editor.php
3 .Themes/default/languages/Modifications.english.php
ในไฟล์ Sources/Subs.php แก้ไขดังนี้
ค้นหาคำว่า
array(
'tag' => 'hr',
'type' => 'closed',
'content' => '<hr />',
'block_level' => true,
),
เจอแล้วตบลงมาบรรดทัดนึ่ง เพิ่มคำสั่งนี้เข้าไป
array(
'tag' => 'youtube',
'type' => 'unparsed_commas_content',
'test' => '\d+,\d+\]',
'content' => '',
'validate' => create_function('&$tag, &$data, $disabled', '
if (isset($disabled[\'url\']))
$tag[\'content\'] = \'$1\';'),
'disabled_content' => '$1',
),
เซฟปิดไป
ในไฟล์ Sources/Subs-Editor.php แก้ไขดังนี้
ค้นหาคำสั่ง
array(
'image' => 'img',
'code' => 'img',
'before' => '[img]',
'after' => '[/img]',
'description' => $txt['image']
),
ใส่คำสั่งนี้ด้านบนคำสั่งที่ค้นหา
$context['bbc_tags'][] = array(
array(
'image' => 'youtube',
'code' => 'youtube',
'before' => '[youtube]',
'after' => '[/youtube]',
'description' => $txt['youtube']
),
เซฟปิด..
แก้ไขไฟล์ Modifications.english.php ดังนี้
เพิ่มคำสั่งนี้ไป
$txt['youtube'] = 'YouTube';
$txt['youtube_invalid'] = '#Invalid YouTube Link#';
เซฟปิด..
เอาไอค่อนนี้ ไปเก็บไว้ที่โฟลเดอร์ images ในธีมของเรา
เพียงเท่านี้ก็เสร็จแล้วครับ ลองไปดูในหน้าโพสต์กระทู้จะเจอปุ่ม youtube การโพสต์ก็เหมือนเดิมที่เคยเขียนไว้แล้วครับ
วันพุธที่ 3 สิงหาคม พ.ศ. 2554
[smf] ขอแนะนำ Anti-Spam Verification มอดดักสแปม
[smf] Captcha anti spam สร้างรหัสลับป้องกันสแปมบุก!!
สำหรับ smf เวอร์ชั่น 1 เอง เครื่องมือป้องกันสแปมที่ให้มาถึงว่ายังอ่อน ถูกโจมตีได้ง่าย แต่สำหรับเวอร์ชั่น 2 ขึ้นไป ตั้งแต่ RC-1 จนถึง RC ปัจจุบัน (ซึ่งไม่รู้มันจะ Final เมื่อไร) มีตัวป้องกันค่อนข้างดีและไว้ใจได้ เพราะสามารถสร้างคำถามและคำตอบขึ้นมาเอง ต่อให้สแปมเทพมาจากไหน มันก็เอาคำตอบของเราไม่ได้หรอก เพราะเราเปลี่ยนแม่งทุกวันไปเลย
ที่ผ่านมาผมชวนแต่งธีมด้วยเวอร์ชั่น 1 มาตลอด ดังนั้น ตัวป้องกันสแปมก็เลยจะต้องอ้างอิงจากเวอร์ชั่น 1 ก่อน
เบื้องต้นเราไปดูตัวป้องกันสแปมที่ smf ให้มาก่อน เราจะใช้ประโยชน์อะไรจากมันได้บ้าง?
ล็อกอินเข้าสู่ระบบแอดมิน > ศูนย์จัดการลงทะเบียน > การตั้งค่า
เพื่อความปลอดภัยของบอร์ด ตรงเมนู วิธีการลงทะเบียนสำหรับสมาชิกใหม่ ควรเลือกให้เป็นแบบ ยืนยันการใช้งาน
ตรงเมนู เลือกให้เป็นขั้นสูงสุด
และตรงเมนู การจำลองความซับซ้อน เพื่อตรวจสอบความเป็นจริงของรูปภาพ ก็เลือกให้เป็นขั้นยากที่สุด เพราะถึงแม้จะเป็นระดับยากสุด แต่ก็ยังถือว่ามีความปลอดภัยต่ำสำหรับการโจมตีจากสแปม แต่เบื้องต้นตั้งค่าสูงสุดเท่าที่ระบบจะมีให้ก่อนจะเป็นการดี การตั้งค่าความปลอดภัยนี้ต้องตั้งตั้งแต่เริ่มเปิดใช้บอร์ดครับ
ในตอนนี้พูดถึงตัวป้องกันสแปมที่ระบบ smf มีมาให้ก่อน ในตอนหน้าเราจะหาเครื่องไม้เครื่องมือมาช่วยป้องกันการโจมตีจากสแปมให้ยากขึ้นกว่าเดิม อย่าพึ่งคิดว่าเท่านี้ก็เอาสแปมอยู่ ถ้าคิดอย่างนั้นคุณกำลังประมาทอย่างยิ่งครับ
อย่าลืมว่า ยิ่งระบบฉลาดมากเท่าไร สแปมก็พัฒนาขีดความสามารถสูงขึ้นเท่านั้น
ตอนหน้ามาว่ากันถึงเครื่องมือสำหรับรับมือกับสแปมครับ
วันอังคารที่ 2 สิงหาคม พ.ศ. 2554
[smf] เปลี่ยนชื่อโฟลเดอร์บอร์ดเถิด..จะเกิดปัญหา
เกือบ 90 % ผู้แทนที่เราไปกาเลือก ไม่ได้เป็นสส. หรอก !!
นอกเรื่องละ วกเข้ามาเรื่องเราดีกว่า
เรื่องโฟลเดอร์ชื่อของบอร์ดก็เช่นกัน เดี๋ยวใช้ชื่อ board/ เดี๋ยวใช้ชื่อ forum/ เดี๋ยวก็อยากใช้ forums/ ฯลฯ
จะบอกว่าเปลี่ยนชื่อโฟลเดอร์นั้นมันไม่ยากเลย แต่พอเปลี่ยนแล้วปุ๊บ ..เกิดปัญหาทันที
บางคนรู้มาก(เช่นผม 555) รีบไปเปิดดาต้าเบสตาราง _theme เพื่อแก้พาธของธีม พาธภาพ ฯลฯ และเปิดตาราง _settings แก้พาธอีกที่หนึ่งเหมือนกัน แก้จนหมดทุกที่ทุกตารางที่เก็บพาธของธีม แต่ปรากฏว่าบอร์ดก็ไม่มา มันหายสาปสูญ หน้าบอร์อเป็นสีขาวเนียนนวล ไม่แจ้งเอ่อเร่อห่าเหวอะไรมาให้อุ่นใจเลยแม้แต่บรรทัดเดียว !!!
เหี้ยแล้วสิ (ขอโทษที่เผลออุทานหยาบ)
มาดูวิธีแก้ปัญหาที่ถูกต้องกันดีกว่าครับ
สมมติอยากจะเปลี่ยนชื่อโฟลเดอร์ของธีมเดิม ซึ่งมีชื่อว่า forum อยากจะเปลี่ยนให้มีชื่อว่า forums (มี s มาตัวหนึ่งมันจะสื่อความหมายอะไรหนักหนาวะ)
เราไม่ต้องไปเปลี่ยนข้อมูลในดาต้าเบสครับ เปลี่ยนแค่ข้อมูลในไฟล์พอ มี 2 ไฟล์ คือ
Settings_bak.php และ Settings.php
$boardurl ="http://xxxx.com/forums";
$boarddir="http://xxxx.com/forums";
$sourcedir ="/home/xxxx.com/forums/Sources";
$cachedir ="/home/xxxx.com/forums/cache";
เปลี่ยน 4 จุดนี้ครับ ดูให้ดีว่าบอร์ดของเราชื่ออะไร ตำแหน่งพาธเดิมคืออะไรไม่ต้องไปยุ่ง แก้เฉพาะชื่อบอร์ดก็พอ
เมื่อแก้เสร็จแล้ว ให้ไปดาวน์โหลดไฟล์ repair_settings.php ที่หน้านี้ http://download.simplemachines.org/?tools
อัพไปไว้ในโฟลเดอร์ของบอร์ด(ที่เปลี่ยนชื่อใหม่แล้วนั้น) เสร็จแล้วรันมันขึ้นมาครับ
ตรวจสอบดูในฟอร์มที่รันขึ้นมานั้น ว่าถูกต้องไหม? ถ้าถูกต้องแล้วก็คลิก Save Settings
เสร็จแล้ว ไปดูบอร์ดของเรา ณ โฟลเดอร์ใหม่นั้นสิ มารึยัง?
จะพบว่ามันมาบ้างแล้ว แต่ยังเอ่อๆ มาขาดๆเกินๆ ไม่ครบบาท ไม่ต้องตกใจครับ เพราะยังไม่เสร็จพิธี
ให้เขาคลิกไปที่เมนู admin (ถึงแม้หน้าตามันจะเ่อ่อๆ แต่ก็พอเดาได้ว่าลิงค์ไหนอยู่ตรงไหน ใช่มั้ยครับ)
คลิกไปที่เมนู admin > Themes and Layout > Themes Setthings
พอถึงหน้านี้ ให้ลงไปดูที่ด้านล่างสุดเลย จะเจอปุ่มนี้ Attempt to reset all themes ปุ่มนี้คือการพยายามคืนค่าของธีมทั้งหมดครับ คลิกเลยอย่ารอช้า
หลังจากคลิกแล้ว บอร์ดของเราก็เริ่มเป็นผู้เป็นคนแล้วใช่มั้ยครับ
ทีนี้ก็ปรับแต่งภาษาให้เป็นภาษาไทย
เท่านี้ก็เสร็จสมบูรณ์แล้วครับบ ..
[smf] เพิ่มเมนูเปลี่ยนภาพส่วนตัวให้หาง่ายๆ
สิ่งแรก ณ ตอนนั้นที่เริ่มใช้ smf คือ ผมอยากได้ภาพส่วนตัวแบบคนอื่นเขาบ้าง กว่าจะกวาดหาเมนูเปลี่ยนภาพส่วนตัวเจอ ก็เล่นเอาเหงื่อตกตดแตกกันเลยทีเดียว
ทีนี้มาผันตัวเองมาในฐานะผู้ทำบอร์ดให้คนอื่นใช้บ้าง เราจะปล่อยให้ผู้ใช้ประสบชะตากรรมเช่นนั้นอีกต่อไปไม่ได้ครับ เราต้องช่วยฉุดเขาจากความมืดบอด ชี้ทางสว่างให้
ในเมื่อเมนูนี้หรือเมนูไหนๆก็ตามที่ผู้ใช้มักใช้บ่อยๆ เราก็ควรจะดึงมาแสดงให้ใช้ง่ายๆหน่อย
ว่าแต่วิธีทำละ?
ความต้องการของเราคือเพิ่มเมนู "เปลี่ยนภาพส่วนตัว" ใต้ข้อความส่วนตัวที่มีอยู่แล้ว
อันดับแรกต้องหาตำแหน่งให้เจอก่อนว่ามันอยู่ตรงไหน
ค้นหาคำนี้ก็ได้ครับ // Show the total time logged in?
ผมไม่สามารถบอกตำแหน่งที่ชัดเจนได้ว่า ควรวางตรงไหน ให้ดูความเหมาะสมเอาครับ
ประเด็นคือ ลิงค์ที่พอคลิกไปแล้ว ให้ยิงตรงไปถึงหน้าเปลี่ยนภาพเลย
echo '<a href="', $scripturl, '?action=profile;u=', $context['user']['id'],';sa=forumProfile;" title="เปลี่ยนภาพส่วนตัว">เปลี่ยนภาพส่วนตัว</a>';
เพียงเท่านี้ เราก็จะมีเมนูด่วนทันใจให้ผู้ใช้สามารถใช้ได้ง่ายๆแล้วนะครับคุณขาาาาาาาา
หมายเหตุ : link นี้ใช้ได้เฉพาะเวอร์ชั่น 1 เท่านั้นนะครับ
วันจันทร์ที่ 1 สิงหาคม พ.ศ. 2554
[smf] ว่าด้วยการ include ไฟล์มาในหน้าบอร์ด
หากคุณมีไฟล์ .php ตัวหนึ่งและอยากแสดงข้อมูลในไฟล์ .php ออกมาในหน้าแรกของบอร์ด หรือในหน้าไหนก็แล้วแต่ในบอร์ดของท่าน ท่านจะใช้วิธีดึงมาอย่างไร
หลายคนคงคิดถึงฟังก์ชั่นนี้ include(); require(); หรือ require_once();ผมมีความเสียใจที่จะบอกว่า มันใช้ไม่ได้ครับ !!
วันนี้เลยอยากจะนำเสนอวิธีการเรียกไฟล์จากภายนอกเข้ามาในบอร์ด หลายคนอาจสงสัยว่า จะเรียกไฟล์เข้ามาในบอร์ดทำไมคืองี้ครับ พอดีผมมีไฟล์ .php ตัวหนึ่งไว้แสดงแบนเนอร์ และลิงค์
<a href="xxx"><img src="xxxx"/></a>
<a href="xxx"><img src="xxxx"/></a>
<a href="xxx"><img src="xxxx"/></a>
อยากเก็บไว้ไฟล์หนึ่งต่างหาก ก็เลยจำเป็นจะต้องเรียกไฟล์จากภายนอกมาฉะนี้แหละ
เกริ่นมาเยอะละ มาดูสิว่าวิธีที่ว่านั้นทำอย่างไร??
เขียนเป็นฟังก์ชั่นเลยครับ
function banner() {
global $settings, $context, $txt, $scripturl;
$path = $settings['theme_url'].'/banner.php' ;
$ads_file = fopen( $path , 'r');
$banner = stream_get_contents( $ads_file );
echo $banner;
}
จากตัวอย่างนี้ ผมมีไฟล์ banner.php ก็แค่เขียนคำสั่งดึงไฟล์ออกมา ทีนี้อยากให้ไฟล์นี้ไปโผล่ที่ไหนก็แค่เอาฟังก์ชั่นนี้ไปแหมะตรงนั้น
banner();
ทุกสิ่งทุกอย่างที่อยู่ในไฟล์ banner.php ก็จะพรั่งพรูออกมาหมด ด้วยประการฉะนี้แล