Q&A

게시판에서 글작성시 확장변수를 히든 적용시 기본값이 적용되게 할 수 있을까요

2024.10.16 08:41
123
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 7.4
문제 페이지 주소 비공개 (작성 후 5일 경과)

게시판 글 작성시 확장변수를 임의로 수정하여 글 작성시 관리자만 보이게 하고 일반 작성자는 볼수 없게 했었는데요.

https://moonhouse.co.kr/xetip/582252

 

이번에 2.1.18로 라이믹스가 업데이트 되면서 확장변수 기본값을 줄 수가 있어서 더 유용해 져서 단일선택에 적용해 보니

일반 작성자가 글 작성후 본문글에 히든된 단일선택 자체가 출력이 되지를 않네요(당연한 이야기 일 것 같네요)

그럼 히든도 적용하면서 일반 작성자가 글 작성시 본문글에도 출력되게 할려면 어떻게 해야 하나요

image.png

 

/modules/board/skins/xedition/write_form.html

    <div class="exForm" cond="count($extra_keys)">
        <table cond="count($extra_keys)" border="1" cellspacing="0" summary="Extra Form">
            <caption><em>*</em> : {$lang->is_required}</caption>
            <tr loop="$extra_keys=>$key,$val">
                {@$match = preg_match('/_admin$/is', $val->eid)}
                <!--@if($match != 1 || $grant->is_admin)-->
                    <th scope="row"><em cond="$val->is_required=='Y'">*</em> {$val->name}</th>
                    <td>{$val->getFormHTML()}</td>
                <!--@end-->
            </tr>
        </table>
    </div>     

참고로 노란색이 수정코드 부분이며 확장변수 ID가 _admin으로 끝나면

글 작성시 일반 작성자는 해당 확장변수 히든 시키는 코드입니다.

 

팔공산 Lv. 4

댓글 4

  • 2024.10.16 12:30 #1841395

    <!--@else-->가 필요할 것 같습니다.

    관리자가 아니라면 <input type="hidden">으로 기본값을 폼에 넣어 제출되도록 해야겠지요.

    글 수정할 때 초기화되지 않도록 하는 장치도 필요하겠고요.

     

    그나저나 관리자 전용 필드 기능 쓸만할 것 같은데, 코어에 넣어볼까요? ㅎㅎ

  • 2024.10.16 12:55 #1841409

    답글 적고 오니 곰님께서 답글을 남겨 주셨네요, 감사

    근데 AI에게 질문을 남기니 <!--@else--> 다음에 아래의 답을 주었는데
    <input type="hidden" name="{$val->name}" value="{$val->getValueForHidden()}" />

    {$val->getValueForHidden()} 이 부분을 수정해야 될 것 같은데 어떻게 바꾸어 주어야 할지 모르겠네요

    그리고 코어에 넣어 주시면 탱큐입니다.

  • 2024.10.16 13:07 #1841416
    {$val->getValueHTML()} 을 사용하면 될 것 같습니다.
    아래에 올리신 소스처럼 그냥 display:none으로 숨기는 방법도 있고요.
  • 2024.10.16 12:48 #1841400
    이렇게 해 보니 작동은 합니다.
    {@$match = preg_match('/_admin$/is', $val->eid)}
    <!--@if($match != 1 || $grant->is_admin)-->
    <th scope="row"><em cond="$val->is_required=='Y'">*</em> {$val->name}</th>
    <td>{$val->getFormHTML()}</td>
    <!--@else-->
    <th scope="row" style="display:none"><em cond="$val->is_required=='Y'">*</em> {$val->name}</th>
    <td style="display:none">{$val->getFormHTML()}</td>
    <!--@end-->
    다른 좋은 방법도 있을 듯한데...