ด้วยความอยากเพิ่ม 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 ออกกอ่นนะครับ
มาจากที่นี่...