Extra Form
PHP PHP 7.0
CMS XpressEngine1

안녕하세요~~

 

또다시 이렇게 염치불구하고 질문을 올리네요 ^^

 

다름이 아니라 사이트 수정중

pc에서 글쓰기 할때 특정 확장변수 형식을 단일선택 (radio) 형식을 쓰고 있어요

다만 기본값이 좀 많다 보니 모바일에서 글쓰기로 보면 확장변수 기본값이 정렬이 안되더라구요.. 

 

그래서 모바일에서는 단일선택 (single select)로 따로 설정하고 싶은데

글쓰기폼에서 

특정 확장 변수를  단일선택 (radio) > 단일선택 (single select)로 바꿀수 없을까요 ㅠㅜ?

  • profile
    xe 게시판의 확장변수인거죠?
    형식에 라디오도 있고 셀렉트도 있는데요.
    셀렉트가 안보이는 것인가요?
  • profile profile
    네 xe 게시판 확장변수예요 제가 질문이 좀 아리송했나보네요 ㅠㅠ 죄송합니다.

    설정에서는 라디오/셀렉트 둘다 있어요
    다만 기본 라디오로 설정했고
    pc에서 글쓰기 할때는 문제가 안되지만
    모바일에서 글쓰기 할때는 라디오 기본값이 너무 많다보니
    정렬이 뒤틀려서 보기가 아쉽더라구요
    그래서
    모바일에서만 셀렉트로 나오게 할수 있는 방법이 없을까 해서 질문을 드렸어요

    pc > 라디오
    모바일 > 셀렉트
    이처럼 따로 줄수 없나요?
  • profile
    아 질문을 잘못이해했네요.
    모바일에서만 셀렉트로 설정하고 싶다는 것이군요.
    게시판 스킨을 수정해야 할것 같네요.
  • profile profile
    네 모바일 게시판 글쓰기에서 확장변수를 따로 수정할수 없을까 하는 생각에서 질문들을 드렸어요 ㅠ
  • profile
    스킨만으로는 애매할수도 있겠네요.
    코어 수정을 해야 할수도 있어보입니다.
    코어 수정을 한다면
    classes/extravar/Extravar.class.php
    여기에서 모바일 유무에 따라서 if문으로 분기시켜주면 될것 같구요.

    스킨 수정을 한다면
    분기 자체는 동일하고
    (모바일 스킨을 사용한다면 모바일 스킨에서 수정을 하면 되겠죠.)
    확장변수를 출력하는 부분에 getFormHTML() 요런게 있을텐데
    저 부분을 위에 코어의 소스코드를 참고해서 모바일에서 라디오인경우 셀렉트로 출력되게 코드를 만들어주면 되겠네요.
  • profile profile
    네 감사합니다. 일단 참고해서 찾아보도록 해봐야겠네용 ^^
  • profile
    아니면 스킨에서(또는 애드온등을 만들어서) 자바스크립트로 html코드를 바꾸게 만들수도 있겠지만 어떤 것이든 한두줄로 해결되지는 않겠네요.

    코어 수정을 하는 것이 if문을 제외하면 복붙이 가능하니 제일 간단해 보이는데 코어 수정은 안하는게 좋기는 하죠.
  • profile profile

    100% 스킨 수정만으로 구현 가능합니다.
    코어에서 기본 제공하는 HTML 태그를 그대로 사용할 의무는 없으니까요.

    각 확장변수의 정보를 참조하여 스킨에서 태그 작성하면 됩니다.

    예: 회원가입 스킨에서 signature 항목은 기본 태그를 상큼하게 무시하고
    스킨에서 에디터를 출력하도록 구현되어 있는 경우가 많지요.

  • profile profile
    오오 감사합니다
  • profile

    xedition 기준으로 보면

    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/modules/board/skins/xedition/_read.html#L29-L32

    이 부분을 다음과 같은 방식으로 해보세요.

    직접 해본 것은 아니지만, 이런 식으로 접근하면 되지 않을까 싶습니다.

     

    <tr loop="$oDocument->getExtraVars() => $key,$val">
    <!--@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>

     

  • profile profile
    앗!!! 감사합니다~~~ 바로 수정해봐야겠네요~ 정말 너무 감사드립니다~~