포럼
XE자네체에서 모듈의 css 나 js 파일 정의되는 순서를 변경할 수 있나요?
2013.10.19 13:52
관리자페이지에서, 특정모듈의 tpl 에서 <load target="./css/admin17.css" /> 형태로 css 를 load 하면
결국 해당 페이지 출력시에는 제일 상단에 정의가 되죠
<link rel="stylesheet" href="/common/js/plugins/ui/jquery-ui.css?20121019153623" type="text/css" media="all" />
<link rel="stylesheet" href="/common/css/xe.css?20121019153607" type="text/css" media="all" />
<link rel="stylesheet" href="/modules/rssboard/tpl/css/admin17.css?20131018185349" type="text/css" media="all" />
<link rel="stylesheet" href="/modules/rssboard/tpl/css/admin17.bootstrap.css?20131018191043" type="text/css" media="all" />
<link rel="stylesheet" href="/modules/admin/tpl/css/admin.css?20131018183035" type="text/css" media="all" />
<link rel="stylesheet" href="/modules/admin/tpl/css/admin_ko.css?20130805082556" type="text/css" media="all" />
이런 형식으로 불러와지는데 (관리자페이지에서 특정모듈 설정화면에서 소스보기하면..)
이 렇게 load 를 link 형태로 변환해서 위에 선언하는게 어디에 있는지 아세요?
그것보다 더 궁금한건.. 저 순서를 바꿀 수 없나요?
rssboard 를 admin 다음에 부르고 싶은데..
그래야 admin tpl 과 중복되는 css 를 다른 모듈에서 재정의할 수 있는데..
이건 admin 이 뒤에 나오면서 덮어버려서요
해당 css 에서 ! important 로 하나씩 해도 되지만..
그래도 혹시나 방법이 있나 해서 여쭤봅니다.
뭐, 이건 결국 js 파일도 같은 방식이고.. 같은 상황이 발생할 수 있겠더군요
js 도 모듈이 먼저 정의되고, 그다음 session / admin 모듈의 js 가 순서대로 정의되기에..
<load target="..." index="숫자" /> index 속성값을 지정해주면 순서를 임의로 지정할 수 있습니다.
./classes/display/HTMLDisplayHandler.php 파일을 보면 _loadJSCSS()라는 함수가 있습니다.
그곳을 보면 각 파일별로 index가 지정되어 있을거에요. 핵심 CSS/JS 파일은 index 값이 -100000나 -1000000로 지정되어 있네요. 이걸 참고해서 우선순위를 지정해주면 될거에요.