วิธีการใช้งาน Flexy Template
สำหรับบทความนี้ผมขอเสนอการเขียน Flexy Template หน่อยแล้วกันนะครับแต่ในที่นี้จะขอพูดถึงวิธีการ เขียนในฝั่ง template นะครับว่าสามารถเขียนในรูปแบบใหนได้บ้าง
แต่ก่อนอื่นต้องขอบอกก่อนนะครับว่ารูปแบบการเขียนนี้ผมขออ้างอิงตาม seagull framework นะครับ แต่ผมเข้าใจว่าคงจะเขียนเหมือนๆกันแหละครับถ้าเป็น ภาษา Flexy
///////////////////////////////////////////////////////////////////
/////////////////////////// foreach //////////////////////////////
///////////////////////////////////////////////////////////////////
$this->aData = array(
"dog" => "cat",
"fire" => "water"
);
$this->b = array('a','b','c');
$template->outputObject($this);
การใช้งาน foreach ใน template
{foreach:aData,k,v}
key = {k}
value = {v}
{end:}
หรือจะสามารถเขียนแบบไม่มี key ก็ได้แบบด้านล่างนี้ครับ
{foreach:b,v}
v is {v}
{end:}
//////////////////////////////////////// if else /////////////////////////////////////////////
สามารถเขียนตรวจสอบตัวแปรโดยใช้ IF ELSE END ได้ดั่งตัวอย่างด้านล่างนี้นะครับ
สำหรับการเขียนตรวจสอบ if สามารถตรวจสอบได้เพียง (true / false) หรือ (ค่ามีค่า / ไม่มีค่า) ครับ
สรุปก็คือตัวแปรดังกล่าวที่เราเอามาตรวจสอบมีค่าหรือไม่ หากมีก็จะเข้า if
{if:showStuff}
//Hello สวัสดีชาวโลก
{end:}
{if:showDog()}
//Doggy ทำสิ่งที่ท่านต้องการ
{end:}
{if:ตัวแปรที่ตรวจสอบ}
//ตัวแปรที่ตรวจสอบมีค่า
{else:}
//ตัวแปรที่ตรวจสอบไม่มีค่า
{end:}
นอกจากนี้แล้วเราสามารถเขียนกลับกันได้อีกแบบครับ คือการตรวจสอบว่า ถ้าไม่มีค่าก็ให้ทำ สามารถเขียนได้ โดยใส่ ! เข้าไปข้างหน้าตัวแปรที่เราเอามาตรวจสอบครับ แบบนี้นะครับ
{if:!ตัวแปรที่เอามาตรวจสอบ}
//ตัวแปรที่ตรวจสอบไม่มีค่า
{end:}
//////////////////////////////////// echo {variable} /////////////////////////////////////
การใช้งานเหมือนการ print ค่าของตัวแปรนั้นๆออกมาครับถ้าเปรียบกับ php ก็ echo ครับ ส่วนการใช้งานไม่น่าจะยากอะไรเพียงแค่ใส่ {} ครอบตัวแปรครับเช่น
{ตัวแปร}
สำหรับคำสั่งนี้จะมี option เพิ่มเติมให้ใส่ไปได้ครับคือ
:h – echos without any change – eg. raw
:u – echos urlencode($variable)
หากต้องการใส่ option ลงไปสามารถใสได้แบบนี้ครับ
{ตัวแปร:h}
ใส่แบบนี้กรณีที่ในตัวแปร output มี html และเราต้องการให้ compile HTML Tag ด้วยซึ่งปกติแล้วหากเราไม่ได้ใส่ข้อมูลที่ถูก print ออกมาจะมี Tag HTML แสดงออกมาด้วย
แต่หากใส่ :h ข้อมูลที่ออกมาหากมี Tag b การแสดงผลเราก็จะเห็นเป็นตัวหนา ครับ
{ตัวแปร:u} ค่าตัวแปรที่แสดงผลออกมาจะผ่าน urlencode ครับ
สำหรับตัวแปลต่างๆเรียกใช้ได้แบบนี้นะครับ
สำหรับ array ใช้เป็นปกตินะครับคือ {aArrayTest[key1][key2]} หรือ {aTest[key1][key2]:h}
สำหรับตัวแปลที่เป็น object สามารถเรียกใช้ได้คือ {objectTest.key1} , {objectTest.key:h}
สำหรับ {methodTest()} , {methodTest():h} หรือ {methodTest():u}
หากเห็นแบบนี้สำหรับตัวผมจะมองว่าเป็นการเรียกใช้ function ครับดังนั้นผมจะเดาไว้เลย 90% ว่าจะต้องมี function ที่ชื่อว่า methodTest ครับ
กรณีที่ function methodTest มีการรับส่งค่า เวลาเราส่งค่าเข้าไปยัง function สามารถทำได้แบบตัวอย่างนี้นะครับ
{methodTest(data1,data2)}
หากเป็นแบบนี้ แปลว่าเราส่งค่า data1 และ data2 ให้กับ function methodTest แต่ทั้งนี้ทั้งนั้น function methodTest($a,$b) ก็จะต้องรับค่าด้วยเช่นกันนะครับ
{methodTest(#www.siammodify.com#,#good#)}
อีกกรณีหนึ่งครับหากเราใส่ #ข้อความ# แปลว่าข้อมูลที่เราส่งเข้าไปยัง function methodTest จะเป็น string ครับ (ระหว่างตัวแปรห้ามวรรค นะครับ)
สำหรับวันนี้ผมขอไว้แค่นี้ก่อนนะครับ ตอนแรกว่าจะเขียนให้หมดทุกๆการเรียกใช้งานที่ผมรู้ แต่ดูๆไป ท่าทางจะเยอะเหมือนกัน เลยขอไว้ต่อตอนที่ 2 พรุ่งนี้แล้วกัน หากไม่ลืมนะครับ
สำหรับการอธิบายอาจจะอธิบายผิดไปบ้างก็ต้องขอโทษด้วยนะครับ หรือ อธิบายไม่เข้าใจก็ช่วยอะไรไม่ได้นะครับ 55+ ลองถามๆเข้ามาแล้วกันครับ ยังไมีอีกหลายตัวเลยที่ผมยังไม่ได้เขียนมา
หากใครเอาบทความผมไปใช้งานต่อกรุณาอ้างอิงที่มาให้ผมด้วยนะครับ และขอลิ้งค์กลับมายังผมด้วยนะครับ