특정확장변수에 값을 넣는 코드 형식에 대해 도움 부탁드립니다.

 

게시판 글읽기화면 확장변수가 출력되는 부분입니다.

 

특정날짜를 입력하는 확장변수명 ( enddate 날짜 )가 있고  오늘 날짜와 비교해서 확장변수명 ( memo 한줄입력 )에 특정값을 넣으려고 합니다. 

 

예를 들면 확장변수 ( enddate ) 값이 오늘일때 확장변수명 ( memo 한줄입력 )에 '오늘'이라는 값을 넣고 싶습니다.

 

아래소스에서 시도를 하고 있는데 특정확장변수에 특정 단어 값을 넣는 코드는 어떤 형식으로 짜야 하는지 도움 부탁드립니다.

 

{@ $now = date("Ymd");}
{@ $date = $oDocument ->getExtraEidValue('enddate')}


{@ // 본문 사용자 정의 테이블 }
        <div class="ed margin-bottom-default" cond="$oDocument->isExtraVarsExists() && (!$oDocument->isSecret() || $oDocument->isGranted())">
            <table border="1" cellspacing="0" summary="Extra Form Output" class="ed extra-value">
       <tr loop="$oDocument->getExtraVars() => $key,$val" cond="$val->getValueHTML()">

                    <th scope="row">{$val->name}</th>

 

<!--@if($val->eid == 'memo')-->          
                  <td cond="$now == $enddate">{$val->getValueHTML()} 확장변수 memo에 '오늘'이라는 값을 넣고 싶습니다.</span></td> 
<!--@else-->
                    <td>{$val->getValueHTML()}&nbsp;</td>
<!--@end-->
                </tr>
            </table>
        </div>

  • profile
    <!--@if($val->eid =='memo')-->
    {@ $now = date("Ymd");}
    {@ $date = $oDocument ->getExtraEidValue('enddate')}
    <td cond="$now == $enddate">오늘</td>
    <!--@else-->
    <td>{$val->getValueHTML()}</td>
    <!--@end-->
    이렇게 해보실래요?
  • profile ?

    답변감사합니다.

    제가 질문글을 조금 헷갈리게 올린것 같습니다. ^^;

     

    확장변수 memo ( 한줄 입력 칸 )는  공백 상태이구요. 특정 조건에 따라 특정 값을 넣고 싶습니다.


    말씀 주신대로 하면 글읽기 화면 확장변수 memo 표시부분에서 오늘로 표시는 되지만 실제 memo 확장변수값에는 '오늘' 이라는 값은 들어가질 않는데요.

    저는 확장변수 memo에 오늘이라는 값이 들어가게끔 하려고 하는데 특정 확장변수에 특정값을 집어 넣고자 할때 어떤 형식으로 코드를 짜야 하는지 예제들을 찾아보고 있긴 한데 해결이 되질 않네요.

  • ? profile
    지금 올려주신 코드는 입력된 확장변수를 출력하는 코드입니다.
    자동으로 입력하려면 변수값에 할당해서 post 등으로 전송할 수 있어야 하며 자동으로 전송하는 것? 도 까다로울 듯 합니다. 물론 까다롭다는거지 안된다는 것은 아니구요.

    저는 개인적으로 특정 확장변수에 특정값을 관리자가 편하게 입력하기 위해 스킨에 post 전송하는 코드를 작성한 적이 있습니다. add,update,delete 를 구분해서 해야 하구요.
  • profile ?

    네 확장변수를 출력하는 부분입니다.
    확장변수 memo ( 한줄 입력 칸 )는 최초 공백 상태이구요. 특정 조건 비교에 따라 특정 값( 어제 or 오늘 or 내일...)을 넣고 싶어서 시도를 하고 있습니다.

     

    확장번수에 특정값을 넣는 코드를 어디서 본것 같아서 간단하게 생각했는데 간단한 부분이 아닌것 같습니다. ^^;

  • ? profile

    네. 사용자정의에 값을 입력하려면 기본적으로 세팅해야 할 것이 많습니다.
    그리고 그것을 자동화 한다는 것도 까다로워 보입니다. 보통은 input 값을 받아 클릭으로 전송하는 과정을 거치는데 지금 그것을 원하는 것도 아니고 특정한 시점에 페이지가 읽히면서 변수값을 전송해야 합니다.

    사용자정의를 입력할때 요구되는 필수값들이 있습니다. eid,언어 등....
    이런것들을 모두 마련한 후 post 전송해야 합니다.

    과연 이렇게 꼭 해야할 필요성이 절실한건지 검토해 보시고 진행해보세요.

     

     

    post 전송이 아닌 특정 값을 그냥 밀어 넣는 방식이라면 아래 코드를 구현하시는데 참조해 보세요.

     

        $args->value = '종료';
        $args->lang_code = Context::get('lang_type');
        $args->eid = 'state';
        $args->module_srl = $oDocument->get('module_srl');
        $args->document_srl = $oDocument->document_srl;
        $args->var_idx = 2;
        executeQuery('document.updateDocumentExtraVar', $args);

     

     

    제가 특정 조건에서 사용자정의값을 '종료' 로 전환 시키기 위해서 작성했던 코드 입니다.

     

     

    조건에 맞는 조건문을 작성하시고 조건에 해당되면 위 코드가 작동되도록 구성하시면 됩니다.

    위에 굵게 표시해드린 부분만 상황에 맞게 변경하시면 될 것 같구요.

     

    단, 조건을 잘 거셔야 하는게 목적을 달성한 이후에는 계속 사용자정의를 넣지 않도록 배려를 하는 게 들어가야 할 것 같습니다.

     

    아참, 사용자정의값이 없는 상태로 출발하는 사용자정의 라면 처음 넣을 때는 inset로 구성하셔야 할 겁니다. 그것도 구분해서 동작시켜야 겠네요.         executeQuery('document.insertDocumentExtraVar', $args);

  • profile ?
    답변 감사합니다. 한번 시도 해보겠습니다.
  • ? profile

    고려하실 내용이 insert,update 동작 시점을 구분하셔야 하고 특정 시점 이후에는 해당 코드가 동작하지 않도록 해야 한다는 점입니다.

  • ?
    jQuery ( 또는 script ) 로 짜셔야겠네요
    특정 사용자정의에 값 변화가 있을때 ( .change 나 onchange ) 그 값을 이용해 원하는 걸 추출해서
    특정한 다른 사용자정의에 값이 들어가게 구성을 하셔야해요
    jQuery 나 sciprt 를 조금 아셔야할거예요 ( 사용자정의 구조랑 )
  • ? ?
    답변감사합니다.