| 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>
그런데 특별히 출력되는 부분이 없는것 같습니다....
코어쪽을 수정 해야는건지... 더는 잘 모르겠네요.
조언 부탁 드립니다.
감사합니다.
댓글 1
레이아웃의 헤더 스크립트는 각 레이아웃에서 선언하거나 적용하는 것이 아니고, 코어에서 일괄 출력합니다. 레이아웃 내에서는 헤더 스크립트의 출력 여부나 위치를 컨트롤할 수 없습니다.
물론 헤더 스크립트 설정을 비우고, 거기에 있던 내용을 레이아웃 소스에 직접 입력한다면 일반적인 템플릿 문법을 사용하여 얼마든지 컨트롤할 수 있게 됩니다.
스킨에서 직관적으로 처리하는 게시판의 헤더 스크립트와 달리, 레이아웃의 헤더 스크립트는 XE 초창기부터 레이아웃 설정(extra_vars)과는 별도로 엉뚱한 곳에 저장되는 구조입니다. 하위호환성 때문에 다른 구조로 바꾸기도 쉽지 않죠. 그냥 그런 기능 따위 없는 셈 치고 레이아웃에 하드코딩하는 것이 속편할 거예요. 꼭 사용자가 편집할 수 있어야 하는 코드라면 레이아웃 설정(info.xml)에 입력란을 하나 만들고, 그 설정을 불러다가 쓰는 방법도 있겠고요.