gpt4 book ai didi

typo3 - 如何获取 Fluid of Typo3 Content Element Pictures 中的类别对象?

转载 作者:行者123 更新时间:2023-12-01 09:33:02 30 4
gpt4 key购买 nike

谷歌了半天,终于在Typo3 7.6 Fluid中得到了FAL Objects的类别。但我只能返回一个字符串。我想得到一个像 {data} 这样的对象。

我的工作:打字错误

lib.category = CONTENT
lib.category {
table=sys_category
wrap=|
select {
pidInList = root,0,1
recursive = 99
max=10
selectFields=sys_category.title,sys_category.uid
join = sys_category_record_mm on sys_category_record_mm.uid_local = sys_category.uid join sys_file_metadata on sys_file_metadata.uid = sys_category_record_mm.uid_foreign join sys_file_reference on sys_file_reference.uid_local = sys_file_metadata.file
where.field = fuid
where.wrap = sys_file_reference.uid=|
}
renderObj=COA
renderObj {
1=TEXT
1.field = uid
2=TEXT
2.field = title
}
}

在 Fluid 中我有:

<f:for each="{files}" as="file">
<p>
- {file.uid}<br />
- <f:cObject typoscriptObjectPath="lib.category" data="{fuid:file.uid}" />
</p>
</f:for>

在它打印的网页上:

  • 88
  • 3Black7Small

  • 89

  • 2Blue7Big

  • 90

  • 1红色

但我认为 Fluid 中的对象更好,所以我可以使用 f:for each 等。但我不知道如何返回它。

谁能帮帮我?

最佳答案

看起来这个任务很棘手。 {files} 数组中的 file 对象属于 \TYPO3\CMS\Core\Resource\FileReference 类型,其中 uid、title 或描述从类型为 \TYPO3\CMS\Core\Resource\File 的原始文件对象传递。 FileReference 实际上是作为一个模型而不是文件来实现的,所以你不能扩展它。

我看到的唯一其他方法是创建一个 viewhelper,它将使用 native sql 查询获取类别,CategoryRepository 会自动将结果映射到类别模型。类似的东西:

<?php
namespace Vendor\Extension\ViewHelpers;
/**
*
* @version $Id$
* @copyright Dimitri Lavrenuek <lavrenuek.de>
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
*/
class GetFileCategoriesViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {

/**
* @var \TYPO3\CMS\Extbase\Domain\Repository\CategoryRepository
* @inject
*/
protected $categoryRepository;

/**
* @param int $uid
* @return array
*/
public function render ($uid) {
$query = $this->categoryRepository->createQuery();
$sql = "SELECT sys_category.* FROM sys_category
INNER JOIN sys_category_record_mm ON sys_category_record_mm.uid_local = sys_category.uid AND sys_category_record_mm.fieldname = 'categories' AND sys_category_record_mm.tablenames = 'sys_file_metadata'
INNER JOIN sys_file_metadata ON sys_category_record_mm.uid_foreign = sys_file_metadata.uid
WHERE sys_file_metadata.file = '" . (int)$uid . "'
AND sys_category.deleted = 0
ORDER BY sys_category_record_mm.sorting_foreign ASC";
return $query->statement($sql)->execute();
}
}

我没有测试实际代码,只测试了 sql 查询,但这应该可以。我也希望您知道如何在您的流体模板中包含 viewhelpers,如果没有,我会提供一个示例。

关于typo3 - 如何获取 Fluid of Typo3 Content Element Pictures 中的类别对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38509145/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com