site/site-core

任何现代TYPO3应用程序的核心扩展。

安装次数: 1,804

依赖者: 0

建议者: 0

安全性: 0

星标: 4

关注者: 1

分支: 0

公开问题: 0

类型:typo3-cms-extension

v5.0.1 2023-04-27 17:26 UTC

README

功能

  • 简化了创建更快的新的内容元素的途径 (查看文档)
  • 通过 "前端渲染引擎" 以更简单的方式渲染自定义内容元素(也支持PSR-14事件!)
  • 包含一系列自定义实用类作为服务
  • 始终支持TYPO3和PHP的长治版本 - 目前为v12和v8.2

为什么我需要这个

我主要开发这个扩展是因为TcaService类,因为我一直不喜欢复制粘贴TCA数组 - 尤其是那些 表格属性(ctrl) 数组。你需要这个大数组来使用内联记录,你可以在例如 EXT:site_core/Configuration/TCA/Overrides/my_domain_model.php 中放置它,基本上返回一个配置了ctrl信息的数组。

结果发现类似的东西(ctrl数组)...

一个大型ctrl数组的例子
<?php

return [
    'ctrl' => [
        'title' => 'LLL:EXT:site_core/Resources/Private/Language/locallang_db.xlf:tx_sitecore_domain_model_test',
        'label' => 'title',
        'tstamp' => 'tstamp',
        'crdate' => 'crdate',
        'cruser_id' => 'cruser_id',
        'versioningWS' => true,
        'languageField' => 'sys_language_uid',
        'transOrigPointerField' => 'l10n_parent',
        'transOrigDiffSourceField' => 'l10n_diffsource',
        'delete' => 'deleted',
        'sortby' => 'sorting',
        'enablecolumns' => [
            'disabled' => 'hidden',
            'starttime' => 'starttime',
            'endtime' => 'endtime',
        ],
        'searchFields' => 'title',
        'iconfile' => 'EXT:site_core/Resources/Public/Icons/tx_sitecore_domain_model_test.gif'
    ],
    'interface' => [
        'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title',
    ],
    'types' => [
        '1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'],
    ],
    'columns' => [
        'sys_language_uid' => [
            'exclude' => true,
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
            'config' => [
                'type' => 'select',
                'renderType' => 'selectSingle',
                'special' => 'languages',
                'items' => [
                    [
                        'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
                        -1,
                        'flags-multiple'
                    ]
                ],
                'default' => 0,
            ],
        ],
        'l10n_parent' => [
            'displayCond' => 'FIELD:sys_language_uid:>:0',
            'exclude' => true,
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
            'config' => [
                'type' => 'select',
                'renderType' => 'selectSingle',
                'default' => 0,
                'items' => [
                    ['', 0],
                ],
                'foreign_table' => 'tx_sitecore_domain_model_test',
                'foreign_table_where' => 'AND {#tx_sitecore_domain_model_test}.{#pid}=###CURRENT_PID### AND {#tx_sitecore_domain_model_test}.{#sys_language_uid} IN (-1,0)',
            ],
        ],
        'l10n_diffsource' => [
            'config' => [
                'type' => 'passthrough',
            ],
        ],
        't3ver_label' => [
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel',
            'config' => [
                'type' => 'input',
                'size' => 30,
                'max' => 255,
            ],
        ],
        'hidden' => [
            'exclude' => true,
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.visible',
            'config' => [
                'type' => 'check',
                'renderType' => 'checkboxToggle',
                'items' => [
                    [
                        0 => '',
                        1 => '',
                        'invertStateDisplay' => true
                    ]
                ],
            ],
        ],
        'starttime' => [
            'exclude' => true,
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
            'config' => [
                'type' => 'input',
                'renderType' => 'inputDateTime',
                'eval' => 'datetime,int',
                'default' => 0,
                'behaviour' => [
                    'allowLanguageSynchronization' => true
                ]
            ],
        ],
        'endtime' => [
            'exclude' => true,
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
            'config' => [
                'type' => 'input',
                'renderType' => 'inputDateTime',
                'eval' => 'datetime,int',
                'default' => 0,
                'range' => [
                    'upper' => mktime(0, 0, 0, 1, 1, 2038)
                ],
                'behaviour' => [
                    'allowLanguageSynchronization' => true
                ]
            ],
        ],
        'sorting' => [
            'label' => 'sorting',
            'config' => [
                'type' => 'passthrough',
            ]
        ],
        'title' => [
            'exclude' => true,
            'label' => 'LLL:EXT:site_core/Resources/Private/Language/locallang_db.xlf:tx_sitecore_domain_model_test.title',
            'config' => [
                'type' => 'input',
                'size' => 30,
                'eval' => 'trim'
            ],
        ],
    ],
];

注意:此示例配置仅涵盖一个字段(标题)。

...可以使用 site/site-core 的TcaService变得更容易

TcaService方式
<?php

use Site\Core\Form\Fields;

return Fields\Inline::make('Accordion', [
    'label' => 'rte',

    'columns' => [
        'header' => Fields\Input::make('Header'),
        'rte' => Fields\RTE::make('RTE'),
        'file' => Fields\File::make('File', [
            'fieldName' => 'file'
        ]),
        'image' => Fields\Image::make('Image', [
            'fieldName' => 'image'
        ]),
        'subaccords' => Fields\InlineItem::make('sub accordsss', [
            'config' => [
                'foreign_table' => 'tx_sitebackend_domain_model_accordions'
            ]
        ]),
    ],
]);

注意:这个简化的配置已经包含了5个字段,比其他配置更容易理解。

安装

composer req site/site-core

文档

请访问 site-core.readthedocs.io 查看文档

许可

MIT

更多信息请参阅 LICENSE