글쓰기 확장변수 형식을 pc와 모바일 따로 줄수는 없을까요?
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.0 |
안녕하세요~~
또다시 이렇게 염치불구하고 질문을 올리네요 ^^
다름이 아니라 사이트 수정중
pc에서 글쓰기 할때 특정 확장변수 형식을 단일선택 (radio) 형식을 쓰고 있어요
다만 기본값이 좀 많다 보니 모바일에서 글쓰기로 보면 확장변수 기본값이 정렬이 안되더라구요..
그래서 모바일에서는 단일선택 (single select)로 따로 설정하고 싶은데
글쓰기폼에서
특정 확장 변수를 단일선택 (radio) > 단일선택 (single select)로 바꿀수 없을까요 ㅠㅜ?
댓글 11
형식에 라디오도 있고 셀렉트도 있는데요.
셀렉트가 안보이는 것인가요?
설정에서는 라디오/셀렉트 둘다 있어요
다만 기본 라디오로 설정했고
pc에서 글쓰기 할때는 문제가 안되지만
모바일에서 글쓰기 할때는 라디오 기본값이 너무 많다보니
정렬이 뒤틀려서 보기가 아쉽더라구요
그래서
모바일에서만 셀렉트로 나오게 할수 있는 방법이 없을까 해서 질문을 드렸어요
pc > 라디오
모바일 > 셀렉트
이처럼 따로 줄수 없나요?
모바일에서만 셀렉트로 설정하고 싶다는 것이군요.
게시판 스킨을 수정해야 할것 같네요.
코어 수정을 해야 할수도 있어보입니다.
코어 수정을 한다면
classes/extravar/Extravar.class.php
여기에서 모바일 유무에 따라서 if문으로 분기시켜주면 될것 같구요.
스킨 수정을 한다면
분기 자체는 동일하고
(모바일 스킨을 사용한다면 모바일 스킨에서 수정을 하면 되겠죠.)
확장변수를 출력하는 부분에 getFormHTML() 요런게 있을텐데
저 부분을 위에 코어의 소스코드를 참고해서 모바일에서 라디오인경우 셀렉트로 출력되게 코드를 만들어주면 되겠네요.
코어 수정을 하는 것이 if문을 제외하면 복붙이 가능하니 제일 간단해 보이는데 코어 수정은 안하는게 좋기는 하죠.
100% 스킨 수정만으로 구현 가능합니다.
코어에서 기본 제공하는 HTML 태그를 그대로 사용할 의무는 없으니까요.
각 확장변수의 정보를 참조하여 스킨에서 태그 작성하면 됩니다.
예: 회원가입 스킨에서 signature 항목은 기본 태그를 상큼하게 무시하고
스킨에서 에디터를 출력하도록 구현되어 있는 경우가 많지요.
xedition 기준으로 보면
https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/modules/board/skins/xedition/_read.html#L29-L32
이 부분을 다음과 같은 방식으로 해보세요.
직접 해본 것은 아니지만, 이런 식으로 접근하면 되지 않을까 싶습니다.
<!--@if(Mobile::isMobileCheckByAgent() && $val->eid === '해당 확장변수의 eid값')-->
<th scope="row">{$val->name}</th>
<td>
<select name="extra_vars{$val->idx}" class="select rx_ev_select">
{@ $default = array_map('trim', explode(',', $val->default));}
<!--@foreach($default as $v)-->
<option value="{$v}" selected|cond="$v===$val->value">{$v}</option>
<!--@endforeach-->
</select>
</td>
<!--@else-->
<th scope="row">{$val->name}</th>
<td>{$val->getValueHTML()} </td>
<!--@endif-->
</tr>