我需要在表單中放置一個小時選擇,因此我創建了一個自定義視圖幫助器,將分鐘舍入爲5的倍數。在setup.ts中設置爲 typo3流體模板:在視圖中太多條件下的cObject
lib.time = TEXT
lib.time {
data = date:H:i
}
在模板中我調用了cObject;
<nr:time value="{f:cObject(typoscriptObjectPath: 'lib.time')}" />
我試過它也是內聯工作(隨機包裝ViewHelper);
<f:link.action action="form">{nr:time(value: '{f:cObject(typoscriptObjectPath: \'lib.time\')}')}</f:link.action>
現在我得到的地方,我需要它其中有一個條件,在這裏我沒有找到工作......任何語法;
<f:form.textfield property="date" class="date"
value="{f:if(condition: ticket.time, then: '{ticket.time}', else: '{f:cObject(typoscriptObjectPath: \'lib.time\')}')}" />
誰知道一個好的解決辦法,也許我一開始完全錯誤的,也許不需要視圖助手,但我可以在lib直接格式化和操作時間。
PS:這是TimeViewHelper.php:
class TimeViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
/**
* @param string $value
* @return
*/
public function render($value) {
$time = strtotime($value);
$m = date('i', $time);
$f = 5*60; // 5 minutes
$r = $time % $f;
$t = $time + ($f-$r);
$new_time = ($m == 0 || $m % 5 === 0) ? $value : date('H:i', $t);
return $new_time;
}
}
請避免''{ticket.time }''(用TextNodes包裝對象訪問器)。有關更多信息,請參閱https://vimeo.com/167666466。 –