การจัดการแสดงผลในหน้า Dashboard
มีคำถามจากบอร์ดบ่อยๆ ถึงวิธีการดัดแปลงการแสดงผลในหน้า Dashboard ผมสรุปเอาไว้ที่นี่เลยละกัน
หน้า Dashboard ของโปรแกรมต่างๆที่สร้างจาก Adminframework มีรูปแบบการทำงานเหมือนๆ กัน ดังนั้นเรียนรู้จากโปรเจ็ค Adminframework ให้เข้าใจอันเดียว ก็สามารถดัดแปลงโปรเจ็คอื่นๆได้
ปกติแล้ว ถ้าไม่มีการกำหนดเป็นอย่างอื่น หน้าเริ่มต้นของโปรแกรมคือหน้า Home หรือ \Index\Home\Controller แต่เนื่องจากหน้านี้ทั่วๆไปมันไม่ได้มีการทำงานใดๆ ผมเลยกำหนดให้มันเป็นหน้า Dashboard แทน แล้วออกแบบให้มันไปเรียกใช้โมดูลต่างๆ เพื่อจัดการแสดงผลในหน้านี้แทน
การจัดการแสดงผลในหน้า Dashboard สำหรับโปรเจ็คทั้งหมด อยู่ในไฟล์ /modules/index/controllers/home.php ซึ่งคำสั่งต่างๆในหน้านี้จะทำงานร่วมกับโมดูลต่างๆ ที่ติดตั้ง โดยโปรแกรมจะทำการอ่านข้อมูลจากโมดูล แล้วนำมาแสดงผลในหน้า Dashboard
- addCard เมธอดสำหรับการเพิ่ม card ซึ่งในการทำงานจะเป็นการเรียก เมธอด renderCard เพื่อทำการเพิ่ม card ที่ต้องการแสดงผลในหน้า Dashboard
- addMenu เมธอดสำหรับการเพิ่ม Link ซึ่งในการทำงานจะเป็นการเรียก เมธอด renderQuickMenu เพื่อทำการเพิ่ม ลิงค์ ที่ต้องการแสดงผลในหน้า Dashboard
- addBlock เมธอดสำหรับการเพิ่มบล๊อคที่กำหนดเอง เช่น ปฏิทิน หรือ กราฟ ที่ต้องการแสดงในหน้า Dashboard
/**
* ฟังก์ชั่นสร้าง card.
*
* @param Request $request
* @param \Kotchasan\Html $card
* @param array $login
*/
public static function addCard(Request $request, $card, $login)
{
\Index\Home\Controller::renderCard($card, 'icon-tools', 'Repair list', number_format(\Repair\Home\Model::getNew($login)), 'Job today', 'index.php?module=repair-setup'.(isset(self::$cfg->repair_first_status) ? '&status='.self::$cfg->repair_first_status : ''));
}
สำหรับคำสั่งอื่นๆ ก็เช่นกันนะครับ ผมแนะนำให้ศึกษาจากตัวอย่างตามโปรเจ็คต่างๆที่ผมทำไว้จะดีที่สุด (เพราะจุดประสงค์หลักของผมคือ เพื่อกระตุ้นให้เกิดการเรียนรู้ โดยการดูจากโค้ดตัวอย่าง)