단순 조건문 입문
무엇이'조건이 있는'입니까?
한 정보를 다른 정보와 비교하거나 평가하고 결과에 따라 응답을 표시할 수 있습니다.
Conditionals generally work on the result being true or false - in essence, you’re asking a question to get an answer.
당신은 무엇을 비교/평가할 수 있습니까?
ExpressionEngine에서 사용할 수 있는 모든 변수나 값(글로벌 변수, 채널 입력 필드, 구성원 필드, 사용자 정의 값 등)을 비교할 수 있습니다.
다음은 별도로 평가하거나 비교 평가할 수 있는 상세하지 않은 목록입니다.
조건문 사용 시기
거의 무한한 용도가 있지만 흔히 볼 수 있는 용도는 다음과 같다.
<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}
이렇게 하는 목적은 방문자가 당신의 사이트에 로그인했는지 확인하는 것입니다.{if logged_in}
Hello customer
{if:else}
Please login
{/if}
우리가 지금 하고 있는 것은 두 가지 가능한 값을 얻는 것이다.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을 참조하십시오.
조건부 문제 해결
조건 표시가 작동하지 않으면 다음 사항을 확인합니다.
총결산
조건문은 처음에는 이해하기 어렵지만 버텨야 한다.클릭만 하면 매우 강력한 도구로 동적 사이트 내용을 만드는 데 도움을 줄 수 있다.
--
원저는 Rob Allen에서 출판되었다.
Reference
이 문제에 관하여(단순 조건문 입문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eecms/a-primer-on-simple-conditionals-58jo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)