질문/조언질답게시판

아 한번에 질문을 2개나 하려니 좀 그렇네요.

 

일단 첫번째 질문입니다.

현재 저는 모듈에서 만약 화면이 필요한 경우 다음과 같은 추가방법밖에 모릅니다.

insertModule()을 할때 $module_info->mid를 함께 설정해두면

관리자 화면의 사이트 메뉴 편집에 메뉴가 추가되더군요.

이걸 적당히 다른 메뉴 하위에 배치하는겁니다.

그렇게 하고서 특정 view에 index 설정을 해두면 거기로 가더군요.

 

근데 지금 만드는 모듈은 메인 메뉴에 2개의 화면을 각각 별개의 메뉴로 집어넣고 싶습니다.

하나는 목록 화면이구요 또 하나는 랭킹 화면입니다.

근데 위의 방법으로 하면 메뉴가 하나만 추가되잖습니까?

그래서 랭킹 화면은 그냥 바로가기 형태로 해서 메인메뉴에 집어넣었습니다. act에다가 view값을 넣어서..

근데 문제는 이렇게 하면 mid 값이 같아서 그런지 랭킹 화면을 선택해도

나중에 레이아웃에서 메뉴 출력을 할때 현재 메뉴가 목록 화면인것처럼 인식되는겁니다.

그래서 아무리 봐도 mid를 분리하는 수 밖에 없을 것 같더군요.

근데 또 그렇게 하자니 어떻게 하는지 알 수가 없더군요. 

원래는 비슷한 동작을 하는 다른 모듈 소스를 뒤져서 힌트를 얻는데 이번엔 그런 모듈도 없어서...

그래서 질문을 드립니다.

 

그리고 두번째 질문입니다.

현재 제가 만든 회원 분리하기 기능은 팝업을 띄워서 처리를 하는데 그러다보니

레이아웃을 없음으로 설정하고 있습니다.

근데 화면을 추가하고 싶은데 이건 팝업이 아니다보니... 레이아웃을 추가하고 싶은데

하나의 모듈 안에서 어떤 뷰는 layout이 있고 어떤 뷰는 layout이 없고 이렇게 할 방법이

과연 있는지 모르겠습니다. 

  • profile

    1. mid를 분리하지말고 하나의 mid에 act를 변경하여 각각 메뉴 추가할때 추가적인 링크를 그대로 넣으시면 됩니다. mid를 추가하면서 생긴 메뉴는 다른곳으로 치우시고 아래처럼 링크를 추가하세요
    /index.php?mid=midname&act=dispModulenameActionName
    위와 같이 메뉴를 바로가기 링크로 지정하면 알아서 해당 링크가 잡힙니다. (둘다 위처럼 설정해야합니다.)

    mid분리를 통해 서로 다른 액션역할을 하는 방식은 별로 좋지 않습니다. 액션들의 대한 일괄성이 떨어지고 나중에 유지보수도 불편해질뿐입니다.

    2. 모듈의 경우 레이아웃을 사용하는 모듈과 아닌 모듈이 따로 존재하겠지요. 그건 제작자가 추가했냐 안했냐이고, 레이아웃 지정하는 방식도 mid를 생성하여 해당 모듈설정을 읽어들이는 방법이있고 아니면 모듈의 자체적인 설정(module_config)를 가지고 설정하는 방법도 있습니다.

    따라서 그건 제작하시는 분들이 레이아웃 설정을 넣었냐 안넣었냐 이게 다 다른게 아닌지 의심스럽습니다.

    질문 자체가 모호한데.. 암튼 그런 부분이 필요하다면 module_config에 설정을 저장하는 방식을 알아보세요. 관련 코드는 알림센터 모듈을 참고하시면 됩니다.

  • profile ?
    그런 방법을 생각을 못했군요 그냥 둘다 바로가기로 하면 간단할 것을...
  • profile
    완전히 분리해야 하는 기능이라면 mid를 따로 두셔도 무방합니다. 각각 다른 mid를 넣어서 insertModule()을 두 번 하시면 그만입니다. 게시판처럼 mid를 수십 개씩 갖는 모듈도 있는데요 뭐...
  • profile ?

    헉 그거 2번해도 되는거였나요? 모듈은 하나니까 insertModule()도 한번인줄 알았는데..

  • ? profile
    mid값과 module_srl 값을 다르게 하여 생성하게 되면 새로운 모듈이 생성됩니다.