묻고답하기
현재 페이지가 어느 메뉴인지 알아내기
2014.03.23 23:25
우선 서버 환경은 아래와 같습니다.
app : Microsoft-IIS/7.5
xe_version : 1.7.4.1
php : 5.5.8
db_type : mssql
레이아웃들을 몇개 살펴보니 현재 이용중인 페이지가 어느 메뉴인지 표시하기 위해서 주로 class="active"|cond="$val1['selected']"의 문법을 사용해서 클래스를 부여해서 구분하는거 같습니다.
그런데 관리자 페이지의 사이트 메뉴 편집 메뉴에서 추가한 페이지나 게시판등은 정상적으로 체크가 되지만 바로가기로 추가한 메뉴는 체크를 못해내고 있네요 @.@
바로가기에도 위의 문법이 적용되게 하려면 어떻게 해야 하는지 궁금 합니다.
뭐 당연한거 겠지만 아래처럼 if문을 써봐도 여전히 바로가기 메뉴는 체크를 못해냅니다.
class="<!--@if($val1['selected'])-->active<!--@end-->"
댓글 5
-
투씨
2014.03.23 23:37
-
prologos
2014.03.23 23:52
저의 xe시작이 1.7.4였는데... 1.7.4와 1.7.4.1 모두 바로가기는 체크도 안되고 홈페이지로 지정도 불가능 하네요. 이전 버전들은 체크가 되나요?
-
투씨
2014.03.24 00:14
홈페이지 지정은 안되는걸로 압니다. 하지만 메뉴체크는 되는걸요. 셀렉트 체크는 직접 확인한 것이니
다른 원인을 찾아보셔야 할 것 같습니다.
-
prologos
2014.03.24 01:14
@투씨님 말씀 듣고 몇가지 확인 해보니 체크되는 상황과 체크 안되는 상황이 있네요. @.@
바로가기 메뉴 생성시 URL 링크 사용해서 주소를 직접 입력해서 사용하면 체크 안됨.
바로가시 메뉴 생성시 메뉴 링크를 이용해서 기존 메뉴에 존재하는 메뉴 항목을 링크하면 체크 됨.
즉 게시판 모듈등에서 따로 생성해서 나중에 메뉴에 추가하면 체크가 안되는거 같습니다.
메뉴를 아래처럼 구성했다고 가정합니다.
메인1 ( 바로가기 | url링크 | /board )
- 서브1 ( 메뉴 추가 )
- 서브2 ( 바로가기 | url링크 | /free )
- 서브3 ( 바로가기 | 메뉴링크 )
결과
1. 메인1 클릭 - 메인1 체크 안됨
2. 서브1 클릭 - 메인1 체크, 서브1 체크
3. 서브2 클릭 - 메인1 체크 안됨, 서브2 체크 안됨
4. 서브3 클릭 - 메인1 체크, 서브3 체크
추가로 URL링크로 바로가기 생성 후 BD에서 menu_item테이블의 url컬럼을 수정(/board -> board)하고나서 캐시를 재생성하고 이용해도 정상 체크가 됩니다. ㅋ
이렇게 되면 저만의 문제가 아니고 개발자 분들이 이렇게 설계 했다고 생각해도 되는걸까요? @.@
-
투씨
2014.03.24 01:38
저도 이유가 있을거라고 생각을 하고 있습니다만,,
추측으로는 url 링크로 가져오는 파일은 메뉴로 등록이 안돼서
그런게 아닐까 생각합니다. 그냥 파일 링크라서요...
바로가기가 메뉴를 선택을 하면 그 메뉴와 연동이 되어서 체크가 되는 것 같습니다.(추측^^)
바로가기 메뉴도 셀렉트 체크가 될텐데요,,,