THEME MENU

Class ThemeMenu cung cấp các method thao tác với menu

Location

#add

Thêm một menu location

static function ThemeMenu::addLocation($location_key, $label = null);
ThemeMenu::addLocation('main-menu', 'Menu chính');

#Render

Hiển thị menu dựa theo vị trí đã đăng ký

static function ThemeMenu::render($args);

$args (array) một biến mở rộng bao gồm

[theme_location] (string) $location_key đã đăng ký

[walker] (string | default walker_nav_menu) tên class sử dụng để hiển thị menu

[theme_id] (int) Id menu muốn hiển thị, chỉ sử dụng khi không có theme_location

ThemeMenu::render('main-menu');

#Get Data

Lấy dữ liệu menu

static function ThemeMenu::getData($id);
ThemeMenu::getData(1);
/* Array (
    [0] => stdClass Object (
        [id] => 50
        [name] => Tin tức
        [slug] => tin-tuc
        [type] => categories
        [object_type] => post_categories
        [menu_id] => 13
        [parent_id] => 0
        [object_id] => 1
        [child] => Array ()
        [data] => Array (
            [icon] =>
            [target] => _self
        )
    )

    [1] => stdClass Object (
        [id] => 51
        [name] => Dịch vụ
        [slug] => dich-vu
        [type] => categories
        [object_type] => post_categories
        [menu_id] => 13
        [parent_id] => 0
        [object_id] => 2
        [child] => Array ()
        [data] => Array (
            [icon] =>
            [target] =>
        )
    ) */

#Add option

Thêm các dữ liệu tùy biến cho menu item

static function ThemeMenu::addItemOption($module, $args);

$module (string | default menu) module thêm tùy biến. (page, post, ...) mặc định "menu" là thêm vào cho tất cả

$args (array) biến Input tham khảo FormBuilder

ThemeMenu::addItemOption('menu', [ 'field' => 'icon', 'label' => 'Icon', 'type' => 'image']);
ThemeMenu::addItemOption( 'menu', [
    'field' => 'target',
    'label' => 'Target',
    'type'  => 'radio',
    'single'=> true,
    'options' => [
        '_self' => 'Mở tại trang',
        '_blank' => 'Mở trong tab mới'
    ],
    'level' => 0 //Level hiển thị không điền nếu hiển thị tất cả level
]);

Thuộc tính menu được hỗ trợ từ phiên bản cms 4.5.0