วันพุธที่ 27 สิงหาคม พ.ศ. 2557

array_key_exists() กับ in_array()

array_key_exists กับ in_array เหมือนกันและต่างกัน

เหมือนกัน คือ สำหรับเช็ค array เหมือนกัน และคืนค่านเป็น boolean เหมือนกัน


ตัวอย่าง
$array=array("เสือ","แมว");
if(in_array("เสือ",$array)) {
true;
}

ส่วน array_key_exists เช็คเหมือนกัน แต่เช็คค่า key ของ array
ตัวอย่าง
$array=array("animal"=>"เสือ","local"=>"ป่า");
if( array_key_exists ("animal",$array)) {
true;
}



ไม่ใช่อะไร ...มันชอบลืมและใช้สับสนบ่อยๆเลยเขียนไว้ซะเลย ดูสิมันจะลืมอีกมั้ย?

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

SMF Responsive Theme Download ฟรี!

เขียนบทความเกี่ยวกับ SMF Responsive อยู่ 2-3 บทความ พร้อมๆกับการเขียนก็ต้องลงมือทำไปด้วย เพื่อให้สามารถมาเขียนได้และทำได้จริง

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

หลายครั้งที่ผมอ่านบทความ how to และลองทำตาม แต่เมื่อขั้นตอนสุดท้ายผลลัพท์กลับไม่ได้ตามตัวอย่าง

วันนี้ผมเลยนำธีม SMF Responsive มาให้ดาวน์โหลดเอาไปโม เอาไปศึกษา หรือเอาไปใช้งานได้เลยครับ

ขอความกรุณาเก็บเครดิตเล็กๆของผมที่ Footer ไว้ให้ด้วยนะครับ :o


ธีม SMF ตัวนี้ชื่อ Justified เปลี่ยนโครงสร้างของ SMF เป็น Bootstrap เพื่อให้เป็น Responsive ที่สามารถแสดงผลได้ทั้งในพีซี โน๊ตบุค แท็บเล็ต และโทรศัพท์มือถือ (ไม่ support โทรศัพท์บ้าน:o )


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

ดาวน์โหลด


หมายเหตุ : เนื่องจากเว็บตัวอย่างที่ผมไปฝากไฟล์ไว้เป็นโฮสท์ฟรี ก็จึงมีแบนเนอร์ผลุบๆโผล่ๆบ้าง
แบนเนอร์อันนั้นไม่ใ่ช่ของผมครับ เป็นของโฮสท์ฟรีเขา และมันจะไม่ติดไปกับธีมครับ

หากพบข้อผิดพลาด หรือสงสัยติ-ชมโพสต์ในกระทู้ได้ หรือเมล์มาที่ nevikupแอดhotmail.com


วันอังคารที่ 24 มิถุนายน พ.ศ. 2557

[SMF] How to SMF Responsive ตอนที่ 2 หน้าแรก

ไฟล์แรกที่เราจะทำการปรับเปลี่ยน คือ ไฟล์หน้าแรกของบอร์ด 

หน้าแรกของบอร์ดที่ไฟล์ที่เกี่ยวข้อง 2  ไฟล์ คือ
1. index.template.php
2. BoardIndex.template.php

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

ส่วนไฟล์ BoardIndex.template.php จะเป็นส่วน Content ของหน้าแรก




เปิดไฟล์  index.template.php  เราต้องทำการ include ไฟล์ bootstrap มาให้ครบ ทั้ง css และ js

ไปที่ฟังก์ชั่น template_html_above()  หาแท็ก </head>  ใส่ include ไฟล์ทั้งหมดก่อนแท็ก </head>

 <!-- Bootstrap core CSS -->
    <link href="',$settings['theme_url'],'/jumbotron/dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="',$settings['theme_url'],'/jumbotron/jumbotron.css" rel="stylesheet">

    <!-- Just for debugging purposes. Dont actually copy this line! -->
    <!--[if lt IE 9]> <script src="',$settings['theme_url'],'/jumbotron/docs/assets//js/ie8-responsive-file-warning.js"></script> <![endif]-->

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
   <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
     <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
   <![endif]-->

หลังจาก include ไฟล์ bootstrap มาแล้ว เราก็สามารถเรียกใช้งาน class ต่างๆของ bootstrap ได้ตามใจ ในทีนี้เราจะเอาโครงสร้างของธีม Jumbotron มาใช้  ดังนั้น เราก็เปิดไฟล์ธีมของ Bootstrap ที่ชื่อ Jumbotron/index.html ขึ้นมา

ก็อปปี้โครงสร้างทั้งหมดที่อยู่ภายใต้ แท็ก <body>... </body> นำมาวางในไฟล์ index.template.php ในฟังก์ชั่น template_body_above()
ตรงจุดนี้ ต้องใช้ความระมัดระวังนิดหนึ่งนะครับ โครงสร้างที่เราก็อปปี้มาและมาวางในไฟล์index.template.php นั้นต้องอยู่ภายใต้คำสั่ง echo ' ... '

ฟังก์ชั่น template_body_above() คือ ส่วนที่เป็น Content ในส่วนหัว หรือ Header เริ่มตั้งแต่ โลโก้ เมนู
ฟังก์ชั่น template_body_below() คือ ส่วนที่เป็น Content ในส่วนท้าย หรือ Footer

ช่องว่างระหว่าง template_body_above() และ template_body_below() จะเป็นส่วน Content ที่จะมาจากไฟล์  BoardIndex.template.php - หน้าแรก , ไฟล์ MessageIndex.template.php - หน้ารวมกระทู้ และไฟล์ Display.template.php - หน้ารายละเอียดกระทู้


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

(ตัวอย่างธีมที่ออกแบบใหม่)

ในตอนต่อไป เราจะมาพูดถึงรายละเอียดของหน้า รวมกระทู้ และหน้ารายละเอียดกระทู้

วันเสาร์ที่ 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 Responsive, ทำบอร์ด SMF ให้ตอบสนองในทุกสัมผัส

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

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


 Responsive Web Design  คือ การออกแบบเว็บไซต์ให้ตอบสนองกับทุกอุปกรณ์ ไม่ว่าจะเป็น พีซี , มือถือ หรือว่าแท็บเล็ต
 เรียกว่าเปิดด้วยอุปกรณ์ตัวไหน เว็บไซต์ก็ยังไฉไลสวยเด้งดั่งเดิม

ลองคลิกเข้า  http://www.thairath.co.th/  แล้วย่อบราวเซอร์ให้เล็กลง จะเห็นชัดเจนครับ

เว็บไซต์ทั้งหลายก็ปรับสภาพออกแบบเป็น Responsive กันเกือบหมด โดยเฉพาะเว็บไซต์สำเร็จรูปอย่าง Wordpress เป็นเจ้าแรกๆที่ออกธีมแนว Responsive มาให้ดาวน์โหลดใช้

หันมาดู SMF เว็บบอร์ดเจ้าเก่า เก่าแก่ที่เหมือนจะมีปัญหามากกับ Responsive เพราะตัวโปรแกรมหลักออกแบบด้วยตาราง ถึงแม้หลังๆจะพยายามปรับเป็น css แล้ว แต่ css ของ smf ก็ยังไม่ Responsive อยู่ดี!

แต่ถามว่าทำได้ไหม? 

คำตอบคือ ทำได้ครับ แต่ยังไม่มีใครทำ?

จริงๆมีผู้ออกแบบเฟรมเวิร์กที่เป็น Responsive หลายเจ้าแล้วครับ และที่ดังๆ ก็คือ Bootstrap 
ฺคลิกเข้าไปดูครับ มีทั้งธีมตัวอย่าง และวิธีใช้งาน

ทีนี้ ถ้าจะทำ SMF ให้เป็น Responsive ก็ไม่ยากแล้วครับ Bootstrap คือคำตอบ

SMF + Bootstrap =  SMF Responsive  ด้วยประการฉะนี้.


บทความหน้า เรามาดูวิธีทำและตัวอย่างธีม SMF Responsive กันครับ ว่าหน้าตาจะเป็นอย่างไร?


[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