Menu
คลาสสำหรับแสดงผลเมนูมาตรฐานของ Somtum
\Somtum\Menu
เป็นคลาสหลักสำหรับจัดการเมนูของ Framework ที่รองรับการสร้างเมนูมาตรฐานทั่วไป มีคำสั่งสำหรับเริ่มต้นสร้างเมนูคือ init($menus) ซึ่งมีพารามิเตอร์หนึ่งตัวคือ $menus ซึ่งเป็นแอเรย์เก็บรายละเอียดของเมนู
$menus = \Somtum\Menu::init(\Index\Menu\Model::getMenus());
จากตัวอย่าง ผมใช้คลาส \Index\Menu\Model::getMenus() ในการเก็บรายการเมนู ให้ผลลัพท์เป็นแอเรย์ของรายการเมนู ที่รองรับเมนูย่อยได้ 2 ชั้น ดังตัวอย่าง
namespace Index\Menu;
class Model
{
public static function getMenus()
{
return array(
'home' => array(
'text' => 'หน้าหลัก',
'url' => WEB_URL,
),
'mvc' => array(
'text' => 'เกี่ยวกับ MVC',
'url' => WEB_URL.'mvc',
),
'docs' => array(
'text' => 'คู่มือ',
'url' => WEB_URL.'docs',
'submenus' => array(
'home' => array(
'text' => 'หน้าหลัก',
'url' => WEB_URL,
),
'mvc' => array(
'text' => 'เกี่ยวกับ MVC',
'url' => WEB_URL.'mvc',
),
),
),
);
}
}
- home คือ ชื่อเมนู ซึ่งจะถูกระบุเป็นคลาสของเมนู
- text คือข้อความแสดงบนเมนู
- url คือลิงค์ของเมนู เมื่อคลิกเมนู
- submenus เก็บแอเรย์ของเมนูย่อย
ในส่วนการแสดงผลเมนู เราจะใช้คำสั่ง render($select) ในการสร้างเมนู โดยมีพารามิเตอร์หนึ่งตัวคือ $select ซึ่งเก็บชื่อของเมนูที่ถูกเลือก จากตามตัวอย่างนี้คือเมนูแรกสุด หรือ home นั่นเอง
echo '<ul>'.$menus->render('home').''</ul>';