묻고답하기
(xedition 레이아웃) 1차메뉴별로 상단 이미지 바꾸는 방법?
2015.06.11 17:27
xeition 레이아웃 사용하여 작업 중입니다.
1차 메뉴가 여럿이어도 상단 이미지는 아래처럼 한 가지로 고정되는데, 1차 메뉴 별로 다른 이미지를불러오게 할 수 없을까요?
1차메뉴 아래 2차메뉴가 있을 경우에는 1차메뉴의 이미지를 그대로 유지하구요.
관련 글 ( https://www.xpressengine.com/qna/22983535 )에서는 페이지 별, 모듈별 이미지를 바꾸는데 , 제 질문은 1차 메뉴별 이미지 교체방법입니다.
감사합니다.
댓글 7
-
ehii
2015.06.11 19:01
-
greenCode
2015.06.11 21:11
제 질문에 정성스런 답글 여러차례입니다. 감사합니다.
mid별 이미지 설정하는 방법은 이해했으나 제 경우 2차 메뉴가 너무 많아요. 또 페이지 삭제, 추가가 생기면 일 수가 많아지니까요.
알려주신 방법대로 수정된 레이아웃을 적용하다가 화면 출력이 안되고 아래같은 메세지가 떴습니다.
Parse error: syntax error, unexpected '$__Context' (T_VARIABLE) in D:\Program Files (x86)\Bitnami\wampstack-5.5.25-0\apache2\htdocs\xe\files\cache\template_compiled\a9b77402f6e194af60ace385580a235a.compiled.php on line 2781. 수정된 레이아웃 코드대로 관리자 페이지/레이아웃 상세설정- 레이아웃 html에 적용 후 이런 에러 발생했구요.
2. 복구 후 xe의 layouts/xedition/layout.html 파일을 수정하니 새로 불러오는 페이지에 적용이 안되네요.
layout.html을 수정하는 위 두가지에 어떤 차이가 있나요? 1번 방법이 파일 캐시에 저장되는 거라면, 2번의 layout.html은 무슨 용도인가요? xeschool의 관련 페이지를 다 읽어보았습니다. layout.html은 어느때에 불러온 후에는 수정사항이 적용이 안되는 건가요?
-
ehii
2015.06.11 21:41
1번 방법은 코어에 변경을 가하지 않고 수정사항을 적용할 수 있습니다만, 말씀하신데로 캐시에 저장되어 원본인 layouts/xedition/layout.html 보다 우선 적용됩니다. 한번 이 방법으로 저장해버리면 파일을 아무리 수정해도 홈페이지에 반영되지 않습니다.
1번 방법보다는 layouts/xedition/layout.html 파일 자체를 수정하시는 2번 방법을 쓰시기 바랍니다.
다만, XEDITION이 default layout으로 코어에 포함되어 있으므로,
만약 해당파일이 코어 업데이트로 변경되는 경우 그때마다 관련 코드를 다시 추가 하셔야 합니다.
관리자 페이지 > 사이트 디자인 설정 > XEDITION > HTML/CSS에서 초기화를 클릭하신 뒤
원본인 layouts/xedition/layout.html 파일을 수정해 보세요.
-
greenCode
2015.06.11 21:52
내부 원리를 들으니 이해되는군요. 초기화 누르면 layout.html 파일을불러 오는거군요. 감사합니다.
-
DoorWeb
2015.06.11 20:18
위 방식도 되지만 이건 제가 사용하는 방식인데 메뉴를 변형시키는겁니다.
메인메뉴와 별로도 메인메뉴와 같은 메뉴구조인 B를 바로가기로 만든 다음에
원하는 메뉴링크 이미지를 넣고 싶은 위치에
<div loop="$main_menu->list=>$key1,$val1" cond="$val1['selected']"><a href="{$val1['href']}" target="_blank"|cond="$val1['open_window']=='Y'">{$val1['link']}</a></div>
처리를 하는데 저기에서 $main_menu 만 바로가기용 B 메뉴를 걸어두면 됩니다.
-
greenCode
2015.06.11 21:42
아 어렵네요. 이 문제는 시간을 좀 가지고 해결해야 겠습니다. 너무 감사드립니다.
-
축복된삶
2016.11.19 10:38
그동안 매번 Xe를 사용해 오면서 도움만 받다가 글 올려 봅니다.
저도 이 문제로 고민을 하다가 제가 해결한 방법이 있기에 필요하신 분들에게 도움이 될까해서 댓글 올려봅니다.
어떤 분이 게시판 상단에 이미지를 넣기 위해서 ../layout.html (Xe 최신버전1.8.25를 기준으로 함) 297-300줄 아래에 어떤 내용을 넣고 메뉴 id가 qna이고 이미지가 qna01.jpg라면 300줄과 301줄 사이에 <block cond="$mid === 'qna'">{@ $_subheader_img = 'qna01.jpg'}</block> 라고 추가 하시면 됩니다. 그리고 이미지 파일은 layouts/exdition/img 폴더에 넣으면 서브 이미지가 자동적으로 보여진다고 했는데 실제로 해보신분들도 있으시겠지만 적용이 되지 않습니다.
저의 해결방법은 다음과 같습니다.
1) menu id가 qna이면 이미지 이름을 qna.jpg로 만드셔서 ../layouts/exdition/img/ 폴더에 upload합니다.
2) 홈페이지에 로긴하여 Xeadmin -> Advanced -> layout -> xeddition-> user defined -> 서브메뉴 타입의 기본현 : Simple-Text Header 로 되어 있는 설정을 -> 기본형: Regular Header로 설정하신 뒤 Save하시면 다른 설정 필요없이 서브이미지가 보여집니다.
이문제로 고민하시는 분들에게 도움이 되었으면 하는 바램입니다.^_^
1차메뉴든 2차메뉴든 사용자가 선택하여 표시되는 페이지는 모두 각각의 mid값을 갖고 있습니다
(mid값이 없는 바로가기는 어차피 표시되지 않으니 고려할 필요가 없습니다.)
관련글에서의 방법처럼 mid별로 이미지를 지정하고, 이 때 같은 1차메뉴에 속한 하위메뉴들은 동일한 이미지를 지정하도록 하는 방식을 취하면 될 것 같습니다.
---- 이상은 제가 권장하는 방법이고, 뭔가 꼭 1차메뉴 별로 이미지를 지정해야 하는 이유가 있으시다면
아래와 같이 layouts/xedition/layout.html 267줄을 수정하고, 288,289줄을 주석처리 한 다음,
layouts/xedition/img폴더에 sub_banner_1차메뉴별mid.jpg 로 각각 이미지를 저장해 보세요.