2014-01-10 3 views
2

메뉴가 있으며 페이지 구성에서 미디어 파일에 액세스하려고합니다. 이것은 잘 작동하지만 미디어 파일의 모든 이미지를 제공합니다. ListNum 작동하지 않습니다. 아이디어 또는 대안 솔루션이 있습니까?TYPO3 파일 추상화 계층 파일 목록 번호

after.cObject = FILES 
after.cObject { 
references { 
    table = pages 
    fieldName = media 
    # listNum = 1 not working 
} 
renderObj = IMAGE 
renderObj { 
    file.import.data = file:current:originalUid 
    file.width = 250 
    file.import.listNum = 1 
    altText.data = file:current:description 
} 
} 

답변

0
after.cObject = FILES 
after.cObject { 
    references { 
    table = pages 
    fieldName = media 
    # listNum = 1 not working 
    } 
    renderObj = IMAGE 
    renderObj { 
    file.import.data = file:current:originalUid 
    file.width = 250 
    file.import.listNum = 1 
    altText.data = file:current:description 
    } 
    # start with first image 
    begin = 0 
    # show only two images 
    maxItems = 2 
} 

두가 작성 등록 된가 있습니다 제목 :

REGISTER:FILES_COUNT 

REGISTER:FILE_NUM_CURRENT 

을 TYPO3에 구현 현재 : 설명 및 파일 : 현재 중요 I 파일을 사용하려면 /sysext/frontend/Classes/ContentObject/FilesContentObject.php

+0

TYPO3 6.2에서만 작동합니다. [link] (http://docs.typo3.org/typo3cms/TyposcriptReference/latest/ContentObjects/Files/Index.html) 6.1 용 솔루션이 있습니까? – Obeck

+0

renderObj.stdWrap.if.equals = 1
renderObj.stdWrap.if.value.data = REGISTER : FILE_NUM_CURRENT (레지스터가 이미있는 경우) – maholtz

+0

레지스터가 없으면 특별한 마커로 이미지를 래핑 할 수 있습니다. after.split으로 마커를 분할하면 얻을 수있는 객체를 정의 할 수 있습니다. REGISTERS가 있는지 확인하십시오. 그렇지 않은 경우 – maholtz

3

OP의 코드와 마호츠의 대답은 현재 TYPO3 버전에서 더 이상 작동하지 않습니다. 여기에 6.2 이후 올바른 TypoScript입니다 :

1 = TMENU 
1 { 
    wrap = <ul>|</ul> 
    NO = 1 
    NO { 
     wrapItemAndSub = <li>|</li> 

     stdWrap.override.cObject = FILES 
     stdWrap.override.cObject { 
      references { 
      table = pages 
      fieldName = media 
      } 

      renderObj = IMAGE 
      renderObj { 
      file.import.data = file:current:uid 
      file.treatIdAsReference = 1 
      titleText.data = file:current:title // field:nav_title // field:title 
      altText.data = file:current:alternative // field:nav_title // field:title 
      } 

      # start with second image 
      begin = 1 
      # show only one image 
      maxItems = 1 
     } 

    } 
} 

매개 변수를 사용해야합니다 여러 이미지의 begin을 정의 (예를 들어 당신이 페이지에 대한 주요 배경과의 아이콘으로 또 다른 하나로서 하나 개의 이미지를 필요로하는 경우 메뉴).

maxItems 매개 변수를 늘리면 (리소스 탭에 이미지가 여러 개 정의되어있는 경우) 여러 이미지가 반환됩니다.

이미지를 바꾸지 않고 이미지에 추가/붙이려면 위 코드에서 stdWrap.override.cObjectafter.cObject 또는 before.cObject으로 변경해야합니다.

0

여기에 누적 이미지 참조가있는 다른 예가 있습니다. 이 코드는 jquerypicture와 함께 사용할 수 있습니다.

lib.headerImg = COA 
lib.headerImg.wrap = <picture alt="some alttext">|</picture> 
lib.headerImg { 

    // <source> 
    10 = FILES 
    10 { 

     references { 
     table = pages 
     uid.data = tsfe:id 
     fieldName = media 
     } 

     renderObj = IMG_RESOURCE 
     renderObj { 
      file.import.data = file:current:uid 
      file.treatIdAsReference = 1 
      stdWrap.dataWrap = <source src="|"> 
      # the 2nd pic gets another attribute 
      stdWrap.dataWrap.override = <source src="|" media="(min-width:600px)"> 
      stdWrap.dataWrap.override.if.value = 1 
      stdWrap.dataWrap.override.if.equals.data = register:FILE_NUM_CURRENT 
      # altText.data = file:current:title 
     } 

     begin = 0 
     maxItems = 2 

    } 

    // <noscript> 
    20 < .10 
    20.begin = 1 
    20.maxItems = 1 
    20.renderObj.stdWrap.dataWrap = <noscript><img src="|" alt="{file:current:title}"></noscript> 


}