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>';
^