TYPO3 对我来说有点新,但我尝试(需要)实现的是一个没有表单的多步骤向导,只有几个按钮,这些按钮导致其他按钮,然后导致特定页面。它应该包含一个后退按钮和一个步骤指示器。
我第一次开始使用 html 和 vanilla JS,但由于向导应该支持多语言,所以我有点困惑。使用自己的扩展可以更好地完成吗?将控制器与流体一起使用吗?
您能给我一些关于如何以良好的 TYPO3 方式解决问题的建议吗?
我尝试使用普通 JS 和许多 if-else 条件。如果单击了button1,则将其样式设置为none;并设置button2的样式为block;等等
我尝试使用控制器将所有向导数据传递到视图,使用流体迭代并生成按钮。
但似乎没有什么是“好的”解决方案。这一切最终都以一堆枯燥和 hacky 的代码告终。
https://extensions.typo3.org/extension/bootstrap_package 以这些包为基础,您可以轻松实现如下所示的功能:
https://getbootstrap.com/docs/5.0/components/navs-tabs/#javascript-behaviorTYPO3 中有一些元素被称为“向导”。但这是获取一些信息以填写正常后端表单字段的表单。这与你想要的前端和向导无关。
对于您的解决方案,有必要分析您的需求。
第一:决策树是否已修复或者有时可能会发生变化?
第二:你有多少个决策层?你有多少个端点?
可以对小型修复树进行硬编码。
如果您期望更改或有很多级别,那么最好有一个递归调用的灵活解决方案。
这可能包括一个分层数据结构来表示决策,直到您获得带有最终页面 URL 的端点。
关于决策数量问题的答案可能会改变实施:
如果您只有几个决定,所有数据可能都存储在初始页面中,并且 javascript 仅更改元素的可见性或内容。
如果您有大量数据,您可能会考虑使用 AJAX 从服务器获取一小部分数据以供下一步决策。重复直到到达带有最终网址的终点。
总体来说:
有一个类似于以下内容的数据结构:
ID
title/question
option1-text
option1-url / next node-ID
option2-text
option2-url / next node-ID
: