แสดงบทความที่มีป้ายกำกับ smf แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ smf แสดงบทความทั้งหมด

วันเสาร์ที่ 21 มิถุนายน พ.ศ. 2557

[SMF] How to SMF Responsive ตอนที่ 1 Bootstrap

อย่างที่ได้เกริ่นนำเมื่อบทความที่แล้วว่า ผมจะใช้  Bootstrap Framework  มาพัฒนา SMF  ให้เป็น Responsive ติดปีกให้บอร์ดธรรมดากลายเป็นบอร์ดที่สามารถพกพาไปได้บนมือถือ


ผมจะไม่ขอพูดถึง Bootstrap เพราะมีการเขียนไว้ค่อนข้างเยอะมากแล้ว แนะนำสำหรับท่านต้องการความรู้เกี่ยวกับ Bootstrap ให้คลิกเข้าไปอ่านที่นี่ได้เลย  http://www.siamhtml.com/bootstrap- คืออะไร-สอนวิธีใช้

หลังจากท่านดาวน์โหลด Bootstrap มาเรียบร้อยแล้ว ทีนี้มาเริ่มเข้าสู่กระบวนการติดปีกให้บอร์ดกันได้เลย

ขั้นตอนที่ 1 กรณีท่านยังไม่มีบอร์ด smf เลย ก็ให้ติดตั้ง หรือท่านที่มีบอร์ดเก่าอยู่แล้ว มีข้อมูลอยู่แล้ว ก็ไม่มีปัญหา การพัฒนาธีม จะไม่กระทบกับข้อมูลหลักแต่อย่างใดครับ

ขั้นตอนที่ 2  สร้างธีม smf ขึ้นมาใหม่เลย

ตามภาพ หลังจากคลิกสร้างธีม เราจะได้ธีมใหม่ ชื่อว่า Bootsrap คลิกย้อนกลับ และเลือกธีมที่พึ่งสร้างใหม่นั้นใช้งาน (อ่านวิธีการสร้างธีมใหม่โดยละเอียด คลิกที่นี่)

ในโฟลเดอร์ \Themes\  จะมีโฟลเดอร์สำหรับธีมใหม่ คือ Bootstrap

ขั้นตอนที่ 3 ไปเลือกเอาธีมของ Bootsrap มาใช้งาน ผมเลือกธีมชื่อ  Jumbotron มาใช้งาน


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

ให้ก็อปปี้ Bootsrap  Framework มาไว้ในโฟลเดอร์ธีม  SMF\Themes\Bootsrap\ 

ถึงตอนนี้ เราได้เตรียมพร้อมข้อมูลในฝั่งของ SMF  และ Bootsrap ไว้เรียบร้อยแล้ว ในบทต่อไปจะได้เข้าสู่ขบวนการปรับเปลี่ยนโครงสร้าง  SMF  ให้เป็น Bootsrap .

สรุป
ถึงตอนนี้มีสิ่งที่ท่านต้องรู้ ดังนี้
1. Responsive  คืออะไร?
2. Bootsrap Framework  คืออะไร?
3. การติดตั้งธีม SMF  ใหม่  ทำอย่างไร?

ถ้าท่านเข้าใจทั้ง 3 ข้อนี้ดีแล้ว จึงค่อยปฏิบัติตามบทที่ 2 ต่อไป
หากว่ายังไม่เข้าใจ อ่านใหม่ อ่านซ้ำ หรือหาความรู้เพิ่่มเติมอีกหน่อยครับ 



วันศุกร์ที่ 20 มิถุนายน พ.ศ. 2557

[SMF] ไฟล์สำหรับแก้ไขTheme smf เพื่อไม่ให้กระทบโค๊ดหลัก (Core)

ที่ตั้งไฟล์   
Themes/โฟลเดอร์เทมเพลทของท่าน เช่น Themes/mythem/ (ย้ำว่าไม่ใช่ Themes/default/ นะครับ)

1. index.template.php
 ไฟล์ที่เป็นโครงสร้างหลักของธีม ประกอบด้วย Header และ Footer
 Header และFooter ในไฟล์นี้จะเป็นเหมือนกันทุกๆหน้า จากไฟล์ตัวนี้

2. BoardIndex.template.php
  แสดงหมวดหมู่ของกระทู้ทั้งหมด ซึ่งจะแสดงในหน้าแรก

3.MessageIndex.template.php
 ไฟล์นี้ แสดงกระทู้รวมในหมวดหนึ่งๆ ที่เราคลิกจากหน้าแรกมีโครงสร้างเป็นตาราง Table

4. Display.template.php
แสดงรายละเอียดของกระทู้ พร้อมทั้งคำตอบ

5. Post.template.php
 ไฟล์นี้จัดการฟอร์มสำหรับโพสต์กระทู้

 เมื่อรู้ว่าไฟล์ไหนทำอะไรแล้ว เวลาจะทำการจัดการแก้ไข ก็ง่ายขึ้นครับ

วันพุธที่ 18 มิถุนายน พ.ศ. 2557

[SMF] การใส่ TextEditor สำหรับ smf เวอร์ชั่น 2++


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

TextEditor  ก็คือ ฟอร์มสำหรับตั้งหรือตอบกระทู้นั่นแหละครับ ที่อื่นเขามีฟอร์มโพสต์ง่ายๆ ใช้คำสั่ง html หรือใช้ตัวหนา ตัวหนา ใส่ลิงค์ก็ง่ายๆ เบสิกๆ แต่พี่ SMF เรานั่นไม่
แกใช้ bbccode  มีความเป็นเอกลัษณ์ของเอกบุรุษ แต่สร้างความยุ่งยากสำหรับคนที่ไม่่ชินอยู่ไม่น้อย

วันนี้เลยขอเสนอ TextEditor ที่จะช่วยให้การโพสต์ข้อความง่ายขึ้น เหมือนชาวบ้านมากขึ้น
มันคือ  CKEditor  http://ckeditor.com/demo

ตัวนี้ใช้ง่ายแสนง่ายครับ

ขั้นตอนที่ 1. ไปดาวน์โหลดมาก่อนเลยที่  http://ckeditor.com/download

ขั้นตอนที่ 2. เอา ckeditor  ที่ดาวน์โหลดมาแล้วไปไว้ที่โฟลเดอร์ธีมของเรา \Themes\YourTheme_naja

ขั้นตอนที่ 3. เปิดไฟล์ Post.template.php ใน \Themes\default เสร็จแล้ว Save as.. ไปไว้ที่โฟลเดอร์ธีมของเรา  \Themes\YourTheme_naja

ขั้นตอนที่ 4. เปิดไฟล์  Post.template.php ในโฟลเดอร์ธีมของเรานะครับ ไม่ใช่ธีม default เพื่อไม่ให้กระทบกับธีมหลัก แล้วหาคำว่า

// Finally, the submit buttons.
echo '
 
 เพิ่มโค๊ดนี้เข้าไปต่อท้าย คำที่ค้นหา

<script type="text/javascript" src="',$settings['theme_url'],'/ckeditor/ckeditor.js"></script>
    <script src="',$settings['theme_url'],'/ckeditor/samples/sample.js" type="text/javascript"></script>
    <link href="',$settings['theme_url'],'/ckeditor/samples/sample.css" rel="stylesheet" type="text/css" />

ขั้นตอนที่ 5. เปิดไฟล์ GenericControls.template.php ใน\Themes\default  ค้นหาคำว่า
<textarea class="editor"
ใส่คำนี้ไปแทน
<textarea class="ckeditor"

ขั้นตอนที่ 6 . เปิดไฟล์ Subs-Post ในโฟลเดอร์ Sources
หา $message = strtr(implode('', $parts), array('  ' => '  ', "\n" => '
',

แทนที่ด้วยคำสั่งนี้
$message = strtr(implode('', $parts), array('  ' => ' ', "\n" => '
', '&lt;' => '<', '<' => '<', '&gt;' => ">", '>' => '>', '"' => '"', '&nbsp;' => ' ', '&ldquo;' => '“', '&rdquo;' => '”',

เป็นอันเสร็จพิธีครับ

ปล. วิธีนี้ผมทดสอบใช้กับเวอร์ชั่น 2.0.7 หากจะใช้กับเวอร์ชั่นต่ำกว่านี้ ลองเข้าไปดูวิธีได้ที่   http://htmlthai.com/index.php?topic=597.0


ที่มา http://htmlthai.com/index.php?topic=597.0




วันพุธที่ 29 มกราคม พ.ศ. 2557

SMFเดินทางมาถึงเวอร์ชั่น 2.0.7 แล้ว

เผลอแป๊บเดียวก็เข้าปีใหม่ ปี 2014 มาตั้งเดือนหนึ่งแล้ว 
เช่นเดียวกันเผลอแป๊บเดียว SMF ก็ออกมาถึงเวอร์ชั่น 2.0.7 แล้ว นั่นแสดงให้เห็นว่า กลุ่มผู้ใช้ SMF มีไม่น้อย ผู้พัฒนาถึงได้พัฒนาเวอร์ชั่นออกมาเรื่อยๆ
 
 เท่าที่อ่านใน log ของ SMF 2.0.7 เวอร์ชั่นนี้ปรับปรุงจากเดิมไม่มาก ส่วนใหญ่เป็นรายละเอียดเล็กๆน้อยๆในระบบ ซึ่งจะไม่เกี่ยวข้องในส่วน Design ภายนอก เช่น
 เรื่องของการsupport ก็ PHP 5.5 มากขึ้น , เรื่องชื่อยาวเมื่อล็อกอินระบบจะตัดให้สั้นโดยอัตโนมัติ , แก้ไขปฏิทินวันหยุด
 
จะเห็นว่ารายละเีอียดที่เพิ่มเติมมาในเวอร์ชั่นใหม่ ก็ไม่มีอะไรมากนัก จะยังไม่อัพเกรดเวอร์ชั่นก็ไม่มีปัญหาอะไร

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


คิดไรไม่ออก :o

วันศุกร์ที่ 8 พฤศจิกายน พ.ศ. 2556

[SMF] ระบบไม่ส่งอีเมล์ให้สมาชิก เมื่อสมาชิกลงทะเบียนใหม่

ไม่ได้อัพเดทซะนาน สถานการณ์บ้านเมืองตอนนี้ คนไทยทุกหมู่เหล่า คณะอาจารย์  นักศึกษาทั้งศิษย์เก่า และศิษย์ปัจจุบัน หลายๆมหาวิทยาลัย หมอ พยาบาลทุกแห่งลุกฮือ ต่อต้าน พรบ. นิรโทษกรรมแบบสุดซอย

ดูเหมือนว่า คนมีอำนาจและคนมีกะตังค์ชอบคิดว่าคนอื่นจะโง่กว่าตัวเองอยู่เสมอ  อยู่ๆก็จะมายกความผิดตัวเองทิ้งแล้วจะกลับบ้านเหมือนไม่มีอะไรเกิดขึ้น .. มันง่ายขนาดนั้นเลยรึ?


.. กลับมาเรื่อง smf ดีกว่าครับ
ปัญหาที่จะพูดถึงวันนี้  ที่พึ่งพบประสบเจอ คือ smf ส่งอีเมล์หาสมาชิกไม่ได้!!
กรณีคนเข้ามาในบอร์ดของเราแล้วต้องการสมัครสมาชิก โอเค ถ้าบอร์ดไหน เปิดให้สมัครสมาชิกแบบง่ายๆ ไม่ต้องมีพิธีรีตรอง ไม่เน้นความปลอดภัย เปิดอกให้สแปมเข้าบ้าน สมัครปุ๊บ ใช้งานได้ปั๊บแบบไม่ต้องมีอีเมล์แจ้งเพื่อactive ก็คงไม่มีปัญหาเรื่องสมาชิกไม่ได้รับอีเมล์

แต่บอร์ดที่มีการสมัครสมาชิก แบบที่ต้องยืนยันตัวตน ถ้าไม่ได้อีเมล์จากระบบเพื่อคลิกยืนยันแล้วละก็ อย่าหวังว่าจะได้เข้าบอร์ดของข้าได้
ปัญหาที่เจอคือ สมัครสมาชิกแล้ว แต่ไม่มีอีเมล์ออกมาเลย ปัญหานี้พบในอีเมล์ที่เป็น hotmail ซะส่วนใหญ่

ปัญหานี้แก้ไขได้โดยให้ทางผู้ให้บริการเซิฟเวอร์ หรือถ้าท่านเช่าโฮสท์แบบ vps ก็สามารถเข้าไปแก้ไขได้ที่ไฟล์ php.ini ใน cpanel

ค้นหาคำว่า ;extension=php_openssl.dll 
เจอแล้วให้เอา ; ด้านหน้าออก เสร็จแล้ว restart apache เป็นอันเสร็จพิธี

ต่อแต่นี้ ปัญหาสมาชิกจะไม่ได้รับอีเมล์จากท่านจะหมดไปอย่างแน่นอน

วันพุธที่ 25 กรกฎาคม พ.ศ. 2555

[SMF] ช่วยด้วย!! ลงมอด..จนบอร์ดเน่า!!

มีอีเมล์ร่อนมาถามเกี่ยวกับการลง มอด
ถามว่า บอร์ดลงมอดแบบตามปกติที่เคยลงมา แต่อยู่มาวันหนึ่ง ลองลงมอดตัวหนึ่งดู ชื่อ PrettyUrls ขั้นตอนลงก็เหมือนปกติทั่วไป แต่พอเสร็จแล้วปรากฏว่าบอร์ดเน่าคะ ทำยังไงดี?

อย่างที่เคยบอกเมื่อหลายบทความก่อนหน้านี้แล้วว่า มอดของ smf มีความยุ่งยากตอนลงตรงที่มันจะพยายามเขียนไฟล์ใหม่เพิ่มเข้าไป ซึ่งหากไฟล์นั้นๆ ไม่ได้เซตเป็น 777 ไว้ มอดก็ง่อยแดกเลย ทำอะไรไม่ได้ ทีนี้แต่ละมอดก็มีการเขียนไฟล์มากหรือน้อยไม่เหมือนกันอีก

เดาว่ามอดตัวก่อนๆที่ลงแล้วไม่มีปัญหา น่าจะเป็นมอดตัวไม่ใหญ่มากนัก และบังเอิญไฟล์ที่มอดตัวนั้นไปเกี่ยวข้องอาจจเป็นไฟล์ที่เซตเป็น 777 แล้ว

ส่วนมอด PrettyUrls ซึ่งเป็นมอดที่ค่อนข้างใหญ่ มีการเขียนไฟล์เยอะ จึงอาจเจอปัญหาเขียนไฟล์ลงไปไม่ได้บ้าง หรือเขียนลงไปแต่ไม่สมบูรณ์บ้าง เมื่อเป็นเช่นนี้ บอร์ดก็เน่าด้วยประการฉะนี้แล

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

เืมื่อรู้แล้วว่าเป็นไฟล์ไหนบ้าง ก็เอาไฟล์ใหม่ไปทับตัวเก่า ก็เท่านั้นเอง
อย่างมอด PrettyUrls ไฟล์ที่ถูกเขียนส่วนใหญ่เป็นไฟล์ในโฟลเดอร์ Sources ก็เอาตัวใหม่ไปทับตัวเก่า ..ก็เรียบร้อยแล้วครับ


วันอังคารที่ 24 กรกฎาคม พ.ศ. 2555

[SMF] แก้ไขรูปแบบเวลาใน SMF



เวลาที่แสดงผลในเว็บบอร์ดของ SMF ในกระทู้รวม ค่าดีฟอลต์ หรือค่าเริ่มต้น จะอยู่ในรูปแบบนี้ครับ  กรกฎาคม 20, 2012, 08:03:49 AM

ทีนี้หากเราอยากจะเปลี่ยนแปลงรูปแบบ ให้เป็นแบบอื่นบ้าง เช่น อยากให้เป็น วันที่ 20 กรกฎาคม 2012, 08:03:49 น. ต้องทำอย่างไร ?

ทีนี้มีคำตอบครับ
ก่อนอื่นล็อกอินเข้าสู่ระบบ admin
เสร็จแล้วไปที่เมนู ปรับแต่งบอร์ด  > Featureds And Options.. > General (ทั่วไป) 

เสร็จแล้วลองเลื่อนลงมาด้านล่างครับ
ตรง Default time format
เปลี่ยนข้อมูลในช่องใหม่ โดยลบอันเก่าทิ้ง ใส่อันนี้ลงไปแทน  วันที่ %e %B  %Y, %H:%M:%S น.
ค่าที่จะแสดงในเว็บบอร์ด คือ  วันที่ 20 กรกฎาคม 2012, 08:03:49 น.

แต่ถ้าอยากให้เดือนเป็นคำย่อ ก็เปลี่ยนจาก %B เป็น %b  เท่านี้ก็เรียบร้อยแล้วครับ

เล็กๆน้อยๆ แต่ก็อาจจะทำให้เว็บบอร์ดของคุณดูดีขึ้นมาได้

วันพุธที่ 11 กรกฎาคม พ.ศ. 2555

วันจันทร์ที่ 25 มิถุนายน พ.ศ. 2555

[SMF] เพิ่มพื้นที่กระทู้กว้างขึ้น ด้วยการดึงข้อมูลผู้ตั้ง/ผู้ตอบกระทู้ไว้ด้านบน

บอร์ดเกี่ยวกับการถ่ายรูป ส่วนใหญ่ต้องการโชว์ภาพใหญ่ๆ ดังนั้น จึงอยากจะเอาข้อมูลของคนตอบหรือคนตั้งกระทู้จากเดิมอยู่ด้านซ้าย 
อยากย้ายไปด้านบนซะ ..ทำยังไงดี?


วันนี้ผมมีวิธีครับ
เปิดไฟล์ Themes/yourthemes/Display.template.php

ค้นหาคำสั่งนี้  // Show information about the poster of this message. เจอแล้วอย่าพึ่งทำอะไร
หาคำสั่งนี้ต่อเลย  // Show the post itself, finally!

ให้ลบคำสั่งตั้งแต่  // Show information about the poster of this message.  ลงมาจนถึง   // Show the post itself, finally! เลยครับ
แล้วเพิ่มคำสั่งนี้ไปแทนที่



    // Show information about the poster of this message.
echo '
<table width="100%" cellpadding="5" cellspacing="0" style="table-layout: fixed;">
<tr>
<td bgcolor="#444">';


    // Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
        <div class="profileINFO">', $message['member']['avatar']['image'],'<br>';
       
       
                // Show their personal text?
if (!empty($settings['show_blurb']) && $message['member']['blurb'] != '')
echo '
        ', $message['member']['blurb'], '<br />
        <br />';

// This shows the popular messaging icons.
echo '
        ', $message['member']['icq']['link'], '
        ', $message['member']['msn']['link'], '
        ', $message['member']['aim']['link'], '
        ', $message['member']['yim']['link'], '<br />';
       
            // Show the profile, website, email address, and personal message buttons.
if ($settings['show_profile_buttons'])
{
// Don't show the profile button if you're not allowed to view the profile.
if ($message['member']['can_view_profile'])
echo '
        <a href="', $message['member']['href'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/icons/profile_sm.gif" alt="' . $txt[27] . '" title="' . $txt[27] . '" border="0" />' : $txt[27]), '</a>';

// Don't show an icon if they haven't specified a website.
if ($message['member']['website']['url'] != '')
echo '
        <a href="', $message['member']['website']['url'], '" title="' . $message['member']['website']['title'] . '" target="_blank">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/www_sm.gif" alt="' . $txt[515] . '" border="0" />' : $txt[515]), '</a>';

// Don't show the email address if they want it hidden.

if (empty($message['member']['hide_email']))
echo '
        <a href="mailto:', $message['member']['email'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/email_sm.gif" alt="' . $txt[69] . '" title="' . $txt[69] . '" border="0" />' : $txt[69]), '</a>';

// Since we know this person isn't a guest, you *can* message them.

if ($context['can_send_pm'])
echo '
        <a href="', $scripturl, '?action=pm;sa=send;u=', $message['member']['id'], '" title="', $message['member']['online']['label'], '">', $settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/im_' . ($message['member']['online']['is_online'] ? 'on' : 'off') . '.gif" alt="' . $message['member']['online']['label'] . '" border="0" />' : $message['member']['online']['label'], '</a>';
       
       
}
       
        echo '</div> ';

echo '<div style="float:left;padding: 5px; 10px">';

echo' <b>', $message['member']['link'], '</b>
    <div class="smalltext">';

// Show the member's custom title, if they have one.
if (isset($message['member']['title']) && $message['member']['title'] != '')
echo '
        ', $message['member']['title'], '<br />';

// Show the member's primary group (like 'Administrator') if they have one.
if (isset($message['member']['group']) && $message['member']['group'] != '')
echo '
        ', $message['member']['group'], '<br />';

// Don't show these things for guests.
if (!$message['member']['is_guest'])
{
// Show the post group if and only if they have no other group or the option is on, and they are in a post group.
if ((empty($settings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '')
echo '
        ', $message['member']['post_group'], '<br />';
echo '
        ', $message['member']['group_stars'], '<br />';

// Is karma display enabled?  Total or +/-?
if ($modSettings['karmaMode'] == '1')
echo '
        <br />
        ', $modSettings['karmaLabel'], ' ', $message['member']['karma']['good'] - $message['member']['karma']['bad'], '<br />';
elseif ($modSettings['karmaMode'] == '2')
echo '
        <br />
        ', $modSettings['karmaLabel'], ' +', $message['member']['karma']['good'], '/-', $message['member']['karma']['bad'], '<br />';

// Is this user allowed to modify this member's karma?
if ($message['member']['karma']['allow'])
echo '
        <a href="', $scripturl, '?action=modifykarma;sa=applaud;uid=', $message['member']['id'], ';topic=', $context['current_topic'], '.' . $context['start'], ';m=', $message['id'], ';sesc=', $context['session_id'], '">', $modSettings['karmaApplaudLabel'], '</a>
        <a href="', $scripturl, '?action=modifykarma;sa=smite;uid=', $message['member']['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';m=', $message['id'], ';sesc=', $context['session_id'], '">', $modSettings['karmaSmiteLabel'], '</a><br />';

// Show online and offline buttons?
if (!empty($modSettings['onlineEnable']) && !$message['member']['is_guest'])
echo '
        ', $context['can_send_pm'] ? '<a href="' . $message['member']['online']['href'] . '" title="' . $message['member']['online']['label'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $message['member']['online']['image_href'] . '" alt="' . $message['member']['online']['text'] . '" border="0" style="margin-top: 2px;" />' : $message['member']['online']['text'], $context['can_send_pm'] ? '</a>' : '', $settings['use_image_buttons'] ? '<span class="smalltext"> ' . $message['member']['online']['text'] . '</span>' : '', '<br /><br />';

// Show the member's gender icon?
if (!empty($settings['show_gender']) && $message['member']['gender']['image'] != '')
echo '
        ', $txt[231], ': ', $message['member']['gender']['image'], '<br />';

// Show how many posts they have made.
echo '
        ', $txt[26], ': ', $message['member']['posts'], '<br />
        <br />';

}
// Otherwise, show the guest's email.
elseif (empty($message['member']['hide_email']))
echo '
        <br />
        <br />
    <a href="mailto:', $message['member']['email'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/email_sm.gif" alt="' . $txt[69] . '" title="' . $txt[69] . '" border="0" />' : $txt[69]), '</a>';

// Done with the information about the poster... on to the post itself.
echo '
    </div>
</td>
</tr>



<tr>
<td valign="top" width="100%" height="100%">
    <table width="100%" border="0"><tr>
        <td valign="middle"><a href="', $message['href'], '"><img src="', $message['icon_url'] . '" alt="" border="0" /></a></td>
        <td valign="middle">
            <div style="font-weight: bold;" id="subject_', $message['id'], '">
                <a href="', $message['href'], '">', $message['subject'], '</a>
            </div>';

// If this is the first post, (#0) just say when it was posted - otherwise give the reply #.
echo '
            <div class="smalltext">« <b>', !empty($message['counter']) ? $txt[146] . ' #' . $message['counter'] : '', ' ', $txt[30], ':</b> ', $message['time'], ' »</div></td>
        <td align="', !$context['right_to_left'] ? 'right' : 'left', '" valign="bottom" height="20" style="font-size: smaller;">';

// Can they reply? Have they turned on quick reply?
if ($context['can_reply'] && !empty($options['display_quick_reply']))
echo '
<a href="', $scripturl, '?action=post;quote=', $message['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';num_replies=', $context['num_replies'], ';sesc=', $context['session_id'], '" onclick="doQuote(', $message['id'], ', \'', $context['session_id'], '\'); return false;">', $reply_button, '</a>';

// So... quick reply is off, but they *can* reply?
elseif ($context['can_reply'])
echo '
<a href="', $scripturl, '?action=post;quote=', $message['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';num_replies=', $context['num_replies'], ';sesc=', $context['session_id'], '">', $reply_button, '</a>';

// Can the user modify the contents of this post?
if ($message['can_modify'])
echo '
<a href="', $scripturl, '?action=post;msg=', $message['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';sesc=', $context['session_id'], '">', $modify_button, '</a>';

// How about... even... remove it entirely?!
if ($message['can_remove'])
echo '
<a href="', $scripturl, '?action=deletemsg;topic=', $context['current_topic'], '.', $context['start'], ';msg=', $message['id'], ';sesc=', $context['session_id'], '" onclick="return confirm(\'', $txt[154], '?\');">', $remove_button, '</a>';

// What about splitting it off the rest of the topic?
if ($context['can_split'])
echo '
<a href="', $scripturl, '?action=splittopics;topic=', $context['current_topic'], '.0;at=', $message['id'], '">', $split_button, '</a>';

// Can do some Thank You Post things :)
if ($message['thank_you_post']['post'] && !$message['thank_you_post']['locked'])
echo '
<a href="', $scripturl, '?action=thankyou;topic=', $context['current_topic'], '.0;msg=', $message['id'], '">', $thankyoupostpost_button, '</a>';

if ($message['thank_you_post']['lock'] && $message['thank_you_post']['isThankYouPost'])
echo '
<a href="', $scripturl, '?action=thankyoupostlock;topic=', $context['current_topic'], '.0;msg=', $message['id'], '">', $message['thank_you_post']['locked'] ? $thankyoupostopen_button : $thankyoupostlock_button, '</a>';

if ($message['thank_you_post']['delete'] && $message['thank_you_post']['isThankYouPost'])
echo '
<a href="', $scripturl, '?action=thankyoupostdelete;topic=', $context['current_topic'], '.0;msg=', $message['id'], ';sesc=', $context['session_id'], '" onclick="return confirm(\'', $txt['remove_thank_you_post'], '?\');">', $thankyoupostdelete_button, '</a>';

// Show a checkbox for quick moderation?
if (!empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1 && $message['can_remove'])
echo '
            <input type="checkbox" name="msgs[]" value="', $message['id'], '" class="check" ', empty($settings['use_tabs']) ? 'onclick="document.getElementById(\'quickmodSubmit\').style.display = \'\';"' : '', ' />';

// Show the post itself, finally!



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

วันศุกร์ที่ 1 มิถุนายน พ.ศ. 2555

[SMF] วิธีทำกระทู้แนะนำในเว็บบอร์ด


อ้างอิงจากกระทู้นี้ http://forum.ubuntuclub.com/forum?topic=8915 ของ Ubuntuclub Forum  ครับ
เห็นว่าน่าสนใจดีเลยขออนุญาตนำมาเผยแพร่ต่อเผื่อให้ท่านที่สนใจ

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

ความจริงจะบอกว่าเป็นกระทู้โหวตก็ไม่ใคร่ถูกนัก เป็นเพียงการอนุญาตให้สมาชิกคลิกเลือกกระทู้ให้ไปอยู่ในหมวด "กระทู้แนะนำ" ซึ่งจะอยู่บนสุด แขกใครไปไหนมาไหนก็จะเห็นเด่นเป็นสง่า
ผมจะไม่เขียนอะไรเพิ่มเติมในระบบที่ทาง Ubuntuclub Forum  เขียนไว้แล้วนะครับ
แค่จะแนะนำวิธีใช้งานเท่านั้นเอง (ในลิงค์ดังกล่าวแนะนำการใช้งานไว้สำหรับทั้งเวอร์ชั่น 1 และเวอร์ชั่น 2 แต่ในที่นี้ผมจะขอพูดถึงเฉพาะเวอร์ชั่น 2 เท่านั้นนะครับ)

ถ้าท่านยังคิดภาพกระทู้แนะนำไม่ออก ..ก็ขอให้คิดถึงภาพเว็บบอร์ดที่มีกระทู้เรียงกันเป็นลำดับ แต่ด้านบนสุดของกระทู้ที่เรียงเป็นลำดับนั้น มีกล่องสี่เหลี่ยมตกแต่งสวยงาม ซึ่งในกล่องนั้นปรากฏกระทู้, ผู้ตั้งกระทู้, วันเวลาที่ตั้งกระทู้ ฯลฯ แล้วแต่จะหยิบนำอะไรมาแสดง ไม่เรียงลำดับ ไม่ใช่กระทู้ปักหมุด แต่เป็นกระทู้แนะนำ (ตามภาพ)

คล้ายๆ กระทู้ล่าสุด แต่การเลือกกระทู้มาแสดงเกิดจากการเลือก ไม่ใช่เลือกกระทู้ล่าสุดมาแสดง ข้อดีคือจะสามารถขุดเอากระทู้เก่าๆ แต่ยังมีประโชยน์และอยากให้โชว์อยู่ขึ้นมาแสดงในหน้าแรกได้

มาดูการนำไปใช้งานเลยดีกว่านะครับ

ไฟล์ที่เกี่ยวข้องมี 3 ไฟล์ และ 1 ใน 3 ไฟล์นั้นต้องสร้างขึ้นมาใหม่
1. Display.template.php // เพิ่มปุ่มโหวต หรือปุ่มเลือกกระทู้ในไฟล์นี้
2. BoardIndex.template.php //  สำหรับแสดงกระทู้โหวต และ
3. voterec.php // สำหรับโหวตหรือเลือกกระทู้

ไฟล์  Display.template.php ค้นหาคำว่า
if (!$message['approved'] && $message['member']['id'] != 0 && $message['member']['id'] == $context['user']['id'])
echo '
<div class="approve_post">
', $txt['post_awaiting_approval'], '
</div>';

 พบแล้ววางคำสั่งด้านล่างนี้ต่อท้ายไป                              
      if(empty($message['counter']))
      echo '
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js"></script>
<script type="text/javascript">
function voterec(id, ele){
   $(ele).unbind("click")
   $(".whs-rec-desc").html("โปรดรอ...")
   $.get("',$settings['theme_url'],'/voterec?act=vote&id="+id, {}, function(d){
      if(d!="OK")
         $(".whs-rec-desc").html(d)
      else
         $(".whs-rec-desc").html("โหวตเรียบร้อยแล้วครับ :)")
   })
}
</script>
                  <div class="whs-rec" style="float: right; text-align: center; font-size: 9pt;">
                     <a href="javascript:ubuntuclub();" onclick="voterec(',$context['current_topic'],', this); return false;">
                        <img src="',$settings['default_theme_url'],'/images/recommend.png" />
                     </a>
                     <div class="whs-rec-desc" style="margin-top: -20px;">
                        โหวตกระทู้นี้ ห้เป็นกระทู้แนะนำ
                     </div>
                  </div>';
               
ไฟล์ BoardIndex.template.php ให้ค้นหาคำว่า
/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down image),
and boards. (see below.) */
 
    พบแล้วให้วางโค๊ดด้านล่างนี้ด้านบน ..
 
       // WHS's Mod -> Recommend Topic
   print <<<WHSDOC
   <div class="tborder marginbottom categoryframe">
      <h3 class="catbg headerpadding">กระทู้แนะนำ</h3>
      <table cellspacing="1" class="bordercolor boardsframe">
         <tr>
            <td class="windowbg icon"><img src="{$settings['default_theme_url']}/images/recommend.png" alt="กระทู้แนะนำ" border="0" /><div style="margin-top: -20px;">กระทู้แนะนำ</div></td>
            <td class="windowbg"><iframe src="/voterec?act=view" style="width:100%; border: none;"></iframe></td>
         </tr>
      </table>
   </div>
WHSDOC;          

และสุดท้ายสร้างสร้างไฟล์ voterec.php และวางชุดคำสั่งนี้ลงไป

<?php
include "smf/SSI.php";
// no trespasser!
if($context['user']['is_guest']){
   die('ต้องสมัครสมาชิกก่อนทำการโหวตครับ');
}
function boardName($bid){
   global $smcFunc;
   $req = $smcFunc['db_query']('', "
      SELECT name
      FROM {db_prefix}boards
      WHERE id_board = {int:bid}
      LIMIT 1
   ", array(
      'bid' => $bid,
   ));
   $row = $smcFunc['db_fetch_row']($req);
   return $row[0];
}
// yeah, I cheat.
// this using the [t=..] by the DtTvB :) ported to SMF 2's
// Get topic title from Zone-IT, with member color link!
function ubuntuclub_topic($message){
   global $smcFunc, $memberContext, $txt, $scripturl;
   $req = $smcFunc['db_query']('', "
      SELECT subject, id_member, id_board, id_topic
      FROM {db_prefix}messages
      WHERE id_topic = {int:idt}
      ORDER BY id_msg ASC LIMIT 1
   ", array(
      'idt' => $message,
   ));
   $row = $smcFunc['db_fetch_row']($req);
   if($row[1] != 0){
      // I don't reinvent the wheel, I'm lazy. I know this is slow but since we use iframe that doesn't matter.
      loadMemberData($row[1], false, 'minimal');
      @loadMemberContext($row[1]); // SHUT UP!
      $member = $memberContext[$row[1]]['link'];
   }else{
      $member = $txt['guest_title']; //I'm Fedora's l10n team after all.
   }
   // get the board's name!
   $bn = boardName($row[2]);
   return array($row[0], $member, "<a href='{$scripturl}/board,{$row[2]}.0.html'>$bn</a>");
}
if($_GET['act'] == "vote"){
   $topic = $_GET['id'];
   // is that thing really, exists?
   if (!ubuntuclub_topic($topic)){
      $smcFunc['db_free_result']($request);
      die("ไม่พบกระทู้ที่เรียก");
   }
   $smcFunc['db_free_result']($request);
   // well, so now it's exists. Just inject that into the table
   // but we need to know how much vote does it having?
   $request = $smcFunc['db_query']('', '
      SELECT * FROM {db_prefix}recommend WHERE ID_TOPIC = {int:idt}
   ', array(
      'idt' => $topic
   ));
   // hmm, PHP's DBAPI is clearly a mess, python's DBAPI is really simple
   $recommend = $smcFunc['db_fetch_row']($request);
   $smcFunc['db_free_result']($request);
   if(!$recommend){
      $request = $smcFunc['db_query']('', '
         INSERT INTO {db_prefix}recommend VALUES ({int:idt}, 1, "'.$context['user']['id'].'")
      ', array(
         'idt' => $topic
      ));
      die("OK");
   }else{
      // PHP showing it's suckness again, I think context.user.id in recommend[2].split(",") is more readable
      if(in_array($context['user']['id'], split(",", $recommend[2]))){
         die("คุณโหวตไปแล้ว");
      }
      $recommend[2] .= ",".$context['user']['id'];
      $recommend[1] += 1;
      // commit!
      $request = $smcFunc['db_query']('', '
         UPDATE {db_prefix}recommend SET count = {int:count}, voters = "'.$recommend[2].'"
         WHERE ID_TOPIC = {int:idt}
      ', array(
         'idt' => $topic,
         'count' => $recommend[1]
      ));
      die("OK");
   }
}else if($_GET['act'] == "view"){
   $req = $smcFunc['db_query']('', "
      SELECT ID_TOPIC FROM {db_prefix}recommend
      ORDER BY count DESC LIMIT 5
   ", array());
   while($row = $smcFunc['db_fetch_row']($req)){
      $tt = ubuntuclub_topic($row[0]);
      // hard coding to prevent beggars to use this
      print "<div><a href='$scripturl/topic,{$row[0]}.0.html' target='_parent'>{$tt[0]}</a> {$txt['started_by']} {$tt[1]} {$txt['in']} {$tt[2]}</div>";
   }
}
 
เซฟไว้ในโฟล์เดอร์ธีมของเรา
สุดท้ายต้องไปสร้างตารางไว้ในฐานข้อมูลด้วยครัับ

CREATE TABLE `smf_recommend` (
  `ID_TOPIC` int(11) NOT NULL,
  `count` int(11) NOT NULL default '0',
  `voters` longtext NOT NULL,
  PRIMARY KEY  (`ID_TOPIC`),
  KEY `count` (`count`)
)

ทั้งหมดนี้ผมเอาโค๊ดจากลิงค์ที่อ้างอิงด้านบนมา โดยไม่ได้ปรับแต่งหรือแก้ไขแต่อย่างใด ทั้งนี้เพื่อให้เครดิตแก่ผู้เขียนครับ
แต่ถ้าจะเอาไปใช้งานจริงก็ลองปรับดูให้เข้ากับบอร์ดของเรา จะให้สมาชิกสามารถโหวตได้ด้วย หรือให้เฉพาะแอดมินเท่านั้นโหวตก็ไปลองปรับกันใช้ดูครับ




วันศุกร์ที่ 6 เมษายน พ.ศ. 2555

[SMF] ฟังก์ชั่นแสดงกระทู้ล่าสุดอย่างเดียว ไม่แสดงกระทู้ตอบ

หลายวันก่อน มีน้องคนหนึ่งร่อนอีเมล์มาถามว่า
กำลังทำบอร์ดอยู่เหมือนกัน แต่อยากทราบว่า กระทู้ล่าสุดในบอร์ดทำยังไงถึงจะให้แสดงเฉพาะกระทู้ล่าสุดจริงๆ ไม่แสดงกระทู้อัพเดทที่มีคำว่า Re: นำหน้า

น้องเค้ากลัวผมไม่เข้าใจก็เลยส่งภาพมาให้ดูต่างหน้าด้วย


วิธีทำก็ไม่ซับซ้อนอะไร เอาให้ง่ายๆ เข้าใจง่ายๆ
ฟังก์ชั่นที่ทางระบบ smf ทำไว้แล้วนั้น เราจะไม่ไปแตะต้อง เราเขียนฟังก์ชั่นขึ้นมาใหม่เลยก็แล้วกัน

ดังนี้ครับ

  function recentTopics($num=20)
  {
      global $context, $settings, $db_prefix, $txt, $scripturl, $user_info, $modSettings,$smcFunc;

          $request1=$smcFunc['db_query']('','SELECT t.id_topic,m.body,m.subject,mb.member_name
          FROM ({db_prefix}topics as t , {db_prefix}messages as m,{db_prefix}members as mb)
          WHERE t.id_first_msg=m.id_msg AND m.id_member=mb.id_member
          ORDER BY t.id_topic DESC
          LIMIT {int:num}',
          array( 'num'=>$num,
  )  );
 
 
  echo "<ul>";
  while ($row = mysql_fetch_assoc($request1))
  {
 
  echo '<li><a href="/smf/?topic='.$row['id_topic'].'">'.$row['subject'].' </a> โดย '.$row['member_name'].' </li>';

 }
echo "</ul>";
 
  mysql_free_result($request1);

}

การนำไปใช้

ก็นำฟังก์ชั่นนี้ไปทิ้งไว้ในไฟล์ index.template.php
ไปใส่ด้านล่างสุดเลยก็ได้ครับ แต่ต้องอยู่ภายในเครื่องหมาย ? >

จากนั้น หาตำแหน่งเหมาะที่อยากให้กระทู้ล่าสุดโชว์ ใส่คำสั่งนี้ไป <?php recentTopics();?>
อยากให้แสดงจำนวนเท่าไร ก็ใส่ตัวเลขในเครื่องหมายวงเล็บไปเท่านั้น

เช่น  recentTopics(10);

ก็จะแสดงจำนวนกระทู้ทั้งหมด 10 กระทู้

ฟังก์ชั่นนี้ผมพึ่งเขียนขึ้นแบบง่ายๆ ดังนั้นเลยไม่ได้ตกแต่งให้สวยงาม ถ้าจะนำไปใช้ก็ตกแต่งด้วย css นิดหน่อยก็สวยงามอร่ามตาแล้วละครับ

ก็ประมาณนี้นะครับ ลองเอาไปปรับใช้ดู
ติดขัดตรงไหนก็สอบถามได้ครับ ยินดีถ้าช่วยได้ก็ช่วยเต็มที่


วันพฤหัสบดีที่ 5 เมษายน พ.ศ. 2555

[SMF] ข้อควรระวังหลังจาก Upgrade SMF เวอร์ชั่นใหม่

สำหรับนักพัฒนาหรือใช้งานบอร์ด smf แล้ว สิ่งหนึ่งที่จะต้องเจอหรือทำอยู่เรื่อยๆ คือ การอัพเกรดเวอร์ชั่น เพราะ smf เองได้พัฒนาเวอร์ชั่นมาโดยตลอดอย่างไม่หยุดยั้ง ล่าสุด คือ เวอร์ชั่น 2.02
การอัพเกรดเวอร์ชั่นทำได้อย่างง่ายมาก คือ สามารถทำออนไลน์โดยล็อกอินเข้าสู่ระบบล็อกอิน และเลือกเมนูปรับปรุงเวอร์ชั่น ดูเหมือนจะง่าย แต่เอาเข้าจริงก็ไม่ได้ง่า่ยอย่างนั้นเท่าไร เพราะการอัพเกรดเวอร์ชั่นของ smf
ระบบจะทำการเขียนคำสั่งใหม่ลงไปในตัวไฟล์ .php หลายๆไฟล์ ถ้ามีไฟล์ไหนหรือโฟลเดอร์ไหนไม่ได้เซตให้เป็น 777 ระบบก็จะไม่สามารถเขียนลงไปได้ เกิดปัญหาเออเร่อทันที !!

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

หลังจากอัพไฟล์ไปทับตัวเดิมเสร็จ ก็เรียกหาไฟล์ upgrade.php และคลิกดำเนินการตามขั้นตอนจนเสร็จ

สิ่งที่อยากจะเตือนให้ระวังหลังจากอัพเกรดแล้วก็คือ  การติ๊กกลับมาสู่โหมดปกติ
เวลาที่อัพเกรด ถ้าเป็นเวอร์ชั่น 1 เราต้องทำการเปลี่ยนภาษาให้เป็นภาษาอังกฤษ และเลือกธีมให้เป็นdefault เสียก่อน แต่เวอร์ชั่น 2 ไม่ต้องทำการใดๆ ระบบจะทำให้โดยอัตโนมัติครับ
และระหว่างที่ทำการอัพเกรดอยู่นั้น เพื่อป้องกันสมาชิกเข้ามาใช้งานบอร์ดในขณะที่ยังดำเนินการอยู่ ระบบจึงทำการเข้าสู่โหมด "เข้าโหมดบำรุงรักษา" ไว้

 หลังจากอัพเกรดเสร็จเรียบร้อย ระบบจะเปลี่ยนภาษาให้เป็นภาษาไทยและเลือกธีมให้เป็นธีมเดิม แต่โหมด "บำรุงรักษา" ระบบมันไม่ติ๊กให้ครับ เราต้องติ๊กให้เอง

ถามว่าถ้าไม่ติ๊กแล้วจะเกิดปัญหาอะไรมั้ย?
ตอบว่า ไม่มีปัญหาอะไรหรอกครับ แต่สมาชิกจะไม่สามารถใช้งานบอร์ดได้เท่านั้นเอง !!

เข้าไปที่ ผู้ดูแล > ปรับแต่งบอร์ด >ค่าต่างๆในระบบ> ติ๊กเครื่องหมายถูกตรง  "เข้าโหมดบำรุงรักษา" ออก

เสร็จพิธีครับ

วันเสาร์ที่ 25 กุมภาพันธ์ พ.ศ. 2555

[SMF] แก้ปัญหาระบบไม่ยอมนับจำนวนกระทู้ของสมาชิก

ปัญหาคือ ปกติใต้ชื่อสมาชิกทุกคนจะมีข้อความ  กระทู้  xxx  คือ ระบบจำแสดงจำนวนกระทู้ที่โพสต์และกระทู้ตอบของสมาชิก แต่แล้วจู่ๆระบบก็ไม่ยอมนับกระทู้ซะอย่างนั้น !!

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

แต่เราเชื่อว่าทุกปัญหาของ smf ต้องมีทางออกครับ

ปัญหานี้มักเกิดกับบอร์ดที่ได้รับการอัพเกรด ไม่ว่าจะอัพเกรดจากเวอร์ชั่น 1 เป็นเวอร์ชั่น 2 หรือจากเวอร์ชั่น 2.0 เป็นเวอร์ชั่น 2.0.2  ก็ตาม

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

จบ

หมายเหตุ : อย่าลืมทำการอัพเกรดให้ถูกต้องตามขั้นตอนนะครับ  คือ
1. เปลี่ยนภาษาให้เป็นภาษาอังกฤษและเลือกธีมให้เป็นdefault
2.  ดาวน์โหลดไฟล์สำหรับอัพเกรด (ที่นี่ http://download.simplemachines.org)
3.  อัพโหลดไฟล์ที่ดาวน์โหลดมาแล้วไปที่บอร์ดไดเรกเทอรี่ ex. http://yoursite.com/yourboard/
4.  เรียกไฟล์ upgrade.php ผ่านบราวเซอร์ ex. http:/yoursite.com/yourboard/upgrade.php
5.  คลิกปุ่ม continue  ระบบจะทำการอัพเกรดจนเสร็จพิธี

วันจันทร์ที่ 20 กุมภาพันธ์ พ.ศ. 2555

[SMF] สิ่งที่ควรปรับแต่งหลัง install smf สำหรับเวอร์ชั่น 2 +


หลังจาก install smf เรียบร้อยแล้ว ไม่รู้จะเริ่มต้นปรับแต่งหรือแก้ไขอะไรดี (นอกจากปรับแต่งธีม) บทความนี้จะช่วยให้คุณง่ายขึ้นในการปรับแต่ง หรือหาเมนูสำหรับปรับแต่งเว็บบอร์ด

1. Anti spam  แน่นอนเว็บบอร์ดเปิดบริการเพื่อให้สมาชิกสามารถโพสต์กระทู้ ตอบกระทู้ได้ ดังนั้นเลี่ยงไม่ได้เลยที่จะต้องเจอกับสแปม
 ใน smf เวอร์ชั่น 2 จะมีฟังก์ชั่น anti spam ที่ยากขึ้นกว่าเวอร์ชั่นเก่า คือ นอกจากจะมีการให้ระบุโค๊ดแล้ว ยังอนุญาตให้ผู้ใช้สามารถตั้งคำถามเองอีกด้วย
 ผู้ดูแล >> ปรับแต่งบอร์ด >> Security and Moderation >>  Anti - spam 
 ด้านล่างสุดจะมีแทบเมนู Verification Questions  จะมีแบ่งบ็อกซ์ไว้ 2 ข้าง ฝั่งขวาคือ Question สำหรับตั้งคำถาม และฝั่งซ้าย เป็น Answer สำหรับตั้งคำตอบ
 แนะนำให้ตั้งคำถามง่ายๆที่ใครๆก็รู้ แต่ spam ไม่รู้ เช่นถามว่า ประเทศไทยมีกี่จังหวัด,  11+9 = เท่าไร เป็นต้น เสร็จแล้วคลิกปุ่ม บันทึก
 เพียงเท่านี้ก็จะกันสแปมต่างชาติได้ละ ถ้าเมื่อไรมีสแปมโผล่เข้ามาได้ เราค่อยมาเปลี่ยนคำถามใหม่

 2. ตั้งเวลาในบอร์ดให้ตรงตามเวลาในประเทศไทย 
 ไปที่ ผู้ดูแล >> ปรับแต่งบอร์ด  >> Featured and Options >> General  ตรงเมนู Server timezone ให้เลือกเป็น Asia/Bangkok เสร็จแล้วคลิก บันทึก


 3. การอนุญาต (Permissions) ควรกำหนดขอบเขตให้สมาชิกในบอร์ดว่า ควรทำอะไรได้บ้าง? ควรกำหนดตั้งแต่แรกเริ่ม เพราะเมนูบางอย่างหากเปิดให้สมาชิกใช้งานไประยะหนึ่งแล้วค่อยมาปิดการใช้งาน
 อาจสร้างความไม่พอใจแก่สมาชิกได้  การอนุญาตเรื่องการแนบไฟล์ควรระวังให้เป็นสำคัญ
 พิจารณาจากโฮสท์ที่เราใช้อยู่ว่ามีพื้นที่มากน้อยแค่ไหน หากมีพื้นที่มากและไม่กลัวว่าอนาคตไฟล์ที่สมาชิกแนบไฟล์จะโตจนโฮสท์เต็ม ก็เปิดให้สมาชิกแนบไฟล์ได้
 แต่หากต้องการป้องกันพื้นที่เต็ม หรือมีพื้นที่น้อยอยู่แล้ว ควรปิดการแนบไฟล์เสีย โดยให้สมาชิกโพสต์ภาพที่เว็บฝากภาพแล้วนำเฉพาะลิงค์มาโพสต์อย่างเดียว

 ผู้ดูแล >> ควบคุมสมาชิก >> Permissions.. >> Permission by Membergroup เลือกสมาชิกปรับแต่ง 2 เมนู คือ สมาชิกทั่วไปไม่ได้ลงทะเบียน และสมาชิกที่ไม่มีกลุ่ม
 เลือกเมนูด้านขวามือ ..ขั้นสูง เสร็จแล้วดูที่เมนูด้านล่างสุด  Post attachments คลิกเข้าไปจะเห็นเมนู ตั้งกระทู้แนบไฟล์  ถ้าต้องการให้สมาชิกโพสต์หรือแนบไฟล์ได้ก็ให้ติ๊ก ถ้าไม่ต้องการก็ไม่ต้องติ๊ก ..กดบันทึก

 4. ตั้งค่าธีมปัจจุบัน  ไปที่ ผู้ดูแล >> ปรับแต่งบอร์ด >> ตั้งค่าธีมปัจจุบัน
 ในหน้านี้หากท่านใช้ธีม Default ก็จะมีเมนูสำหรับปรับแต่งบอร์ดอย่างง่ายๆ เปลี่ยนโลโก้ได้ ใส่สโลแกนเว็บบอร์ดใหม่ได้ เพิ่มหรือลดความกว้างของบอร์ดได้ในหน้าเดียวกันนี้

ในหน้าแรกของบอร์ดหากต้องการให้แสดงกระทู้ล่าสุดจากสมาชิก ต้องการให้แสดงกี่กระทู้ก็ระบุตัวเลขไปที่เมนู "จำนวนกระทู้ล่าสุดที่แสดงผลบนหน้ารวมบอร์ด:" (ในหน้าเดียวกันนี้) ถ้าไม่ต้องการให้แสดงเลยใส่เลข 0 ค่าดีฟอลต์คือ 0

ในหน้านี้ยังมีค่าต่างๆให้ระบุอีกมากมายซึ่งไม่ยากต่อการเข้าใจมากนัก ลองอ่านและปรับแต่งดูได้เองนะครับ

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


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

ขอให้สนุกกับการแต่งบอร์ดนะครับ

วันพุธที่ 1 กุมภาพันธ์ พ.ศ. 2555

[SMF] สร้างบล็อคให้ชุมชนด้วย Adk_Blog Mod


SMF เป็นโปรแกรมสำเร็จรูปในรูปของกระดานข่าว หรือเว็บบอร์ด แต่ก็มีความเป็นชุมชนสูง เพราะมีระบบสมาชิกที่ค่อนข้างแข็งแรง



หลายเว็บที่ใช้ smf เป็นตัวเว็บเลย เช่น zone-it.com , thaiseoboard.com , freemac.net ฯลฯ  แต่บางเว็บก็ใช้ smf เป็นแค่ส่วนหนึ่งของเว็บ  ซึ่งนั่นก็อยู่ที่ไอเดียของแต่ละเว็บว่าจะใช้อย่างไร
ถ้าถามว่า smf เหมาะกับแบบไหนมากที่สุด คงตอบได้ว่า เหมาะกับทุกแบบ อยู่ที่การนำไปใช้งาน

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

ว่าจะไม่เกริ่นยาว ..แต่ก็ยาวจนได้ อ่ะ งั้นเข้าเรื่องเลยนะ
วันนี้อยากจะมาเสนอ mod ตัวหนึ่งที่เหมาะสำหรับคนที่ใช้ smf เป็นเว็บ  มันมีชื่อว่า Adk_Blog

Adk_Blog คือมอดที่เข้ามาเพิ่มเมนูอีกเมนูหนึ่งให้กับบอร์ดของเรา นั่นคือ เมนู Blog
ด้วยความที่ smf เป็นโปรแกรมสำหรับตั้งและตอบกระทู้อย่างเดียว เจ้า Adk_Blog จึงเกิดขึ้นมาเพื่อช่วยในเรื่องของการเขียนบล็อกสำหรับสมาชิก

โดยสมาชิกแต่ละคนสามารถเพิ่มหมวดหมู่บล็อกของตัวเองได้  เขียนโปรไฟล์แนะนำตัวเองได้ ลบ/แก้ไขบล็อกตัวเองได้
บล็อกที่สมาชิกเขียนจะไปรวมในหน้าเดียวกันภายใต้เมนู /action=Blog

ในส่วนของแอดมินสามารถจำกัดสิทธิ์ว่า ให้สมาชิกกลุ่มไหนสามารถเขียล็อกได้บ้าง ..

สำหรับใครที่กำลังมองหาบล็อกสำหรับชุมชนของตัวเอง มอดตัวนี้น่าสนใจมากทีเดียวครับ

คลิกไปดาวน์โหลดมาใช้ได้ที่ http://custom.simplemachines.org/mods/index.php?mod=2611

วันพุธที่ 11 มกราคม พ.ศ. 2555

[SMF]Pretty URLs Mod อีกมอดตัวหนึ่งที่จะช่วยให้ทำ seoให้บอร์ด


สำหรับมอด Pretty URLs มีมาตั้งแต่ smf เวอร์ชั่น 1-2 ก่อนนั้นเคยลองใช้ ถึงแม้จะทำให้ีurl ในบอร์ดสวยงามสมชื่อ Pretty URLs ก็ตาม แต่ยังพบปัญหาอยู่บ้าง (จำไม่ได้ว่าปัญหาคืออะไร รู้แต่ว่ามันคือปัญหาแก้ไม่ตก)  ก็เลยไม่ใช้ และไม่แนะนำคนอื่นให้ใช้อันเนื่องจากปัญหาอย่างที่กล่าวนั่นเอง

จนกระทั่ง smf  พัฒนามาถึงจุดที่ไม่มี RC (ก่อนหน้านั้น smf แม้จะเป็นเวอร์ชั่น 2 แล้วก็ตาม แต่ยังใช้โค๊ดเนมว่า V.2 RC1 - RC5) เป็น smf เวอร์ชั่น 2 แบบเต็มตัวที่เปลี่ยนแปลงทั้งโครงสร้างและโค๊ดรวมถึงดาต้าเบส  Pretty URLs ก็พัฒนาตามมาติดๆจนถึงเวอร์ชั่นสำหรับ smf 2 เหมือนกัน

http://custom.simplemachines.org/mods/index.php?mod=636

ในเวอร์ชั่นนี้หลังจากดาวน์โหลดมาลองใช้ ก็ปรากฏว่าปัญหาเดิมๆที่เคยมีเคยเป็นหายไปครับ ติดตั้งก็ง่ายขึ้น ใช้เวลาเพียง 5 นาทีต้นๆก็เสร็จสรรพ ติดตั้งเสร็จแล้วมีหน้าสำหรับตั้งค่า

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

ลองไปดาวน์โหลดมาติดตั้งใช้ดูครับตามลิงค์ด้านล่างนี้

http://custom.simplemachines.org/mods/index.php?mod=636

แนะนำนิดหนึ่งนะครับ คำแนะนำนี้ smf เองก็เตือนไว้ คือ ก่อนทำการติดตั้งmod ไม่ว่าจะmod ตัวนี้หรือตัวไหนก็ตาม ควรทำการแบกอัพข้อมูลโค๊ดและดาต้าเบสเสียก่อน เพื่อความปลอดภัย

ขอให้สนุกในการแต่งบอร์ดครับ

วันพุธที่ 28 ธันวาคม พ.ศ. 2554

ถอดธีม wordpress สู่ ธีมsmf

พูดถึงธีม smf แล้วในท้องตลาดหรือตามเว็บทั่วไปทำแจกค่อนข้างน้อย หรือไอ้ที่แจกๆนั้นก็ไม่ค่อยถูกสเป็คสักเท่าไร แต่ก็นั่นแหละครับ ถึงจะสวยงามเมพขนาดไหนมันก็ไม่ถูกใจเราไปทั้งหมด T_T

เมื่อมันยากนักที่จะหาธีมถูกใจเรา ก็เลือกที่จะแต่งธีมเองดีกว่า ถึงจะขี้ริ้วขี้เหร่ไปบ้าง แต่มันก็ถูกใจเรา ที่สำคัญมันถูกคอนเซ็ปต์ของเว็บเรา(อันนี้สำคัญ)

เรารู้ความต้องการของเราแล้ว อันดับต่อไปนี่สำคัญมาก..แล้วจะเริ่มต้นอย่างไร?
สำหรับคนที่มีความรู้ถึงโครงสร้างของธีมsmf บ้างแล้ว รู้จักคำสั่ง css บ้างแล้ว อันนี้ไม่ยาก แต่สำหรับคนที่ยังไม่รู้อะไรเลยนี่ยากละ ผมไม่ขอพูดถึงรายละเอียดสำหรับคนกลุ่่มหลังนี้นะ

ผมได้เขียนไว้ในบล็อกนี้เกี่ยวกับการเริ่มต้นแต่งธีมsmf จากธีม Default ไว้แล้ว ตั้งแต่สเต็ปแรก (คลิกไปอ่านได้)


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

http://www.hosting22.com/wordpress/elegantthemes/
http://www.webdesignbooth.com/wordpress-showcase-40-beautiful-and-well-designed-blogs-powered-by-wordpress/
http://freewordpresslayouts.com/


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

ธีม wordpress จะมีท็อปเมนู ธีม smf ก็มี
ธีม wordpress มีเนื้อหาตรงกลาง และมีเมนูด้านข้าง(ซ้ายหรือขวา)
ธีม smf มีเนื้อหาตรงกลางเหมือนกัน แตไม่มีเนูด้านข้างไม่ว่าซ้ายหรือขวา เพราะต้องการแสดงเนื้อหาหรือภาพในกระทู้ในพื้นที่ๆกว้างๆ
ส่วน footer ทั้ง wordpress และ smf เหมือนกัน

สรุปก็คือ smf ไม่มี sidebar พอเห็นธีม wordpress ที่สวยๆ ก็ลองนึกจินตนาการว่า ถ้าเป็น smf ซึ่งไม่มี sidebar แล้ว ธีมตัวนี้จะยังสวยอยู่มั้ย?

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

หลังจากเลือกธีมได้แล้ว ที่เหลือก็อยู่ที่วิธีการถอดรูปจาก wordpress สู่ smf โดยวิธีการและขั้นตอนที่ผมได้เคยเขียนแล้วเป็นสเต็ปนั่นแล

ขอให้สนุกกับการแต่งธีมครับ

วันพุธที่ 21 ธันวาคม พ.ศ. 2554

[smf]แจกธีม smf 2.0 เรียบง่ายสบายตา

วันนี้มีธีม smf เวอร์ชั่น 2.0 มาแจกครับ
ธีมตัวนี้เหมาะสำหรับนำไปโมดิฟาย ง่ายต่อการแก้ไข ปรับปรุง เปลี่ยนแปลง แก้ไข ฯลฯ


ตัดแปลงมาจากธีมsmf Default ของเวอร์ชั่น 2 แต่ได้เพิ่มพื้นหลังเป็นแกลเลอรี่ หมุนเวียนสลับเปลี่ยนไปเรื่อยๆตามจำนวนภาพที่เราได้ใส่ไป

ถ้าต้องการเพิ่มหรือเปลี่ยนภาพพื้นหลัง ให้เปิดไฟล์ index.template.php บรรทัดที่ 405 หรือค้นหาคำว่า
 id="slideshow" ท่านจะเห็นรายชื่อภาพ ดังนี้


 <img src="http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash4/300813_193622397380685_100001987785137_445274_1599363279_n.jpg" alt="Slideshow Image 1" class="active" />
<img src="http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash4/319177_193910440685214_100001987785137_445875_286526053_n.jpg" alt="Slideshow Image 1"/>
<img src="http://image.ohozaa.com/i/382/isa2K.JPG" alt="Slideshow Image 2" />
<img src="http://image.ohozaa.com/i/41b/bUHDf.JPG" alt="Slideshow Image 3" />
<img src="http://a2.sphotos.ak.fbcdn.net/hphotos-ak-ash4/310987_10150354398662762_702047761_8356920_1947153730_n.jpg" alt="Slideshow Image 4" />

นั่นคืำอจำนวนภาพทั้งหมด หากต้องการภาพอื่นก็แค่ไปหา url ของภาพมาเปลี่ยน

อันดันต่อไปมาดูหัวของธีมตัวนี้ "ชุมชนออนไลน" ชาวพฤกษาทาวน์ 
ตัวนี้ใช้ cufon นะครับ ตัวหนังสือที่อยู่ภายใต้แท็ก h1 , h2 และคลาส .sub-title จะกลายร่างเป็นฟ้อนท์ลักษณะแบบนี้หมด ผมเลือกใช้แค่่ส่วนหัวของบอร์ด

อันสุดท้ายมาดูที่ส่วนfooter ด้านล่างสุดมีการดึงข่าวrss มาแสดงด้วย ท่านสามารถเปลี่ยนแหล่งข่าวจากที่อื่นได้ด้วยตัวเอง โดยสามารถเปิดไฟล์ index.template.php

ค้นหาคำว่า feedrss() วิธีใช้งานก็แค่เอา rss จากเว็บที่เราต้องการแสดงมาใส่ เช่น ผมดึงข่าวจากไทยรัฐ ก็จะได้แบบนี้ feedrss('http://www.thairath.co.th/rss/news.xml')

สุดท้ายอยากให้ลองไปดาวน์โหลดมาใช้กันดูครับ เจอปัญหาตรงไหนก้อโพสต์ถามได้ครับ

ดาวน์โหลดที่นี่


ดูตัวอย่างจริงที่นี่

วันเสาร์ที่ 1 ตุลาคม พ.ศ. 2554

[smf] แยกกระทู้ปักหมุดจากกระทู้ปกติโดยมีแถวคั่น 1 แถว


กระทู้ปักหมุด คือกระทู้ที่ผู้ดูแลบอร์ดต้องการให้อยู่ด้านบนสุด แม้จะมีกระทู้ใหม่ๆเข้ามา แต่กระทู้ปักหมุดก็ยังโดดเด่นเล่นท่าอย่างท้าทายอยู่อันดับต้นๆเสมอ

ถ้าคิดภาพไม่ออก ลองดูรูปด้านล่างนี้


(ภาพตย.จากบอร์ดของ zone-it)

จะเห็นกระทู้ปักหมุดจะมีหมุดปักอยู่ชัดเจน และสามารถปักได้มากกว่า 1 กระทู้ (ตามตย.)

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

ปักหมุดทำได้ไม่ยากครับ เปิดกระทู้ที่ต้องการปักหมุดขึ้นมา แล้วลงไปด้านล่างสุดของกระทู้ จะมีข้อความว่า "ติดหมุดให้หัวข้อนี้อยู่ด้านบน"



เราก็แค่จับเมาสท์ให้มั่นแล้วเอาไปคลิกที่ข้อความนั้น ก็เป็นอันเสร็จพิธี

แต่ถ้าท่านหาเมนูนี้ไม่เจอ ก็ไม่ต้องโวยวายร้องไห้คร่ำครวญบ่นพ้อตัดพ้อต่อโชคชะตาของตัวเองนะครับ

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

บางท่านเถียงว่า ผมไม่ได้เป็นแอดมิน แต่ทำไมผมเห็นเมนูนี้ ? ผมไม่ได้ผิดปกติด้านพันธุกรรมใช่มั้ยครับ?

บางบอร์ดมีการเซตให้สมาชิกสามารถติดหมุดได้ หรือบางบอร์ดก็มีการตั้งระดับสมาชิกว่าระดับไหนสามารถปักหมุดได้ ระดับไหนทำได้แค่ดูอย่างเดียว

โอเคนะครับ เรื่องปักหมุด ทีนี้จะเข้าประเด็นของกระทู้นี้สักที !!!
(เขียนมาครึ่งหน้ายังไม่เข้าประเด็นอีก นิสัยชักจะละม้ายสส.เข้าไปทุกที)


โอเค ประเด็นคือ อยากจะเพิ่มแถวไปอีกแถวหนึ่งคั่นกลางระหว่าง กระทู้ติดหมุด กับ กระทู้ปกติ ทำได้ม่ะ??

ทำได้!!

และวิธีทำนั่น คือ

1. เปิดไฟล์ MessageIndex.template.php ซึ่งอยู่ในโฟลเดอร์ธีมของท่านเอง ถ้าไม่มีไปหาในโฟลเดอร์ธีม Default แล้วก็อปปี้มาไว้ในโฟลเดอร์ธีมของมึง เอ้ย ของคุณครับ

2. ค้นหาคำสั่งนี้
foreach ($context['topics'] as $topic)
    {

3. เจอคำสั่งด้านบนแล้ว เพิ่มคำสั่งนี้ต่อท้าย
if (isset($previousTopicClass) &&  strpos($previousTopicClass, 'sticky') !== false &&  !$topic['is_sticky'])
 echo '<tr><td colspan="7"></td></tr>';
$previousTopicClass = $topic['class'];

  เซฟ..เสร็จ!!

วันพฤหัสบดีที่ 18 สิงหาคม พ.ศ. 2554

[smf] แจกธีมsmf Blue Theme 2.0

หลังจากเคยแจกไปแล้วสำหรับ Theme smf Blue Theme เวอร์ชั่น 1 (สำหรับ smf เวอร์ชั่น 1.1.1x) คลิกดูที่นี่

วันนี้ขอเอาใจคนใช้ smf เวอร์ชั่น 2.0 ย้ำนะครับว่าเป็นเวอร์ชั่น 2.0 finalเท่านั้น ประเภทเวอร์ชั่น 2 rc1 หรือ rc 3 rc 5 ใช้ไม่ได้นะครับ

หน้าตาอาจไม่ต่างจาก Blue Theme เวอร์ชั่น 1 มากนัก มาดูหน้าตาก่อนดีครับ



ดูตัวอย่างจริงคลิกที่นี่

ดาวน์โหลดคลิกที่นี่

สำหรับ Blue Theme ตัวนี้ผมได้ปรับแต่งจากธีม Default ของ smf ดังนั้นหน้าตาจึงดูไม่แตกต่างจากธีมดีฟอลต์สักเท่าไร แต่ถ้าใครต้องการหนีจากความซ้ำซากของธีมดีฟอลต์ ธีมนี้คือคำตอบ

สิ่งที่เพิ่มเติมให้ใน Blue Theme นี้คือ แบนเนอร์ และเมนูหลักเพื่อลิงค์ไปยังหน้าแรกของเว็บไซต์

เอาเป็นว่า หากใครพบปัญหาในการใช้งานหรือนำไปแก้ไขเปลี่ยนแปลงแล้วไม่ได้ดังใจ ก็แสดงความคิดเห็นด้านล่างได้

แล้วพบกันใหม่ในตอนนั้น