TYPO3 PageLayoutView从外部表获取值

TYPO3 PageLayoutView从外部表获取值,typo3,typo3-8.x,typo3-tca,Typo3,Typo3 8.x,Typo3 Tca,我设法构建了一个Slider(作为自己的内容元素),在表“tt_content”上有一列读取表“Slider”的记录,它只返回记录数 现在,当我在后端布局上创建一个slider元素时,我希望有一个列表,其中包含当前显示给这个特定slider元素的图像。像这样: 现在,在我的SliderPreviewRenderer.php上,我有以下内容 public function preProcess( PageLayoutView &$parentObject, &am

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

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

现在,在我的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;
      }
   }
公共函数预处理(
PageLayoutView&$parentObject,
&$drawItem,
&$headerContent,
&$itemContent,
数组和$行
)
{
如果($row['CType']='slider'){
$headerContent='。$parentObject->CType_标签[$row['CType']].
; $itemContent.='

图像:

; $itemContent.=$parentObject->linkEditContent($parentObject->getThumbCodeUnlinked($row,'tt_content','slider')。
); $drawItem=false; } }
现在我刚刚读到了tt_内容上的专栏(我猜)。使用此代码,我只得到第一张图像,而没有其他图像

我想要的第二件事是设置。这些设置保存在不同的表中。我怎样才能获得设置呢?设置保存在“滑块设置”表中。我没有这方面的代码,因为我不知道如何实现这一点。滑块设置的外键是“滑块设置关系”,它返回一个整数。关系是1-1

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


非常感谢,

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

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

因此,您可能想了解一下
\TYPO3\CMS\Frontend\Hooks\PageLayoutView\imagepreviewRender

利用

\TYPO3\CMS\Backend\Utility\BackendUtility::resolveFileReferences
正是为了这个目的。
它甚至基于您正在使用的同一个钩子,因此它应该以相同的方式工作。

我知道这一点。我知道我不能得到所有的图像,因为它们属于另一个表,而这段代码指向表tt_内容。我只是想问我如何重新调整我的代码,这样我就可以从带有特定ID的滑块上获取图像