Interface QuestionType This is a question-object with a specific type. Note that an object of class QuestionType is also always derived from SORM class 'QuestionnairQuestion'. So additionally to all methods here, the QuestionType object also knows about the data-attribute from QuestionnaireQuestion and what the Questionnaire-object is by calling $this->questionnaire.
◆ createAnswer()
Uses current user and Request-variables to create an answer for the question. Return this answer. It does not necessarily be stored to the database!
- Returns
- QuestionnaireAnswer or derived
Implemented in Test, and Vote.
◆ createDataFromRequest()
createDataFromRequest |
( |
| ) |
|
Called right before the questionnaire and the question is stored or when the user needs to refresh the editing-window, This method is called to store the request-values into $this['data']. You get them from the Request-class as usual.
Implemented in Test, and Vote.
◆ getDisplayTemplate()
Display the question to the user. This template will be embedded into a html <form>-tag. Maybe more questions will appear in that form and maybe more questions of the same type. This is important to know, so that you prefix all the input-fields.
Wrong: <input type="checkbox" name="anser_a" value="1" <?= Request::get("anser_a") ? " checked" : "" ?>">
Right: <input type="checkbox" name="answer[<?= $this->getId() ?>][a]" value="1" <?= Request::getArray("answer")[$this->getId()]['a'] ? " checked" : "" ?>">
Try to prefix all your input variables at least with the id of the question, so that they will never conflict with other variables.
- Returns
- Flexi_Template
Implemented in Test, and Vote.
◆ getEditingTemplate()
Returns a template that is used to edit or create the question. Note that $this['data'] might already be filled with data, when the user is editing an existing question.
- Returns
- Flexi_Template
Implemented in Test, and Vote.
◆ getIcon()
Returns a specific icon for this type of question. Note this is not bound to the object but called staticly.
- Returns
- Icon the specific icon for this type of question
Implemented in Test, and Vote.
◆ getName()
Returns the name of the type of question like "Frage" or "Test" or "Dateiablage" This name is not showed to the participant of the questionnaire, but to the editor. It might get displayed like "add another Frage to questionnaire", where 'Frage' is the name of the type.
- Returns
- string : the name of this type of question.
Implemented in Test, and Vote.
◆ getResultArray()
This method is called to generate a csv-export from a whole questionnaire. The returned array looks like this: array( 'Answer 1' => array('e7a0a84b161f3e8c09b4a0a2e8a58147' => "1", '7e81ec247c151c02ffd479511e24cc03' => "0"), 'Answer 2' => array('e7a0a84b161f3e8c09b4a0a2e8a58147' => "1", '7e81ec247c151c02ffd479511e24cc03' => "1") ) This is a two-dimensional array. The first array provides a set of answers. The values of this array are themselves arrays with the user_ids as indexes and the user's answers as the values. With this construction you can evaluate single-choice tests as well as multiple-choice tests.
- Returns
- array : indexed with user_id and valued with the value of the answer. If your QuestionType allows more than one value (i.e. multiple-choice) you might need to serialize it.
Implemented in Test, and Vote.
◆ getResultTemplate()
getResultTemplate |
( |
|
$only_user_ids = null | ) |
|
Returns a template with the results of this question.
- Parameters
-
$only_user_ids | : array array of user_ids that the results should be restricted to. this is used to show only a subset of results to the user for visible evaluation of the results. If the questionnaire is anonymous just do nothing. |
- Returns
- Flexi_Template
Implemented in Test, and Vote.
◆ onEnding()
A method to be called after the questionnaire has ended.
- Returns
- void
The documentation for this interface was generated from the following file: