질문/조언질답게시판

 

 

레이아웃 스킨 파일에서

레이아웃 설정의 메뉴에 등록된 selected된 값 가져오기

 

(단순히 사이트맵에서 해당 사이트맵의 이름은 menu_srl값을 통해 가져올 수 있다는 걸 알았습니다.)

{@
$oMenuAdminModel = getAdminModel('menu');
$menuListFromDB = $oMenuAdminModel->getMenus();
}
<[email protected]($menuListFromDB as $key => $val)-->
<div>{var_dump($val)}</div>
<[email protected]>

이렇게 하면 사이트맵에 등록된 전체 사이트맵을 다 가져오는 건데요,

제가 원한 건 해당 레이아웃에 등록된 메뉴값만 가져오는게 목적이었습니다;;

 

스크린샷 2020-04-11 오전 12.17.16.png.jpg

 

레이아웃 설정에서 메뉴 

<li loop="$portal_menu1->list => $key1, $val1"

이런 식으로 가져오는데, 여기서 한단계 위인 사이트맵 이름 자체를 가져오고 싶었던 것이었던 것이었는데 ㅠ

 

레이아웃 설정에서 메뉴에서 선택된 타이틀값을 가져오려면 어떻게 하면 될까요?;

 

 

 


 

 

스크린샷 2020-04-11 오전 7.20.41.png.jpg

 

xe_layouts 라는 테이블에서 현재 선택된 layout_srl 값을 가져온 뒤,

extra_vars 컬럼에서 a:4{...} 이 부분이 현재 선택된 레이아웃의 메뉴들인데, 이것들을 가져올 수 있으면 되는데요...

저걸 어떻게 가져오면 될까요.

 

1. 현재 선택된 레이아웃 srl 값 가져오기

$layout_info=Context::get('layout_info');

  • ?
    $portal_menu1->title
    이걸 말씀하시나요?
  • ? profile
    음! 이건 어떻게 쓰는거죠?; null 값이라고 나오는데..
    혹시 라이믹스 에서는 그게 되나요?;
  • profile ?
    {var_dump($portal_menu1)} 해보셔서 title이 있는지 확인해보세요.
  • ? profile
    네 없어요 ㅎ;;
  • profile
    {@
    // $oContext = &Context::getInstance();
    // $oContext->init();
    // $layout_info = Context::get('layout_info');
    }
    <pre>{print_r($layout_info->menu_name_list);}</pre>

    <[email protected]($layout_info->menu_name_list as $key => $val)-->
    {$val}<br>
    <[email protected]>

    이렇게 해결했는데 코미님 뭔가 더 간단한..-_-;;
  • profile

    레이아웃 스킨에서 사이트맵 메뉴 타이틀을 가져오는 거였나요.
    이것도 복잡할지 모르겠는데, 그래도 메뉴 루프 돌리기 직전에 이렇게 갖다 두면 루프를 안 돌리는 거여서 조금 나을 것 같습니다.

    {@
        $oMenuAdminModel = getAdminModel('menu');
        $menu_item_srl = array_values($portal_menu1->list)[0]['node_srl'];
        $menu_srl = $oMenuAdminModel->getMenuItemInfo($menu_item_srl)->menu_srl;
        $menu_title = $oMenuAdminModel->getMenu($menu_srl)->title;
    }
    {$menu_title }

  • profile profile
    아 전 메뉴에 쓰일거라서 루프 해도 될듯 합니다 ㅋ 감사합니다
  • profile

    그나저나 코미님 이야기처럼,
    코어 차원으로 레이아웃에서 메뉴 list를 가져올 때 사이트맵의 srl이랑 title도 같이 들어가 있으면 좋을 것 같네요.