Question plugins

From LimeSurvey Manual

Question object considerations.

Questions are plugins.

   - No difference between core and thirdparty questions

   - Questions can include views.

- MM: All question related texts can make use of placeholders (EM).

Questions can have database columns.

   - A question may define a column type for storing its answer.

Questions may have subquestions.

   - A question may have subquestions; these are Question objects, possible of another type.

   - Questions are rendered recursively; a parent question is responsible for telling its children when to render.

   - Answercolumns are discovered recursively; a parent question is responsible for getting column meta data (upon survey activation) from its children.

Questions may have AnswerSets.

   - Multiple questions may share the same AnswerSet.

   - An answer set is a numerically indexed array; assigning each text option an numeric value.

   - Texts inside answer sets can be localized.

Questions belong to 1 Category.

interface iQuestionPlugin {