TYPO3有很好的模拟日期"管理面板中的选项。
但是这并没有像
那样传播到流体{f:format.date(date: 'today' format: 'Y-m-d')}
显然,这是php在工作,而不是TYPO3 API。
是否有简单的可能性来模拟虚拟"今天"约会并将其传递给流体?
答案 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
。
或者,打开一个流体特征请求以支持模拟时间。