pico hosting ผู้ให้บริการ Web hosting จดโดเมนราคาประหยัด  

บทความ: เพิ่ม Smileys ให้กับ SMF ฉบับคนขี้เกียจ

    ด้วยความอยากเพิ่ม Smileys หรือ emo ให้กับ webboard ที่ใช้ smf อยู่ เลยลองไปหา Smileys ตามเนตดู ปรากฎว่าจำนวน smileys ที่หาได้นั้นมันเยอะเหลือเกิน (ประมาณ 400 กว่ารูป) ถ้าจะไปนั่งเพิ่ม smileys ที่ละรูปนี่ไม่ไหวแน่ๆ เลยมานั่งเขียน php script ให้ script มันสร้างไฟล์ sql มาแล้วเอาไฟล์นั้นไปใส่ในฐานข้อมูลแทนของเดิมน่าจะไวกว่า หลังจากที่เขียนและทดสอบเสร็จแล้ว เลยเอามาแจกให้คนที่ใช้ smf อยู่เอาไปใช้งานกันบ้างครับ

<?PHP
$path = "more";	// โฟล์เดอร์ที่ใช้เก็บ smileys
$filename = "smgen.sql";	// ชื่อไฟล์ที่ใช้เก็บคำสั่ง sql
$item_per_row = 10;	// จำนวน smileys/emo ที่จะแสดงใน 1 แถว
$show_post = 59;	// จำนวน smileys/emo ที่จะแสดงในหน้าโพสต์ข้อความ ในตัวอย่างนี้คือแสดง smileys/emo เฉพาะ 59 ตัวแรก ตัวอื่นๆจะแสดงเป็น popup

$id = 1;
$row = 0;
$order = 0;

$sql = "INSERT INTO `smf_smileys` (`id_smiley`, `code`, `filename`, `description`, `smiley_row`, `smiley_order`, `hidden`) VALUES\n";
$file = scandir($path);
foreach($file as $value)
{
	if($value=='.' || $value=='..') continue;
	
	if($id<=$show_post)
		$hidden = 0;
	else
		$hidden = 2;
	$sql .= "($id, ':$value:', '$value', '$value', $row, $order, $hidden),\n";
	$id++;
	if(++$order==$item_per_row)
	{
		$order = 0;
		$row++;
	}
}
$sql = rtrim($sql, ",\n");
$sql .= ';';
echo $sql;
$handle = fopen($filename, 'w');
fwrite($handle, $sql);
fclose($handle);
?>

    สำหรับวิธีการใช้งานก็นำ script นี้ไปไว้บนโฮส เช่นเอาไปไว้ที่ forum/Smileys/smgen.php (ในตัวอย่างนี้จะใช้ชื่อไฟล์ smgen.php) แล้วอัพโหลด smileys/emo ไปไว้บนโฮส ในตัวอย่างนี้จะอัพโหลดไปไว้ที่ forum/Smileys/more หลังจากนั้นก็เรียกไฟล์ smgen.php ทำงาน เสร็จแล้ว script smgen.php จะสร้างไฟล์ชื่อ smgen.sql ขึ้นมาและแสดงข้อมูลคำสั่ง sql ในหน้า web browser เราสามารถ import ไฟล์ smgen.sql ไปในตาราง smf_smileys ได้เลย หรือจะนำคำสั่ง sql ที่แสดงในหน้า web browser ไปเพิ่มในลงในตารางโดยใช้ phpMyAdmin ก็ได้ครับ และก่อนที่จะ import ไฟล์นี้เข้าไปต้องลบข้อมูลเก่าในตาราง smf_smileys ออกกอ่นนะครับ

ใครที่นำบทความไปเผยแพร่ที่เว็บไซต์อื่น กรุณาทำลิ้งค์กลับมายังบทความต้นฉบับด้วยนะครับ