Typo3 v10 - 扩展中的内容元素为空

问题描述

我有一个 Typ3 扩展,它允许在扩展中创建内容元素 - 在 Typ3 v9 中它工作正常,但在 Typ3 v10 上它没有,当我在模板中调试时,我得到了这个结果:

contentElements => protected TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorageprototypeobject (empty)

内容元素已创建,并且在后端也可以在数据集中正确可见

我还尝试查看实现模拟行为的 tx_news 但我没有任何线索,对我来说似乎我做对了但是是的...,按照我使用的一些代码片段,您是否有想法:

在 setup.typoscript 中:

lib.contenttabs_fecontenttabs.contentElementRendering = RECORDS
lib.contenttabs_fecontenttabs.contentElementRendering {
   tables = tt_content
   source.current = 1
   dontCheckPid = 1
}

在模型中(我尝试使用 sam 作为新闻):

/**
 * Get content elements
 *
 * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage
 */
public function getContentElements()
{
    return $this->contentElements;
}

/**
 * Set content element list
 *
 * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage $contentElements content elements
 */
public function setContentElements($contentElements)
{
    $this->contentElements = $contentElements;
}

/**
 * Adds a content element to the record
 *
 * @param \Moc\Contenttabs\Domain\Model\TtContent $contentElement
 */
public function addContentElement(\Moc\Contenttabs\Domain\Model\TtContent $contentElement)
{
    if ($this->getContentElements() === null) {
        $this->contentElements = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
    }
    $this->contentElements->attach($contentElement);
}

/**
 * Get id list of content elements
 *
 * @return string
 */
public function getContentElementIdList()
{
    return $this->getIdOfContentElements();
}

/**
 * Get translated id list of content elements
 *
 * @return string
 */
public function getTranslatedContentElementIdList()
{
    return $this->getIdOfContentElements(false);
}

/**
 * Collect id list
 *
 * @param bool $original
 * @return string
 */
protected function getIdOfContentElements($original = true)
{
    $idList = [];
    $contentElements = $this->getContentElements();
    if ($contentElements) {
        foreach ($this->getContentElements() as $contentElement) {
            if ($contentElement->getColPos() >= 0) {
                $idList[] = $original ? $contentElement->getUid() : $contentElement->_getProperty('_localizedUid');
            }
        }
    }
    return implode(',',$idList);
}

在模板中:

<f:cObject typoscriptObjectPath="lib.contenttabs_fecontenttabs.contentElementRendering">
    {tab.contentElementIdList}
</f:cObject>

一些 TCA 代码(似乎工作正常):

'content_elements' => [
          'exclude' => 1,'l10n_mode' => 'mergeIfNotBlank','label' => 'Content Elements','config' => [
             'type' => 'inline','allowed' => 'tt_content','foreign_table' => 'tt_content','foreign_sortby' => 'sorting','foreign_field' => 'tx_tabs_content_elements','minitems' => 0,'maxitems' => 99,'overrideChildTca' => [
                'columns' => [
                    'colPos' => [
                        'config' => [
                            'default' => 99
                        ]
                    ],'CType' => [
                        'config' => [
                            'default' => 'textmedia'
                        ]
                    ]
                ]
            ],'appearance' => [
                'collapseAll' => 1,'expandSingle' => 1,'levelLinksPosition' => 'bottom','useSortable' => 1,'showPossibleLocalizationRecords' => 1,'showRemovedLocalizationRecords' => 1,'showAllLocalizationLink' => 1,'showSynchronizationLink' => 1,'enabledControls' => [
                   'info' => false,]
             ]
          ]
        ],

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...