Fluid是一种基于XML的TYPO3模板系统。使用Fluid,视图逻辑的所有代码都移动到模板 - 例如循环,if / else切换和类似。
是否可以创建一个不迭代数组而是使用整数的迭代?这是文档中提供的示例: 是否可以创建一个不迭代数组而是使用整数的迭代?这是文档中提供的示例: <f:for each="{0:1, 1:2, 2:3, 3:4}" ...> 我正在寻找插入一个整数的可能性,然后该整数定义迭代次数。在 JavaScript 中,它看起来像这样: for (let a = 0; a < iterations; a++) {...} 你必须编写自己的ViewHelper 这是我对此类 ViewHelper 的实现: use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; use TYPO3\CMS\Extbase\Utility\DebuggerUtility; class LoopViewHelper extends AbstractViewHelper { use CompileWithRenderStatic; /** * @var bool */ protected $escapeOutput = false; public function initializeArguments() { parent::initializeArguments(); $this->registerArgument('increment', 'int', 'The number determing the increment e.g. 2 -> 1, 3, 5, ... (should be positive - absolute value is used!)', false, 1); $this->registerArgument('start', 'int', 'The starting value to count from', false, 0); $this->registerArgument('end', 'int', 'The value to count to e.g. 7 and increment 3 -> 1, 3, 6 ( using <=)', true); $this->registerArgument('reverse', 'boolean', 'If TRUE, iterates in reverse e.g from start to finish with decrement (using increment value) instead of increment', false, false); $this->registerArgument('iterator', 'string', 'The name of the variable to store iteration information (index, isFirst, isLast, isEven, isOdd)', false, 'iterator'); } /** * @param array $arguments * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string * @throws ViewHelper\Exception */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { $templateVariableContainer = $renderingContext->getVariableProvider(); if (!isset($arguments['end'])) { return ''; } if ($arguments['reverse']) { $iterationData = [ 'index' => $arguments['end'], ]; $end = $arguments['start']; $stepValue = abs($arguments['increment']) * -1; $comparison = 'compareGreater'; } else { $iterationData = [ 'index' => $arguments['start'], ]; $end = $arguments['end']; $stepValue = abs($arguments['increment']); $comparison = 'compareLesser'; } $output = ''; for ($i = $iterationData['index']; self::$comparison($i, $end); $i = $i + $stepValue) { // $iterationData['isFirst'] = $arguments['start'] === $i; // $iterationData['isLast'] = $i === $iterationData['total'] + $stepValue; $iterationData['index'] = $i; $iterationData['isEven'] = ($i + 1) % 2 === 0; $iterationData['isOdd'] = !$iterationData['isEven']; $templateVariableContainer->add($arguments['iterator'], $iterationData); $output .= $renderChildrenClosure(); $templateVariableContainer->remove($arguments['iterator']); } return $output; } private static function compareGreater($left, $right) { return $left >= $right; } private static function compareLesser($left, $right) { return $left <= $right; } } 流体: {namespace wow=Vendor\Ext\ViewHelpers} <wow:loop start="1" end="53" iterator="iterator"> {iterator.index} </wow:loop>
我正在使用Extbase和fluid_styled_content。 我正在开发一个具有以下要求的 Extbase 插件:如果满足特定条件(取决于 URL 查询参数),则不应出现任何情况
我使用的是旧版本的TYPO3(9.5)。我正在升级到较新的版本 10-12。 我正在努力使用此代码片段来升级 TEMPLATE=file 部分。 我知道 TEMPLATE=file 不再支持...
Typo3 Extbase - 在哪些情况下对象是瞬态实体?为什么我的实体对象没有更新而是重新创建了?
我提前提出的问题: Extbase 如何决定给定的对象应该是瞬态实体还是修改/持久实体? 是否有关于 Extbase 如何映射的任何类型的文档(您会...
如何在StandaloneView中渲染INT_SCRIPT?
我正在使用 cObject ViewHelper 在独立视图中渲染 TypoScript 对象。该 TS 对象当前从其他页面获取 tt_content。但结果有 INT_SCRIPT 标记,而不是...
我目前正在将 TYPO3 v9 升级到 v11。在那里,我将表格内容元素与标签结合使用。例如。像这样的东西: 一些带有 外部链接&...
我在默认图像内容元素中使用 webp 图像。 webp 图像已启用: $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] .= ',webp'; 但在前端,渲染的是 png,而不是...
无法使openmodelica的CurvedBend组件正常工作
我正在尝试使用 Modelica.Fluid.Fittings.Bends.CurvedBend 标准库中的组件 CurvedBend。我不知道如何指定它的几何形状。我尝试使用 curveBend(重新声明包 M...
TYPO3 8.7.2-8.7.3 和 Fluidpages 空白页
从 TYPO3 8.7.1 更新到 8.7.2(8.7.3) 后,前端只是空白页面 - 没有呈现任何内容。全部为空、等。还更新到最后的 FLUX、FLUID、fluidpages、fluidcontent...
所以我目前正在将 TYPO3 网站从 v11 更新到 v12,我遇到了一个似乎无法解决的问题。在我的流体模板中,我使用 AJAX 生成过滤器表单。为此,我分配...
在“文件列表”元素的模板中,我想检索为每个文件设置的类别。 所以我有一个像这样的额外数据处理器: tt_content.uploads.dataProcessing.10 { 数据处理...
如何将用户组访问字段或选项卡添加到 TYPO3 中的 FAL 对象?
我正在为“文件链接”元素制作自定义模板。 在其中,我想禁用某些文件的下载,直到前端用户登录。 所以我的问题是带有 Fro 的“访问”选项卡...
在 TYPO3 11.5 中使用 Viewhelper 在 Fluid 中输出页面类别
我正在为我们的网站创建一个小新闻页面,其中包含一个使用菜单数组获取子页面的内容元素。因此,我为每篇文章分配了一个类别。但我开始
我有一个容器实现这样的孩子: {child.renderedContent -> f:format.ra...
我想在 Modelica 中模拟封闭圆形管道中的水循环,但我见过的所有模型都需要边界。 我可以做类似的东西吗?在这里输入图片描述 更新...
我怎样才能在typo3中的flexform中添加html内容元素。我已经尝试过 ...
我有一个产品填充一个罐子。当我们停止灌装的时候,罐体需要沉淀一定的时间(固体颗粒沉淀出来,平静下来回去测量,认证产品)......
我想用GIFBUILDER来制作一个有覆盖的图像。因此,图像应该通过FLUID来传递。这是我目前所拥有的。FLUID ...
究竟什么方程是由python fluidsim(面向对象的CDF求解器)求解的?
我有一个关于fluidsim python包的问题。我想使用fluidsim程序进行研究。在阅读了文档后,不清楚fluidsim到底是什么方程...。