我使用TYPO3系统扩展“form”,想要使用GET参数预填一个输入字段。
这个 TYPO3 8.7. Form prefill input field 是有效的,但是只有在no_cache=1的情况下。是否有其他解决方案而不必禁用整个缓存?
谢谢 大卫
我使用TYPO3系统扩展“form”,想要使用GET参数预填一个输入字段。
这个 TYPO3 8.7. Form prefill input field 是有效的,但是只有在no_cache=1的情况下。是否有其他解决方案而不必禁用整个缓存?
谢谢 大卫
是的,你可以,但你需要创建钩子。
这在文档中有描述。
例如,钩子
/**
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
* @return void
*/
public function initializeFormElement(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
{
if ($renderable->getUniqueIdentifier() === 'contactForm-text-1') {
$renderable->setDefaultValue('foo');
}
}
然后连接钩子
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'][<useATimestampAsKeyPlease>]
= \VENDOR\YourNamespace\YourClass::class;
lib.content = COA
lib.content{
10 < styles.content.get
}
[page["uid"] == 512]
lib.content = COA_INT
[global]
config.no_cache = 1
禁用缓存,这样不是更容易吗? - schnere/**
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
* @return void
*/
public function afterBuildingFinished(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
{
if (method_exists($renderable, 'getUniqueIdentifier') && $renderable->getUniqueIdentifier() === 'contactForm-text-1') {
$renderable->setDefaultValue('Value');
}
}
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterBuildingFinished'][<useATimestampAsKeyPlease>]
= \VENDOR\YourNamespace\YourClass::class;