0

私には fluid_styled_content 要素があり、それらには fluid_styled_content 要素でもある IRRE 要素があります。IRRE 要素を取得するにはどうすればよいですか?

現時点では、カスタム DataProcessor でそれらを取得しようとしていますが、実際に要素を取得する方法がわかりません。親要素が子の量を格納し、子が親の uid をforeign_fieldに格納しているように見えます。何か案は?

ContentObjectRendererは DataProcessor にあるものについて考えましたが、悲しいことに、実際に要素を取得する方法がわかりません。試してみ$cObj->cObjGetましたが、うまくいきませんでした。

4

2 に答える 2

2

私はそれを機能させるために一生懸命努力し、カスタム DataProcessor を使用しました。カスタム DataProcessors の詳細については、https ://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/AddingYourOwnContentElements/Index.html#data-processor をご覧ください。

これはプロセッサ自体です。

/**
 * @param  ContentObjectRenderer $cObj                       The data of the content element or page
 * @param  array                 $contentObjectConfiguration The configuration of Content Object
 * @param  array                 $processorConfiguration     The configuration of this processor
 * @param  array                 $processedData              Key/value store of processed data (e.g. to be passed to a Fluid View)
 * @return array                                             the processed data as key/value store
 */
public function process(ContentObjectRenderer $cObj, array $contentObjectConfiguration, array $processorConfiguration, array $processedData)
{
    $table = $processorConfiguration['references.']['table'];
    $fieldName = $processorConfiguration['references.']['fieldName'];

    $irreElements = $cObj->getRecords(
        $table,
        [
            'where' => $fieldName.'='.$cObj->data['uid'],
            'orderBy' => 'sorting'
        ]
    );

    $targetVariableName = $cObj->stdWrapValue('as', $processorConfiguration);
    $processedData[$targetVariableName] = $irreElements;

    return $processedData;
}

これがTypoScriptの設定です

tt_content {
    services < lib.fluidContent
    services {
        templateName = Services.html
        dataProcessing {
            23 = Vendor\ExtensionName\DataProcessing\WhateverYouWantToCallItProcessor
            23 {
                references.fieldName = service
                references.table = tt_content
                as = serviceElements
            }
        }
    }
}
于 2016-11-24T13:35:45.250 に答える
0

ここを見てください:

https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/frontend/Classes/DataProcessing/DatabaseQueryProcessor.php

tt_content {
    accordion =< lib.default
    accordion {
        templateName = ABC
        dataProcessing {
            20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
            20 {
                table = tx_irre_element
                pidInList.field = pid
                where {
                    data = field:uid
                    intval = 1
                    wrap = tt_content=|
                }

                orderBy = sorting
                as = items
            }
        }
    }
}
于 2016-11-24T12:51:28.207 に答える