Extra Form
PHP PHP 5.6
CMS XpressEngine
<div class="article-extra-value rs" cond="$oDocument->isExtraVarsExists()">
.
.
.
</div>

 

위와 같은 형식일때

확장변수가 본문 내에 없을경우 class="article-extra-value rs" 가 적용되지못하게 하고싶습니다.

현재 해당클래스에 margin값이 적용되어있는데 확장변수가 없는경우에도 해당 클래스가 적용되는 상황입니다.

 

어떻게 하면 될까요?

  • ? Lv8
    isExtraVarsExists 는 실제 사용자정의값이 있는지 여부가 아니라
    해당 게시판에서 사용자정의 설정한게 있는지 여부를 알려주는거기에
    값이 없어도 당연히 있다고 나옵니다

    해당 글의 전체 사용자정의를 for 문으로 돌려서
    하나라도 값이 있는지 여부를 변수로 저장해 그 변수를 이용하셔야할거예요
  • ? Lv8 Lv3
    변수값이 있을때와 없을때를 지정하는 소스는 없는거군요ㅠ
    답변 감사합니다 :)
  • Lv3 Lv30

    실제 테스트는 안해봤습니다. 잘 안되면 다른 개발자분께서 다듬어 주세요.

    read.html 또는 _read.html 파일에


    <block loop="$oDocument->getExtraVars() => $key,$val">
    {@
    if($val->value):$ExtraVars_ok = true;
    break;
    endif;
    }
    </block>


    <!--@if($ExtraVars_ok)-->
    <style>
    마진값 부여된 요소{margin:0 !important;}
    </stye>
    <!--@end-->

  • Lv30 Lv3
    기존에 margin값을 지우고
    알려주신 소스에서

    <!--@if($ExtraVars_ok)-->
    <style>
    마진값 부여된 요소{margin:0 !important;}
    </stye>
    <!--@end-->

    부분에 margin값을 적용하니까 정상적으로 반영됩니다.
    감사합니다!
  • Lv3 Lv30
    아.. 반대로 알려드렸군요. 그렇게 하셔도 되고 기존 CSS에 마진값 그대로 두면서 할꺼면..


    <!--@if(!$ExtraVars_ok)-->
    <style>
    마진값 부여된 요소{margin:0 !important;}
    </stye>
    <!--@end-->

    이렇게 하시면 됩니다.

    제가 상황을 반대로 알려드렸네요.
  • Lv3 ? Lv7
    cond="$val->getValueHTML()"
    변수값입니다.
  • Lv30

    그리고 다른 방법이 있다면 사용자정의쪽 엘리먼트의 마진을 없애고 다른 요소쪽으로 마진을 옮기는 것도 하나의 방법일 겁니다.

    저도 예전에 같은 고민을 이렇게 조치 했던 기억이 납니다.

  • Lv30 Lv3
    답변감사합니다. 좀 더 고민해봐야겠어요~!