select 형식의 확장변수에 value가 없는 option 태그 끼워넣기를 제안
getFormHTML()를 통해 확장변수를 입력할 때 단일 선택(select) 형식은 빈 값으로 통과할 수 없는 문제가 있습니다. select 메뉴의 option 태그가 해당 확장변수의 기본값(default)로만 이뤄졌기 때문인데요. 빈 값을 가진 option 태그를 select 메뉴의 머리 부분으로 끼워넣는 게 어떨까 싶어서요.
$selected = '';
if(is_array($value) && in_array('', $value))
{
$selected = ' selected="selected"';
}
$buff[] = ' <option value="' . $v . '" ' . $selected . '>' . $name . '</option>';
위의 코드를 아래의 foreach 구문 앞에 삽입했더니 무리없이 동작하는 것을 확인했습니다.
<참고> https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/classes/extravar/Extravar.class.php#L526-L538
필수 확장변수인 경우와 그렇지 않은 경우를 구분하여 처리하는 것이 좋을까요?
필수 확장변수라도 동일하게 처리해도 상관없을 것 같습니다. 디스플레이상으로도 select 메뉴의 초기값이 default 첫 번째 값보다는 '입력항목 이름'(name)으로 고정되는 것(value는 빈 값)이 보기에도 더 좋아보이는 것 같아요.
확장변수 기본값 입력칸 맨 앞에 ,를 넣어 등록하면 첫번째 값이 빈 값으로 표시됩니다. 예) ,A,B,C,D
또 필수 선택인 경우에도 자주 사용하는 값이 먼저 선택되어 있는 것이 편할때도 있습니다. 상황마다 다른 점을 고려하여 선택권을 주시면 좋을 것 같습니다.
@dewekk 저도 기본값에 빈 값을 넣어서 그렇게 활용해본 적이 있기는 한데요. 다른 서드파티에서 해당하는 확장변수와 기본값을 불러올 때는 또 귀찮은 문제가 문제가 발생하기도 하더라구요. 필수가 아닐 때 빈 값을 앞에 넣어주고, 필수일 때는 빈 값을 넣지 않는 것도 좋긴 하겠네요.