레이아웃을 동적으로 변경시키는 방법입니다. 

 

우선, 접속주소 뒤에 &user_layout_srl=26010 를 붙입니다. 해당 변수는 원하는대로 변경 가능합니다. 기존에 설정된 레이아웃이 아닌 사용자가 지정한 레이아웃이 적용되는 것입니다. 

 

예를들면 http://codesignlab.cafe24.com/index.php?mid=polo_main&user_layout_srl=26010 와 같습니다. 

 

srl 뒤의 숫자는 레이아웃의 고유번호 입니다. 

 

classes/module/ModuleHandler.class.php 파일을 열어서 898줄로 이동합니다. 

if($layout_srl && !$oModule->getLayoutFile())
            {

                // If layout_srl exists, get information of the layout, and set the location of layout_path/ layout_file
                $oLayoutModel = getModel('layout'); 

 

아래쪽에 

 

$user_layout_srl = Context::get('user_layout_srl');
                if($user_layout_srl)
                {
                    $layout_info = $oLayoutModel->getLayout($user_layout_srl);
                }
                else
                {
                    $layout_info = $oLayoutModel->getLayout($layout_srl);
                }

 

라고 넣습니다. 

 

그리고 위 주소로 테스트 해보시기 바랍니다. ^^ 

  • profile
    새로운 레이아웃을 시범으로 적용하기에 아주 좋은 방법이네요 ㅎㅎ 감사합니다
  • ?

    누군가에게는 이팁이 어마어마한 팁입니다. ^^ 잘활용하겠습니다.

    코어에 이런기능 탑재되면 좋겠는데.

    게시판 공유에 탁월한 기능이라.

     

  • ? profile

    최근 댓글에 뜬 것 보고 저도 따라 들어왔습니다ㅋㅋ

    생각해보니 저도 이 글을 보고 문제의식이 더 강해졌었던 것 같네요.
    이렇게 쿼리스트링을 통해 레이아웃을 가로채는 것도 이제 최신 라이믹스 디벨롭 버전에서는 코어 수정 없이 애드온으로 커버가 가능할 듯합니다.
    물론 XE가 아니라 라이믹스이고, 아직은 디벨롭 버전이라는 점이 장벽이 되긴 하겠지만요.
    아무튼 영감을 주는 감사한 팁이었네요 :)

  • profile ?
    윤삼님의 열정이시면 조만간 뭔가 또 뚝딱 나오겠네요.^^
    XE초창기때는 메뉴기준으로 레이아웃을 지정할수 있었던걸로 기억합니다.
    그러다 보니 하나의 게시판을 여러메뉴에서 활용할때도 문제가 없었구요.
    중복사용할때는 링크메뉴를 만들어서 사용하면 되었으니.
    그런데 현재는 그런부분이 지원이 안되고 있지요.

    단일 사이트메뉴를 사용하는 홈페이지라면 크게 필요치 않을수 있는데, 한 사이트에 여러개의 사이트메뉴를 사용하고 있다면 , 공지사항이나, 자유게시판과 같은 공용으로 사용해야 하는 게시판의 경우엔 이팁이 아주 유용하게 사용이 됩니다.
  • ? profile
    나왔습니다.
    https://xetown.com/1389248
    뚝딱ㅋㅋㅋ
  • ?
    너무 빠르신거 아닌가요? ^^ 코어 수정없이 애드온으로 처리되니 훨씬 깔끔하고 좋습니다.