【问题标题】:TYPO3 6.2 LTS using FAL and TCATYPO3 6.2 LTS 使用 FAL 和 TCA
【发布时间】:2017-05-05 12:07:39
【问题描述】:

我有以下问题,我相信你们中的一些人会将此问题标记为重复,但我找不到我的问题的具体答案。

我有一个扩展程序,我想使用 FAL 添加图像/pdf 等。

根据教程,我必须配置 TCA。好吧,文档是关于这一点的,而教程是基于 TCA 的知识。

我还必须使用一些 TypoScript,我到目前为止还没有使用过。

好的,据我所知,这是我的问题: 我在哪里编辑 TCA? 我有一个名为ext_tables 的文件,我可以在其中看到$GLOBALS['TCA']。 我还有一个目录 TCA,里面有一些文件(只填充了$GLOBALES['TCA']

然后,我如何访问这些数据?我需要在 modal 内部建一棵树(也可以弹出)

我知道这些问题听起来非常简单,但我找不到可以解释任何事情的教程。

感谢所有帮助:)

非常感谢。

【问题讨论】:

    标签: typo3 fal


    【解决方案1】:

    你的问题太含糊了:

    到目前为止,您到底尝试了什么?

    您更改了哪些文件?

    您需要 FLUIDTEMPLATE、extbase 控制器或其他地方的文件吗?


    将 FAL 字段添加到扩展程序的步骤

    扩展数据库(typo3conf/ext/yourExtFolder/ext_tables.sql):

    CREATE TABLE your_database_table (   
        your_fal_field int(11) unsigned DEFAULT '0' NOT NULL  
    )
    

    扩展 TCA:

    如果您从另一个扩展中扩展现有表,则可以在 typo3conf/ext/yourExtFolder/Configuration/TCA/Overrides/your_database_table.php 中扩展 TCA

    示例(扩展 tt_content):

    $newColumn = [
        'field_name' => [
            'image' => [                
                'label'   => 'Image',
                'config'  => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('image', [
                   'appearance' => [
                        'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference',
                    ],
                    'minitems'   => 0,
                    'maxitems'   => 1,
                ], $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']),
            ],
       ],
    ];
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $newColumn);
    

    如果您将该字段添加到您自己的扩展中,则必须扩展 typo3conf/ext/yourExtFolder/Configuration/TCA/your_database_table.php。 示例(来自 TYPO3 核心 be_users TCA - 缩短版):

    return [
        'ctrl' => [
            'label' => 'username',
            'descriptionColumn' => 'description',
        ],
        'columns' => [
            'username' => [
                'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:be_users.username',
                'config' => [
                    'type' => 'input',
                    'size' => 20,
                    'max' => 50,
                    'eval' => 'nospace,trim,lower,unique,required',
                    'autocomplete' => false,
                ]
            ],
            'avatar' => [
                'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:be_users.avatar',
                'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
                    'avatar',
                    ['maxitems' => 1],
                    $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
                )
            ],
        ],
        // Removed more `columns`, `types` and `palettes` config         
    ];
    

    重要的部分是使用getFileFieldTCAConfig函数的avatar的定义。

    扩展您的 extbase 模型 (typo3conf/ext/yourExtFolder/Classes/Domain/Model/YourClass.php)

    来自keinerweiss.de:的简化sn-p

    class YourClass extends TheModelYouWantToExtend or \TYPO3\CMS\Extbase\DomainObject\AbstractEntity  {
        // ...
    
        /**
         * @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
         */
        protected $yourField;
    
        /**
         * Returns the image
         *
         * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $image
         */
        public function getYourField() {
                return $this->yourField;
        }
    
        /**
         * Sets the image
         *
         * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $image
         * @return void
         */
        public function setYourField($image) {
                $this->yourField = $yourField;
        }       
    }
    

    在 Fluid 中使用您的图像(来自 t3-developer.com):

    <f:for each="{mymodel.mypictures}" as="picture">    
        <f:image src="{mypicture.image.uid}" alt="" treatIdAsReference="TRUE" /> 
    </f:for>
    

    更多链接(英文):

    https://gist.github.com/maddy2101/5668835

    http://blog.scwebs.in/typo3/typo3-fal-file-abstraction-layer-in-extbasefluid-extension

    更多链接(德语):

    http://keinerweiss.de/755-typo3-fal-in-einer-eigenen-extbasefluid-extension-einsetzen.html

    http://t3-developer.com/ext-programmierung/techniken-in-extensions/fal-in-typo3-extensions-verwenden/

    http://t3g.at/extbase-bilder-fal-in-extension-integrieren/

    【讨论】:

    • 扩展数据库CREATE TABLE your_database_table (your_fal_field int(11) unsigned DEFAULT '0' NOT NULL)。它只是一个引用计数器。
    • 您好,感谢您的帮助,但这正是我目前所发现的——并且已经发生了变化。当您向网站添加新页面时,您还可以添加文本和图像。当您单击按钮以“添加媒体文件”时,它会打开一个包含现有文件列表的弹出窗口。这正是我需要的。这就是到目前为止没有教程能告诉我的部分。
    • 我现在有点困惑。 :-) 您是否看到附加字段,但缺少“添加媒体文件”按钮或仍然缺少整个字段?我的回答应该完全创建您描述的字段(包括添加媒体文件按钮和弹出窗口)。该向导由 getFileFieldTCAConfig 配置。您究竟在哪里需要额外的字段?页数?现有的内容元素?您创建的自定义内容元素?
    • 您好 Christoph,我没有使用 Flexforms 或任何其他形式。它是使用 ExtensionBuilder 创建的现有扩展。因此只有一个模板,我必须手动更改。
    • 嗨帕特里克!我从来没有谈论过 flexform,getFileFieldTCAConfig 也用于“普通”字段。你能请张贴目前的状态吗?你到底尝试了什么?整个字段是否只缺少“添加媒体文件”向导?也许上传你的扩展,以便我检查?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多