Question object types
From LimeSurvey Manual
Question object types is about making questions in LS more object-oriented and modular, and letting users create and upload their own object types.
Basically, every place in the code which is doing a switch on question type should be replaced by a polymorphic call to an object, e.g. $object->renderFrontend();
Use-cases
- Colour picker - user click on a picture with colours, and the position in the picture defines the colour.
Features
TODO
Open issues
- Is array it's own object type, or is it a property in a question? E.g., could we have an array of yes/no questions?
- Cross-cutting concerns: What if the user wants to add a comment field to all questions in the survey?
- Composability: Should it be possible to combine two questions into one?
Implementation
Object hierarchy.
Replace switch-cases in:
- Frontend render (render answers)
- Backend render (edit question settings)
- Statistics
- SQL and database queries, included extra field the question might define
Current implementation in development branch (LS3)
TODO