Получение родительского / вложенного Flux CE внутри жидкости - PullRequest
0 голосов
/ 18 февраля 2019

Можно ли получить родительский тип / имя CE в рамках вложенного CE?У меня есть Custom Flux Grid CE с двумя столбцами, внутри столбцов можно разместить другой CE.Теперь я хотел бы определить, находится ли ребенок внутри сетки, если да, то и то и это.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Независимо от технологии, используемой для хранения отношения между родителем и потомком, вы всегда можете выбрать параметр FLUIDTEMPLATE dataProcessing.

. Или создать переменную children или parent через DatabaseQueryProcessor, напримерчто

tt_content.mycontent.20 = FLUIDTEMPLATE
tt_content.mycontent.20 {
   file = EXT:site_default/Resources/Private/Templates/ContentObjects/MyContent.html

   dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
   dataProcessing.10 {
      # regular if syntax
      if.isTrue.field = records

      # the table name from which the data is fetched from
      # + stdWrap
      table = tt_address

      # All properties from .select can be used directly
      # + stdWrap
      colPos = 1
      pidInList = 13,14

      # The target variable to be handed to the ContentObject again, can
      # be used in Fluid e.g. to iterate over the objects. defaults to
      # "records" when not defined
      # + stdWrap
      as = myrecords

      # The fetched records can also be processed by DataProcessors.
      # All configured processors are applied to every row of the result.
      dataProcessing {
         10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
         10 {
            references.fieldName = image
         }
      }
   }
}

Вы можете использовать все параметры select для этого DataProcessor, и каждый из них можно изменить с помощью свойств stdWrap.https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Select.html

Просто замените as = myrecords на нужное имя переменной, а затем получите доступ к этой переменной непосредственно из вашего шаблона Fluid.Вы можете использовать <f:debug>{_all}</f:debug>, чтобы получить обзор доступных переменных.

Взято из этих документов https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html#dataprocessing

Кроме того, вы можете посмотреть это видео https://www.twitch.tv/videos/380759921 чтобы понять, что такое dataProcessing.

0 голосов
/ 18 февраля 2019

Поскольку подход FLUIDTEMPLATE является универсальным, в то время как вопрос может быть ближе связан с Flux, вот специальный способ передачи данных для дочерних записей Flux:

https://fluidtypo3.org/viewhelpers/flux/master/Content/RenderViewHelper.html

<flux:content.render 
    area="NULL"
    limit="123"
    offset="123"
    order="'sorting'"
    sortDirection="'ASC'"
    as="NULL"
    loadRegister="{foo: 'bar'}"
    render="1"
>
    <!-- tag content - may be ignored! -->
</flux:content.render>

Просто введите дополнительную информацию в loadRegister с именем foo, чтобы сделать ее доступной с помощью метода getText register:foo в процессе дочернего рендеринга.

loadRegister="{parentRecordType: '2'}"

и в вашей дочерней записииспользование рендеринга

10 = TEXT
10.dataWrap = My parent record is of type {register:parentRecordType}

То же самое касается условий или переключения объектов на основе зарегистрированной информации.И, конечно же, для рендеринга дочерних записей на основе Fluid.

Просто используйте <f:debug>_all</f:debug>, чтобы получить обзор доступных регистров и данных.

https://docs.typo3.org/typo3cms/TyposcriptReference/DataTypes/Index.html#register

0 голосов
/ 18 февраля 2019

Да, все возможно с TYPO3 и во многих отношениях.Как вложены элементы содержимого?От родителей к детям (темплавоила) или от детей к родителю (жених)?

...