| CMS/프레임워크 | XE 1.x |
|---|---|
| 개발 언어 | PHP 7.4 |
안녕하십니까.
좋은아빠되기입니다.
밤 늦은 시간에 염치 불구하고 질문을 남겨 봅니다.
가능한 혼자 해결해 보려고 2주정도 도전을 해봤는데. 도저히 모르겠네요. ㅎㅎㅎ
AI들도 엉터리 이야기만 자꾸 하고
아무튼...

위 빨간 테두리의 헤더 스크립트 부분을
관리자만 보이지 않게 하거나, 특정 IP에서만 보이지 않게 설정하려고 하는데요.
제가 사용중인 레이아웃파일에서만 수정하면 될줄 알았는데..
그게 아니더라구요...(제 생각입니다...)
해당 부분은
제가 사용중인 엘카-그레이스타일 관련 파일을 아무리 뒤져도 안나옵니다.
설정 관련이니
/conf/info.html 쪽에 있을 꺼라 생각을 했는데...
그쪽하고는 관계가 없는것 같습니다.

위 이미지 처럼 레이아웃 자체적으로 변수로 관리를 안하는듯 합니다.
(이러면 코어쪽이라는 이야기인데....)
그런데 신기하게도..
일단 알아 낸것은
layouts 테이블에 저장된다는 것과
(레이아웃 종류별로 각각 저장되더라구요.)
해당 레이아웃(엘카-그레이스타일)에 extra_vars에 직렬형으로 저장이 된다는 건데...
_header.html 파일 내부를 살펴봐도...
extra_vars 관련으로 출력하는 부분이 없는것 같습니다.
그리고 layout.html 파일 내부에서는

_header.html 파일 자체를 include 하는 형태더라구요.
그래서 _header.html 파일을 살펴 봤는데
내용은 아래와 같습니다.
<div class="layer layer2">
<h1 class="h1 mpReset">
<a href="{$layout_info->url}">
<!--@if($layout_info->logo)--><img src="{$layout_info->logo}" class="iePngFix" alt="{$layout_info->name}" />
<!--@else-->
<!--@if($layout_info->colorset=="green")-->
<img src="img/colorset/logo_green.gif" alt="{$layout_info->name}" />
<!--@elseif($layout_info->colorset=="red")-->
<img src="img/colorset/logo_red.gif" alt="{$layout_info->name}" />
<!--@elseif($layout_info->colorset=="orange")-->
<img src="img/colorset/logo_orange.gif" alt="{$layout_info->name}" />
<!--@elseif($layout_info->colorset=="pink")-->
<img src="img/colorset/logo_pink.gif" alt="{$layout_info->name}" />
<!--@else-->
<img src="img/logo_blue.gif" alt="{$layout_info->name}" />
<!--@end-->
<!--@end-->
</a>
</h1>
<hr class="hr_hide" />
<!--@if($layout_info->description)--><p class="description">{$layout_info->description}</p><!--@end-->
<div class="logged_info">
<!--@if(!$is_logged)-->
<span class="li li0" cond="$layout_info->login_form!='Y'"><a class="a" href="{getUrl('act','dispMemberLoginForm')}">{$lang->cmd_login}</a></span>
<div class="li" cond="$layout_info->login_form=='Y'">
<form method="post" action="/" class="mpReset" onsubmit="return GS_LOGIN_AJAX(this);">
<input type="hidden" name="module" value="member" />
<input type="hidden" name="act" value="procMemberLogin" />
<input type="text" name="user_id" value="" placeholder="{$lang->user_id}" />
<input type="password" name="password" value="" placeholder="{$lang->password}" />
<button id="gs-login-submit" type="submit"></button>
</form>
</div>
<span class="li" cond="$layout_info->login_form=='Y'"><a class="submit a" href="javascript:;" for="gs-login-submit" onclick="jQuery('#gs-login-submit').parent().submit();return false;">{$lang->cmd_login}</a></span>
<span class="li"><a class="a" href="{getUrl('act','dispMemberSignUpForm')}" rel="nofollow">{$lang->cmd_signup}</a></span>
<span class="li"><a class="a" href="{getUrl('act','dispMemberFindAccount')}" rel="nofollow">{$lang->cmd_find_member_account}</a></span>
<!--// <span class="li"><a href="{getUrl('act','dispMemberResendAuthMail')}">{$lang->cmd_resend_auth_mail}</a></span> -->
<!--@else-->
<!--//
<span class="li li0"><a href="#" class="member_{$logged_info->member_srl}" onclick="return false;">{$logged_info->nick_name}</a></span>
-->
<span class="li"><a href="{getUrl('act','dispMemberLogout')}">{$lang->cmd_logout}</a></span>
<span class="li"><a href="{getUrl('act','dispMemberInfo')}">{$lang->cmd_view_member_info}</a></span>
<!--@if($logged_info->is_admin=="Y")--><span class="li">
<a href="{getUrl('','module','admin','act','dispLayoutAdminModify','layout_srl',$layout_info->layout_srl)}">{$lang->cmd_management}</a>
<a href="{getUrl('','module','admin','act','dispLayoutAdminModify','layout_srl',$layout_info->layout_srl)}" onclick="window.open(this.href);return false;" title="New window">(새창)</a>
</span><!--@end-->
<!--@end-->
</div>
<div class="right-top" cond="$layout_info->right_top">
{$layout_info->right_top}
</div>
<hr class="hr_hide" />
<div cond="count($lang_supported)>1 && !$layout_info->right_top" class="language mpReset">
<label class="label" for="language">Select Language</label>
<div class="ul">
<span class="li on"><button type="button" id="language">{$lang_supported[$lang_type]}</button></span>
<!--@foreach($lang_supported as $key => $val)--><!--@if($key!= $lang_type)-->
<span class="li off"><button type="button" onclick="doChangeLangType('{$key}');return false;">{$val}</button></span>
<!--@end--><!--@end-->
</div>
</div>
<hr class="hr_hide" />
<!--@if($layout_info->search_hide!='Y' && $layout_info->search_html)-->
<div class="search mpReset">
<form class="form" action="{getUrl()}" method="get" class="iePngFix">
<input type="hidden" name="vid" value="{$vid}" />
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="act" value="IS" />
<input type="text" name="is_keyword" class="iText" value="{$is_keyword}" accesskey="S" />
<span class="submit"><input type="submit" title="{$lang->cmd_search}" value="{$lang->cmd_search}" /></span>
</form>
</div>
<hr class="hr_hide" />
<!--@end-->
</div>
<div class="search_html" cond="$layout_info->search_html">{$layout_info->search_html}</div>
그런데 특별히 출력되는 부분이 없는것 같습니다....
코어쪽을 수정 해야는건지... 더는 잘 모르겠네요.
조언 부탁 드립니다.
감사합니다.
댓글 4
레이아웃의 헤더 스크립트는 각 레이아웃에서 선언하거나 적용하는 것이 아니고, 코어에서 일괄 출력합니다. 레이아웃 내에서는 헤더 스크립트의 출력 여부나 위치를 컨트롤할 수 없습니다.
물론 헤더 스크립트 설정을 비우고, 거기에 있던 내용을 레이아웃 소스에 직접 입력한다면 일반적인 템플릿 문법을 사용하여 얼마든지 컨트롤할 수 있게 됩니다.
스킨에서 직관적으로 처리하는 게시판의 헤더 스크립트와 달리, 레이아웃의 헤더 스크립트는 XE 초창기부터 레이아웃 설정(extra_vars)과는 별도로 엉뚱한 곳에 저장되는 구조입니다. 하위호환성 때문에 다른 구조로 바꾸기도 쉽지 않죠. 그냥 그런 기능 따위 없는 셈 치고 레이아웃에 하드코딩하는 것이 속편할 거예요. 꼭 사용자가 편집할 수 있어야 하는 코드라면 레이아웃 설정(info.xml)에 입력란을 하나 만들고, 그 설정을 불러다가 쓰는 방법도 있겠고요.
답변 갑사합니다.
역시나 그런 식으로 작동하고 있는거였군요.
어쨌든 확인을 했고 방법을 찾아 봐야 겠습니다.
감사합니다.
레이아웃에서 코드 넣으시면 됩니다.
cond를 쓰시던, if를 쓰시던 조건문을 넣으시면 됩니다.
의견 감사합니다.