묻고답하기
송동우님, 초면에 죄송하지만 모듈별 헤더 이미지를 다르게 하는 것에 대해서 말씀 좀 묻겠습니다. (+ 알려주신 방법대로 했는데 계속 오류가 나서 layout.html 전문을 답변에 달아놨어요! 한 번만 봐 주세요^^)
2012.02.18 22:44
항상 좋은 답변 해 주시는거 눈팅만 하다가 해결이 잘 안 되서 질문 드립니다.
다름이 아니라 모듈별로 상단 이미지가 다르게 나오는 레이아웃을 만드는 중인데, 검색 중 비슷한 질문에 답변을 해 주신걸 봤습니다.
(해당 질문 : http://www.xpressengine.com/qna/20396540)
여기에 답변을
1. 이걸 어디다 넣어야 되나요?
php 구문 같은데 layout.html 여기다 넣어야 되는지, 해당 레이아웃을 제어하는 css 파일에 넣어야 하는지요.
(참고로 layout.html에 넣어 봤더니 모듈이 안 뜨고 이런 오류가 납니다.
Parse error: syntax error, unexpected T_ELSEIF in /home/hosting_users/blackidz/www/temp2/bbs/classes/template/TemplateHandler.class.php(296) : eval()'d code on line 13)
2. background:url({$bg}) 이건 그냥 layout.html의 헤더 부분에 넣으면 되는지 아니면 스타일시트 파일에 넣는건지요.
3. 앞서 같은 내용의 질문에 하신 답변 보니 style="background:url({$bgi})"|cond="$bgi" 이걸 넣으라고 되어 있던데
|cond="$bgi" 이것은 뭘 의미하나요? 꼭 넣어야 되는지 안 넣어도 되는지...
번거로우시겠지만 답변 좀 부탁드립니다. 절실해요ㅠㅠ
올려주시는 팁과 답변들은 항상 감사한 마음으로 참고하고 있습니다.
복 받으실꺼에요!!! ^^
댓글 4
-
송동우
2012.02.19 00:02
1.
레이아웃 상단에 넣으면 됩니다.
오류메세지는 문법오류네요. 적용을 잘 못해서 나오는 오류같아 보입니다.
2.
bg가 삽입될 곳에 넣으면 됩니다.
예)
<div class="head" style="background:url({$bg})">
여기서 붉은 색 부분이 적용된 샘플입니다.
3.
넣어야 합니다.
조건문인데 조건이 맞지 않으면 출력을 안해야 하는데
조건이 맞지 안맞음에도 출력을 한다면 원하는 대로 출력이 안 될 수 있습니다.
-
젠이
2012.02.19 02:07
다음의 소스로 레이아웃 상단의 어떤 곳에다 넣어도 오류가 납니다ㅠㅠ
(test1이라는 게시판 모듈과 test2라는 페이지 모듈로 시험 중입니다.)
물론 <td class="header" style="background:url({$bgi})" cond="$bgi">
이 문구도 넣어 주었어요. 이 난관을 어떻게 해결해야 할까요..ㅠㅠㅠㅠㅠ
<!--@if($mid=="kencode")-->{@$bg="이미지주소1"}<!--@elseif(($mid=="test2")-->{@$bg="이미지주소2"}<!--@else-->{@ $bg="이미지주소3"}<!--@end-->
젠이
2012.02.19 02:19
참고로 layout.html 소스의 전문을 올려드리면 이렇습니다.
문제의 소스를 어디다가 어떻게 집어넣어야 오류가 나지 않을까요? ㅠㅠㅠㅠㅠ
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=unicode"> <meta http-equiv="page-enter" content="blendtrans(duration=2)"> <meta http-equiv="page-exit" content="blendtrans(duration=2)"> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <load target="js/script.js" /> <load target="js/jquery.min.js" /> <load target="js/xe_official.js" /> <load target="css/style.css" />
<div id="center-aligned"> <table id="main-table" cellpadding="0" cellspacing="0"> <tr> <td class="header" style="background:url({$bgi})" cond="$bgi"> <div class="logo"> <a href="{$layout_info->index_url}" cond="$layout_info->logo_image"><img src="{$layout_info->logo_image}" alt="" title=""></a> <a href="{$layout_info->index_url}" cond="!$layout_info->logo_image">{$layout_info->logo_image_alt}</a> </div> <div id="notice"><!--// 공지글 //--> <img src="images/notice.png" usemap="#notice"> <map name="notice"> <area shape="rect" coords="10, 9, 94, 22" onfocus="this.blur()" href="#"> <area shape="rect" coords="107, 9, 140, 22" onfocus="this.blur()" href="#"> <area shape="rect" coords="153, 9, 187, 22" onfocus="this.blur()" href="#"> </map> </div> <ul class="gnb"> <!--<li class="m1 m_on">--> <li loop="$main_menu->list=>$key1,$val1" class="m1"> <a class="m1_a" href="{$val1['href']}" target="_blank"|cond="$val1['open_window']=='Y'"><span class="m1_span">{$val1['link']}</span></a> <div class="sub" cond="$val1['list']"> <ul class="lnb"> <li loop="$val1['list']=>$key2,$val2" class="s1"><a href="{$val2['href']}" target="_blank"|cond="$val2['open_window']=='Y'">{$val2['link']}</a></li> </ul> <div class="bottom"><span></span></div> </div> </li> </ul><!-- //gnb --> <div class="search_box_layout"><!-- // 검색창 시작 --> <form action="{getUrl()}" method="get"> <input type="hidden" name="vid" value="{$vid}"> <input type="hidden" name="mid" value="{$mid}"> <input type="hidden" name="act" value="IS"> <div class="inputBox"> <input type="text" name="is_keyword" class="inputTypeText" value="{$is_keyword}"> <input type="image" src="images/icon_search_soda.png" class="is_submit" value="{$lang->cmd_search}" onfocus="this.blur()"> </div> </form> </div><!-- // 검색창 END --> <div id="community"><!--// 커뮤니티 //--> <img src="images/community.png" usemap="#community"> <map name="community"> <area shape="rect" coords="10, 9, 73, 21" onfocus="this.blur()" href="#"> <area shape="rect" coords="81, 9, 123, 21" onfocus="this.blur()" href="#"> </map> </div> </td> </tr>
<tr> <td class="content"> {$content} </td> </tr>
<tr> <td id="footer"><!--// 풋터 //--> <img src="images/footer.jpg" usemap="#footer"> <map name="footer"> <area shape="rect" coords="51, 66, 149, 81" onfocus="this.blur()" href="#"> <area shape="rect" coords="230, 25, 270, 33" onfocus="this.blur()" href="#"> <area shape="rect" coords="290, 25, 355, 33" onfocus="this.blur()" href="#"> <area shape="rect" coords="374, 25, 440, 33" onfocus="this.blur()" href="#"> <area shape="rect" coords="460, 25, 493, 33" onfocus="this.blur()" href="#"> <area shape="rect" coords="512, 25, 544, 33" onfocus="this.blur()" href="#"> <area shape="rect" coords="230, 64, 302, 76" onfocus="this.blur()" href="#"> </map> </td> </tr> </table> </div> </body> </html>
송동우
2012.02.19 11:11
elseif 다음에 괄호가 두개 열렸네요
하나는 지우세요
젠이
2012.02.19 14:59
감사합니다! 그리고 style="background:url({$bgi})" cond="$bgi" 이 부분도 상단 소스와 같이 bgi를 bg로 바꾸니까 나오네요~ 정말 감사드립니다^^ 복 받으세요!!!!!
그러면
모듈명이 어떤 것이냐에 따라 이미지를 바꿔주면 되겠죠
예를 들어 페이지가
welcome_page, board, board2
이렇게 있다면 위의 세개는 각 페이지의 모듈명입니다.
<!--@ if($mid=="welcome_page")-->{@ $bg = "이미지1경로"}
<!--@ elseif(($mid=="board")-->{@ $bg = "이미지2경로"}
<!--@ else-->{@ $bg = "이미지3경로"}<!--@ end-->
이런식으로 상단에 설정을 해주고
헤더부분에
background:url({$bg})
이렇게 인라인으로 css 처리를 해주면 되겠죠.....
이렇게 달아 주신 걸 봤는데요.
<!--@ if($mid=="welcome_page")-->{@ $bg = "이미지1경로"}
<!--@ elseif(($mid=="board")-->{@ $bg = "이미지2경로"}
<!--@ else-->{@ $bg = "이미지3경로"}<!--@ end-->