스케치북 스킨 기준으로 이렇게 돌리잖아요?

<tr loop="$oDocument->getExtraVars() => $key,$val" cond="$val->getValueHTML() && $val->eid!='rd_preview'">

이런 식으로 몇몇 게시판 스킨들에서도 $val->getValueHTML()을 기준으로 출력 조건을 주는 것으로 알고 있습니다.

 

그런데 이렇게 내버려뒀더니 전화번호란이 공란일 경우 출력을 스킵하는 것이 아니라 '--'이라고 출력이 되더군요.

 

getValueHTML() 함수가

case 'tel' :
return sprintf('%s-%s-%s', $value[0], $value[1], $value[2]);

이런 식으로 돼서 빈값이 아닌 걸로 인식하는 거죠.

 

반면, 변수값을 확인해보니 $val->value에서는 멀쩡히 빈값을 토해내더군요.

그래서 조건절의 $val->getValueHTML()을 $val->value로 바꾸고 전화번호 변수값이 빈 경우 출력을 회피할 수 있었습니다.

 

그리고 느낌상이겠지만 별도로 함수를 구하는 일도 없어져서인지 확장변수값 출력부의 로딩 속도도 더 빨라진 것 같아요.

글쓴이 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile

    이게 몬가요? 좀 쉽게 풀어서 코드를 어디 수정해야하는지 알려주심 감사하겠습니다 ㅠㅠ
    전화번호 빈칸으로 놔두면...
    글내용에 -- 게 나오긴 하더라구요 ㅎㅎ
    보기 싫어서 없애고 싶었는데...

     

    기존에 아래처럼         {@ // 본문 사용자 정의 테이블 } 부분을 

    어떻게 수정해야 전화번호 형식 확장변수도 값이 없을때 안나오게 할 수 있을까요?

    참고로 보드는 에덴보드입니다.

     

    {@ // 본문 사용자 정의 테이블 }
    <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>
    <td>{$val->getValueHTML()} </td>
    </tr>
    </table>
    </div>

     

     

  • profile profile
    네 번째 줄 $val->getValueHTML() 을 $val->value로 바꾸시면 될 겁니다.
  • profile profile
    와우~ 연락처 형식, 한줄입력칸형식, url 형식 세가지 테스트 해보니...
    잘됩니다. 매우 감사합니다 : )
    또 하나 배우고 갑니다~~~
  • profile

    확장변수 연락처 빈칸일때 -- 이렇게 나오는거 정말 보기싫었는데... 윤삼님 덕분에 금방 해결하였습니다. 사용자정의 확장변수 사용하는 모든분들의 필수팁이네요... ^^

  • profile profile

    소소한 팁이죠 뭐ㅎ
    그나저나 확장변수가 빨리 출력되는 것 같은 건 기분 탓이겠죠? ㅋㅋ