TYPO3 PageLayoutView从外部表获取值

时间:2018-07-18 06:31:06

标签: typo3 typo3-8.x typo3-tca

我设法构建了一个Slider(作为自己的内容元素),并且在表“ tt_content”上有一列读取表“ slider”的记录,并且只返回记录数。

现在,当我在后端布局上创建一个滑块元素时,我希望有一个列表,其中包含当前正在显示给该特定滑块元素的图像。像这样:

Images

现在在我的 SliderPreviewRenderer.php 上,我有以下内容

public function preProcess(
      PageLayoutView &$parentObject,
      &$drawItem,
      &$headerContent,
      &$itemContent,
      array &$row
   )
   {
      if ($row['CType'] === 'slider') {
        $headerContent = '<strong>' . $parentObject->CType_labels[$row['CType']] . '</strong><br/>';
        $itemContent .= '<p class="title">Images:</p>';
        $itemContent .= $parentObject->linkEditContent($parentObject->getThumbCodeUnlinked($row, 'tt_content', 'slider') . '<br />');

         $drawItem = false;
      }
   }

现在,我只读了它位于tt_content上的列(我想)。使用此代码,我只会得到第一张图片,而没有其他任何东西。

我想拥有的

第二个是设置。设置保存在其他表中。我也如何获得设置?设置保存在表格“ slidersettings”中。我没有代码,因为我不知道如何实现。滑块设置的外键是“ slider_settings_relation”,它返回一个整数。关系是1-1。

您能告诉我我该怎么做吗?我一直在网上寻找解决方案,但是似乎没有人提出这样的问题。

最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

我想表格滑块不是直接指向图像引用,而是指向本身包含图像引用的记录。因此,使用当前的代码,您将无法获得预期的结果,因为它仅包含连接的滑块数量,而这些滑块不能直接解析为文件引用。

因此,您应该首先获取连接到该字段的滑块,以获取实际的文件引用字段,然后为每个滑块生成一个缩略图,最后将其放入一个缩略图集合中以进行链接,就像在代码中所做的那样

所以您可能想看看\TYPO3\CMS\Frontend\Hooks\PageLayoutView\ImagePreviewRenderer

利用

\TYPO3\CMS\Backend\Utility\BackendUtility::resolveFileReferences

正是出于这个目的。 它甚至基于您正在使用的同一个钩子,因此它应该以相同的方式工作。