2016-09-06 2 views
2

데이터 = 레벨 미디어를 통해 슬라이더 이미지를 얻습니다. -1, 슬라이드 뉴스 단일 페이지에서 대신 뉴스 이미지를 사용하고 싶습니다. 그래서이 코드를 조건 [globalVar = GP:tx_news_pi1|news > 0]에 넣고 뉴스 이미지를 얻습니다. 다 괜찮아. 그러나 뉴스 이미지가 없다면 레벨 미디어를 보여주고 싶습니다. 어떻게해야합니까?대체 파일을 가진 대체 참고 문서

다음은 TypoScript입니다 :

lib.keyVisual = COA 
lib.keyVisual { 
    10 = FILES 
    10 { 
     references { 
      data = levelmedia:-1,slide 
     } 

     renderObj = COA 
     renderObj.10 = IMAGE 
     renderObj.10 { 
      file { 
       import.data = file:current:uid 
       treatIdAsReference = 1 
       width = {$keyVisualWidth} 
       #width.field > 
       height = {$keyVisualHeight} 

      } 
     } 

     renderObj.20 = COA 
     renderObj.20 { 
      1 = TEXT 
      1 { 
       data = file:current:title 
       required = 1 
       wrap = <h3>|</h3> 
      } 
      2 = TEXT 
      2 { 
       data = file:current:description 
       required = 1 
       wrap = <p>|</p> 
      } 
      stdWrap.wrap = <div class="imageCaptionBox">|</div> 
      stdWrap.required = 1 
     } 

     renderObj.wrap = <li>|</li> 
    } 
    wrap = <section id="keyvisual" class="keyvisual fullWidth"><ul class="slider nav">|</ul></section> 
} 
[globalVar = GP:tx_news_pi1|news > 0] 
    lib.keyVisual { 
     10 { 
      references { 
       data > 
       table = tx_news_domain_model_news 
       uid.data = GP:tx_news_pi1|news 
       fieldName = fal_media 
      } 

      # only images with showinpreview 
      renderObj.if { 
       value = 1 
       equals.data = file:current:showinpreview 
      } 
     } 
    } 
[global] 

답변

1

ifEmpty stdWrap 옵션으로 작업하십시오.

COA가 비어있는 경우이 옵션을 사용하여 기본 이미지를 렌더링 할 수 있습니다.

간단한 예를 들어 설명합니다 :

[globalVar = GP:tx_news_pi1|news > 0] 
    lib.keyVisual { 
    stdWrap.ifEmpty.cObject < .10 

    #overrides for news picture 
    10 { 
     ... 
    } 
    } 
[global] 
+0

10.stdWrap.ifEmpty.cObject 나를 위해 그것을 할 것입니다 <0.10를! –

1

모든 조건이 [else] 그래서 당신이 다시 정의 할 필요가 없습니다 있습니다.

[globalVar = GP:tx_news_pi1|news > 0] 
lib.keyVisual { 
    ... from news... 
} 
[else] 
lib.keyVisual { 
    ... from levelmedia ... 
} 
[global] 

그런 다음 뉴스에 사용할 이미지가 있는지 구분해야합니다.

[globalVar = GP:tx_news_pi1|news > 0] 
lib.keyVisual = COA 
lib.keyVisual { 
    10 = CONTENT 
    10 { 
     // get news record and then get file 
     ... from news... 
     if.empty.field = media 
    } 
    20 = FILES 
    20 { 
     ... from levelmedia ... 
     if { 
      empty.field = media 
      negate = 1 
     } 
    } 
} 
[else] 
lib.keyVisual { 
    ... from levelmedia ... 
} 
[global] 

이는 복사 된 레벨 미디어 사용을위한 임시 개체를 사용하여 최적화 할 수 있습니다.

temp.levelmediaImage { 
    ... 
} 
[globalVar = GP:tx_news_pi1|news > 0] 
kib.keyVisual = COA 
lib.keyVisual { 
    10 = CONTENT 
    10 { 
     // get news record and then get file 
     ... from news... 
     if.empty.field = media 
    } 
    20 < temp.levelmediaImage 
    20 { 
     if { 
      empty.field = media 
      negate = 1 
     } 
    } 
} 
[else] 
lib.keyVisual < temp.levelmediaImage 
[global]