在Fluid

时间:2017-06-19 10:56:17

标签: php typo3 fluid typo3-6.2.x typo3-7.6.x

TYPO3有很好的模拟日期"管理面板中的选项。

但是这并没有像

那样传播到流体
{f:format.date(date: 'today' format: 'Y-m-d')}

显然,这是php在工作,而不是TYPO3 API。

是否有简单的可能性来模拟虚拟"今天"约会并将其传递给流体?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用typoscript条件来声明设置。

OnRender

然后确保将设置传递给视图。您可以在控制器操作中执行此操作

[yourcondition]
    plugin.tx_your_ext.settings.dateOverride = 2017-11-11 11:11:11
[global]

然后将值传递给viewhelper。您可以使用任何可由DateTime构造函数解释的值。

$this->view->assign('settings', $this->settings);

可能的typoscript条件列表:

https://docs.typo3.org/typo3cms/TyposcriptReference/Conditions/Reference/Index.html

如果您需要更动态地设置日期,可以使用url参数并请求您的页面:

yourpage.com/path/to/your/site?no_cache=1&spoofedDate=2017-11-11T11:11:11Z

如果使用了typo3的模拟日期功能,我猜你可以利用DataSubmissionHook设置值。也许这会给你最大的安慰。

要在您的控制器中访问请求参数:

{f:format.date(date: settings.dateOverride format: 'Y-m-d')}

或者

$this->request->getArgument()

一种奇特的解决方法是重载DateTime对象,因此它尊重模拟日期功能。

答案 1 :(得分:0)

您可以使用安装PHP timecop extension并最初在index.php

中设置日期

或者,打开一个流体特征请求以支持模拟时间。