단순 조건문 입문

본고는 ExpressionEngine 조건문을 부드럽게 소개하여 독자들이 실제 예시를 어떻게 사용하는지 이해하도록 하고자 한다.

무엇이'조건이 있는'입니까?
한 정보를 다른 정보와 비교하거나 평가하고 결과에 따라 응답을 표시할 수 있습니다.

Conditionals generally work on the result being true or false - in essence, you’re asking a question to get an answer.



당신은 무엇을 비교/평가할 수 있습니까?
ExpressionEngine에서 사용할 수 있는 모든 변수나 값(글로벌 변수, 채널 입력 필드, 구성원 필드, 사용자 정의 값 등)을 비교할 수 있습니다.
다음은 별도로 평가하거나 비교 평가할 수 있는 상세하지 않은 목록입니다.
  • 번호
  • 날짜
  • URL 세그먼트
  • 입력 필드, 제목, 사용자 지정 필드
  • 파일, 파일 이름, 확장자
  • 상태
  • 트리거 글자(예: 예/아니오, 켜기/끄기)
  • 로그인 상태, 이름, 이메일 등
  • 멤버 그룹, 이름, ID 등
  • 당신의 값, 하드 인코딩 또는 프로그래밍 생성

  • 조건문 사용 시기
    거의 무한한 용도가 있지만 흔히 볼 수 있는 용도는 다음과 같다.
  • 방문객의 로그인 여부를 검사
  • 다른 내용의 값을 바탕으로 대체 내용을 표시한다
  • URL 섹션에 따라 다르게 표시
  • 어떤 물건의 값에 따라 HTML 또는 다른 코드를 변경
  • 시작 및 끝 HTML 태그 추가(예: <div></div>
  • 어떤 물건이 존재하는지 검사
  • 어떤 물건의 가치를 검사

  • 조건 태그 구문
    조건 라벨은 항상 {if}{/if} 라벨로 포장됩니다. 일반적인 HTML 라벨과 같습니다.평가할 값을 추가하고 결과에 따라 답을 제공할 수 있습니다.
    다음은 논리를 평가하는 작업 원리를 보여주는 아주 간단한 예입니다.
    {if sky}Yes the sky exists!{/if}
    {if sky is blue}It's day time{/if}
    {if sky is black}It's night time{/if}
    {if sky is NOT blue}It's night time{/if}
    {if sky is NOT black}It's day time{/if}
    
    
    우리가 어떻게 하늘과 그 색깔을 비교해서 모든 변화에 답을 제공하는지 봅시다."예"및 "아니오"와 같은 대답을 제공할 수 있는 여러 가지 방법이 있습니다.실제 답안은 네가 원하는 어떤 것일 수도 있고, 심지어는 전혀 답이 없을 수도 있다.

    우리 기본적인 예부터 시작합시다
    {if logged_in}
      Hello customer
    {/if}
    
    
    이렇게 하는 목적은 방문자가 당신의 사이트에 로그인했는지 확인하는 것입니다.
  • 로그인하면 "Hello customer"(안녕하세요 고객) 메시지가 표시됩니다
  • 로그인하지 않으면 아무것도 보이지 않습니다
  • 조금만 더 늘려달라고...
    {if logged_in}
      Hello customer
    {if:else}
      Please login
    {/if}
    
    
    우리가 지금 하고 있는 것은 두 가지 가능한 값을 얻는 것이다.
  • 로그인하면 "Hello customer"(안녕하세요 고객) 메시지가 표시됩니다
  • 로그인하지 않으면 로그인 요청 메시지가 표시됩니다
  • .

    So “if” the first value is true do that, “else” do the other.



    항목 내용 평가
    항목은 제목, 항목 날짜, 상태 등 여러 개의 사용자 정의와 핵심 필드로 구성되어 있습니다.너는 한 조건에서 그 중 어느 하나를 평가할 수 있다. 그 중 일부는 다른 것보다 약간 복잡하지만 논리는 같다.div 요소에 포함된 블로그 발췌 필드가 있다고 가정하십시오.템플릿 코드는 다음과 같습니다.
    <div class="row">
      {blog_excerpt}
    </div>
    
    
    이곳의 유일한 문제;발췌 필드가 비어 있으면 페이지에 비어 있는 요소div가 있습니다.너는 원하지 않을 거야!
    이 문제를 해결하기 위해 발췌문이 존재하는 경우 사용 조건은 다음과 같습니다div:
    {if blog_excerpt}
    <div class="row">
      {blog_excerpt}
    </div>
    {/if}
    
    

    So “if” the excerpt exists, then show it, otherwise do nothing. In other words, the div elements will only show if the excerpt exists.


    예비(fallback) 정보를 제공하여 이를 확장합니다.
    {if blog_excerpt}
      <div class="row">
        {blog_excerpt}
      </div>
    {if:else}
      The author hasn't written an excerpt
    {/if}
    
    

    So “if” the excerpt exists, show it, “else” show the message.



    비교 날짜
    ExpressionEngine의 날짜 변수를 사용하면 원하는 날짜를 표시하는 형식을 설정할 수 있습니다.
    이 예에서, 나는 %D 포맷값으로 인용된 월요일, 월요일, 화요일, 수요일 등 세 자모의 코드를 사용했다.current_time 탭 출력, 현재 시간, 지금과 같다는 것을 알 수 있습니다.
    이 예에서는 일요일인 특정 날에 메시지를 표시하는 것이 좋습니다.
    {if "{current_time format='%D'}" == "Sun"}
     Sorry we're closed today
    {/if}
    
    
    이렇게 하는 목적은 일주일 동안의 현재 날짜{current_time format="%D"}와 태양(day)의 목표 일치를 비교하는 것이다.만약 답이 정확하다면 (오늘이 일요일이라면) 메시지를 표시하고, 그렇지 않으면 아무것도 하지 않습니다.== 값은 "같음"의 약어입니다.
    여기에 우리는 반드시 더블 인덱스로 current_time 표기를 묶어야 한다. 왜냐하면 이것은 다른 표기 중의 표기이기 때문이다.

    URL 세그먼트에 대한 테스트

    URL의 일부분에 따라 조건부로 어떤 일을 하다
    만약 당신이 유사한 URLhttps://example.com/blog/post/my-blog-post을 가지고 있다면'블로그'는 단락 1,'post'는 단락 2,'my 블로그 post'는 단락 3URL Segments에 대한 더 많은 정보는 문서를 참조하십시오.
    여기에는 몇 가지 예가 있다.
    {if segment_1 == "blog"}This is the blog.{/if}
    
    
    {if segment_2 == "post"}You're reading a blog post.{/if}
    
    
    {if segment_1 == "about-us"}Why not read our blog?{/if}
    
    
    {if segment_1 == ""}This must the home page.{/if}
    
    

    조건문을 사용하여 확인 메시지 표시
    연락처 양식 페이지https://example.com/contact, 성공 페이지https://example.com/contact/thanks - 세그먼트 2에서 하나의 조건(감사)을 실행하여 동일한 템플릿에 성공 메시지를 표시할 수 있습니다.
    {if segment_2 == "thanks"}
    Thanks for getting in touch!
    {/if}
    
    <form>
    ...contact form fields
    </form>
    
    

    조건을 사용하여 CSS 클래스 이름 삽입하기
    원소에 클래스를 추가하고 싶지만/blog 부분에만 있다고 가정하십시오.너는 이렇게 할 수 있다.<body{if segment_1 == "blog"} class="blog"{/if}>세그먼트가 일치하는 경우 다음과 같이 출력됩니다.<body class="blog">다음과 같이 새 클래스 이름을 기존 클래스 이름에 추가할 수도 있습니다.<body class="body{if segment_1 == 'blog'} blog{/if}">결과:<body class="body blog">
    먼저 계산하고 나중에 계산하다
    당신은 조건을 사용하여 숫자에 따라 간단하게 계산할 수 있습니다.ExpressionEngine 항목은 다음 변수를 제공합니다.
  • count(표시되는 항목의 운행 계수로 첫 번째 항목은'1'이고 세 번째 항목은'3')
  • total_results(표시되는 총 항목 수)
  • 첫 번째 또는 두 번째 항목 표시하기
    {if count == 1}
    This is the first one
    {/if}
    
    {if count == 2}
    This is the second one
    {/if}
    
    
    마지막 항목 표시하기
    {if count == total_results}
    This is the last one
    {/if}
    
    
    컨텐트 앞뒤로 HTML을 출력해야 하는 경우 이러한 컨텐트를 결합할 수 있습니다.
    {if count == 1}
    
    <div class="row">
    {/if}
    
      Content...
    
    {if count == total_results}
    </div>
    
    {/if}
    
    

    연산자 사용
    이것들은 너로 하여금 다른 방식으로 사물을 비교하게 할 수 있다.존재하거나 존재하지 않거나, 작거나 큰 것을 테스트할 수 있으며, 심지어는 특정한 단어나 짧은 단어를 찾을 수도 있다.
    지금까지 나는 예시에서 == 연산자만 사용했다.여기에는 값을 비교하는 방법도 있습니다.

    어떤 물건이 비어 있는지 검사하다{if blog_exerpt != ""}The excerpt is not empty{/if}

    Where != “” is asking if the field is not empty - not equals blank.



    어떤 물건이 비어 있는지 검사하다{if blog_exerpt == ""}The excerpt is empty{/if}

    Where == “” is asking if the field is empty - equals blank.



    텍스트의 단어나 구 검사{if blog_exerpt *= "Tom"}The excerpt mentions Tom{/if}

    Where *= is asking if the text contains the word “Tom.”



    어떤 물건이 x보다 작은지 검사하다{if product_stock < 10}Low stock{/if}

    Where < is asking if the value is less than 10.



    어떤 물건이 x를 초과했는지 검사하다{if product_stock > 10}We have loads in stock{/if}

    Where > is asking if the value is more than 10.


    많은 연산자를 사용할 수 있습니다.전체 목록은 documentation을 참조하십시오.

    조건부 문제 해결
    조건 표시가 작동하지 않으면 다음 사항을 확인합니다.
  • 문법이 정확합니까?
  • 뒤따르는 것을 놓쳤습니까?
  • 맞춤법, 공백 누락 또는 여분 검사
  • 템플릿에 있는 태그의 위치가 정확합니까?
  • 문제가 계속되면 EECMS Slack channel 또는 ExpressionEngine forums에 게시하십시오.경험이 있는 눈은 보통 이 문제를 해결해 준다.

    총결산
    조건문은 처음에는 이해하기 어렵지만 버텨야 한다.클릭만 하면 매우 강력한 도구로 동적 사이트 내용을 만드는 데 도움을 줄 수 있다.
    --
    원저는 Rob Allen에서 출판되었다.

    좋은 웹페이지 즐겨찾기