Используйте обрезанное изображение с запасным вариантом в TypoScript в TYPO3 8

Этот код TS всегда создает изображение размером 600x400 пикселей:

  10 = FILES
  10 {
      required = 1
      references {
        table = tt_content
        fieldName = image
      }
      renderObj = IMAGE
      renderObj {
        wrap = <div class="teaser-image">|</div>
        file.import.data = file:current:originalUid // file:current:uid
        file.crop.data = file:current:crop
        file.width=600c
        file.height=400c
      }
  }

если я удалю

      file.width=600c
      file.height=400c

то будет использовано обрезанное изображение из мастера кадрирования.

Но мне нужно и то, и другое (это обновление существующего сайта): если доступно, используется обрезанное изображение, а если нет, используются заданные высота и ширина.

Как использовать часть «file:current:crop», чтобы переопределить ширину и высоту, только если они заданы? Или как установить запасной вариант? что-то вроде...

file.crop.data = file:current:crop // fallback...

person Urs    schedule 02.02.2018    source источник


Ответы (1)


Я перешел к FLUIDTEMPLATE в renderObj:

renderObj = FLUIDTEMPLATE
renderObj {
  file = path/to/templates/content/teaser.html
  dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10 {
      references.fieldName = image
      references.table = tt_content
      as = teaserimages
    }
  }
}

(Требуется FilesProcessor)

А потом в шаблоне

<img src="<f:uri.image image="{teaserimages.0}" width="600c" height="400c" />

Ведет себя так, как ожидалось

person Urs    schedule 04.02.2018