Поле изображения FAL в расширенной гибкой форме

Можно ли создать поле изображения FAL flexform, как в обычном элементе tt_content? Я хочу реализовать функциональность, отображаемую на следующем экране, в поле гибкой формы расширения.

введите описание изображения здесь

Я создал элемент гибкой формы, но у него возникла проблема при переводе записей элементов содержимого по умолчанию. Когда я перевожу элемент содержимого по умолчанию, изображения не копируются в переведенный элемент.

Поэтому мне нужно реализовать поле изображения Flexform FAL без ошибки в переводе.


person Arun Chandran    schedule 04.06.2014    source источник
comment
Ссылка, которую вы предоставили, предназначена для TCA. Но мне нужна функция локализации для FAL во флексформе. Я создал поле гибкой формы FAL на основе этой документации wiki.typo3.org/File_Abstraction_Layer#FlexForm, но локализация не работает.   -  person Arun Chandran    schedule 05.06.2014


Ответы (2)


Надеюсь, это поможет - я разработал слайдер изображений, используя flexforms и FAL. Вот код:

Конфигурация Flexform (только для поля изображений)

<settings.sliderImages>
        <TCEforms>
            <label>LLL:EXT:bwrk_slider/Resources/Private/Language/locallang_db.xlf:imageslider.flex.general.sliderImages</label>
            <config>
                <type>inline</type>
                <maxitems>99</maxitems>
                <foreign_table>sys_file_reference</foreign_table>
                <!--<foreign_field>uid_foreign</foreign_field>-->
                <foreign_table_field>tablenames</foreign_table_field>
                <foreign_label>uid_local</foreign_label>
                <foreign_sortby>sorting_foreign</foreign_sortby>
                <foreign_selector>uid_local</foreign_selector>
                <foreign_selector_fieldTcaOverride type="array">
                    <config>
                        <appearance>
                            <elementBrowserType>file</elementBrowserType>
                            <elementBrowserAllowed>jpg,png</elementBrowserAllowed>
                        </appearance>
                    </config>
                </foreign_selector_fieldTcaOverride>
                <foreign_match_fields type="array">
                    <fieldname>image</fieldname>
                </foreign_match_fields>
                <appearance type="array">
                    <newRecordLinkAddTitle>1</newRecordLinkAddTitle>
                    <headerThumbnail>
                        <field>uid_local</field>
                        <height>64</height>
                        <width>64</width>
                    </headerThumbnail>
                </appearance>
            </config>
        </TCEforms>
    </settings.sliderImages>

Контроллер моего расширения

        $resourceFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\ResourceFactory');
        $sliderItems = array();
        $sliderItemUids = $this->settings['sliderImages'];
        $sliderItemUids = explode(',', $sliderItemUids);

        if(!empty($sliderItemUids)){
            $arraySize = sizeof($sliderItemUids);
            for($i = 0; $i < $arraySize; $i++){

                $itemUid = $sliderItemUids[$i];

                $fileReference = $resourceFactory->getFileReferenceObject($itemUid);
                $fileArray = $fileReference->getProperties();
                array_push($sliderItems, $fileArray);
            }
        }

        // debug($this->settings['sliderImages']);
        $this->view->assign('sliderItems', $sliderItems);

Гибкий шаблон

<f:for each="{sliderItems}" as="item">
    <div class="slider-item">
        <div class="slider-item-img">
            <f:image src="{item.uid}" alt="..." treatIdAsReference="TRUE" />
        </div>
        <div class="slider-item-text"></div>
    </div>
</f:for>
person Klausn    schedule 24.07.2014
comment
Это хорошо, но при использовании этого решения я получил ошибку Internal server Error, когда я нажимаю кнопку + new. - person Ashish Patel; 22.09.2015
comment
почему вы комментируете этот раздел? ‹! - ‹foreign_field› uid_foreign ‹/foreign_field› -› Разве это не доступно для поддержания связи в разделах? - person Manuel Thaler; 10.01.2017

Отлично работает, но если вы не добавите изображение в плагин, вы получите исключение. Поэтому я немного поправил код:

$resourceFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\ResourceFactory');
    $sliderItems = array();
    $sliderItemUids = $this->settings['sliderImages'];


    if(!empty($sliderItemUids)){
        $sliderItemUids = explode(',', $sliderItemUids);
        $arraySize = sizeof($sliderItemUids);
        for($i = 0; $i < $arraySize; $i++){

            $itemUid = $sliderItemUids[$i];

            $fileReference = $resourceFactory->getFileReferenceObject($itemUid);
            $fileArray = $fileReference->getProperties();
            array_push($sliderItems, $fileArray);
        }
        // debug($this->settings['sliderImages']);
        $this->view->assign('sliderItems', $sliderItems);
    }
person kimomat    schedule 08.07.2015