send_message.html 에서 레이아웃의 변수 접근방법에 대하여 문의드립니다.

 

{@
  $logged_info = Context::get('logged_info');
  $oLayoutModel = &getModel('layout');
  $layout_srl = 133;
  $li = $oLayoutModel->getLayout($layout_srl);  

}

 

php 코드상에서 $li 레이아웃 변수에 접근할 일이 있어서 위와같이 작성해보았는데요

문제는 {$li->설정 이름(변수이름)} 으로 출력해보면 아무것도 출력되지 않은채 공란으로 출력됩니다.

 

혹시 어떤 문제인지 실마리를 알려주실분 있으실까요? ㅠ_ㅠ

  • profile
    $li 를 디버그로 찍어보세요. 뭐가 담겨있는지.
  • profile profile
    $li을 print_r로 출력해보면 잘 담겨져 있습니다.

    [extra_var] => stdClass Object ( [primary_color] => stdClass Object ( [group] => 일반 [title] => 대표 색상 [type] => colorpicker [value] => #41a317 [description] => 흔히 Primary color로 표현되는 대표 색상을 변경합니다. )

    이런식으로 잘 담겨져 있는데 왜 변수로 꺼내려고 하면 안돼는지 이해가 잘 안가네요 ㅠㅠ
  • profile
    $li->extra_var->변수 이런식으로 해보신건가요?
  • profile profile
    아 바로 해결했습니다 감사합니다!
    외부 페이지에서는 $li->변수이름 으로 바로 접근하면 안되는건요 ㅠㅠ

    혹시나 저처럼 어려움을 겪고 계시는 분들이 계실까봐 공유해드립니다.

    $li->extra_var->primary_color->value 식으로 접근하셔야합니다
  • profile profile

    변수 li의 구조 자체가 extra_var라는 변수 안에 레이아웃의 각 변수가 담긴 형태로 되어 있는겁니다.
    그러니 당연히 $li->변수명 으로는 불러올 수 없죠.

  • profile profile
    이상하게도 레이아웃이 적용된 일반 모듈 스킨에서는 $li->변수명 으로 바로 호출이 되더라구요 ㅠㅠ 그래서 헛갈렸습니다

    감사합니다 ㅎㅎ
  • profile profile

    https://github.com/rhymix/rhymix/blob/a6ace52c9e25047f966eb83253526215936029b1/modules/layout/layout.view.php#L129-L152

    라이믹스에서 레이아웃 정보를 불러올때는 getLayout으로 가져온뒤 이미지 관련 추가로 경로 관련 처리를 한뒤 $li에 직접 지정해 주므로 굳이 $li->extra_vars->변수 형태를 사용하지 않아도 됩니다. 이걸 거치지 않고 직접 가져오셨으니 $li->extra_var->변수 형태를 사용하셔야 하는겁니다.

  • profile profile
    아하 별도로 2차가공을 또 해주는군요...!
    크게 배워갑니다 ㅋㅋ 이해못하던 부분이 한번에 이해되었네요 감사합니다