Stud.IP  5.4
QuestionType Interface Reference
Inheritance diagram for QuestionType:
Freetext LikertScale QuestionnaireInfo RangeScale Vote

Public Member Functions

 beforeStoringQuestiondata ($questiondata)
 
 getDisplayTemplate ()
 
 createAnswer ()
 
 getUserIdsOfFilteredAnswer ($answer_option)
 
 getResultTemplate ($only_user_ids=null)
 
 getResultArray ()
 
 onEnding ()
 

Static Public Member Functions

static getIcon (bool $active=false)
 
static getIconShape ()
 
static getName ()
 
static getEditingComponent ()
 

Detailed Description

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.

Member Function Documentation

◆ beforeStoringQuestiondata()

beforeStoringQuestiondata (   $questiondata)

Usually the $questiondata is already in the correct format. But for some question types some data have to be manipulated by for example the HTML-purifier. So this takes the questiondata and changed them before they get stored.

Parameters
$questiondata
Returns
mixed

Implemented in Freetext, LikertScale, Vote, QuestionnaireInfo, and RangeScale.

◆ createAnswer()

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 Freetext, LikertScale, RangeScale, Vote, and QuestionnaireInfo.

◆ getDisplayTemplate()

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 Freetext, LikertScale, RangeScale, Vote, and QuestionnaireInfo.

◆ getEditingComponent()

static getEditingComponent ( )
static

Returns an array with two parts: First one is the name of the component for editing the question. Second one is the import path of the component. Plugins can use this to get their component imported.

Returns
Array

Implemented in Freetext, RangeScale, LikertScale, Vote, and QuestionnaireInfo.

◆ getIcon()

static getIcon ( bool  $active = false)
static

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 Freetext, LikertScale, RangeScale, Vote, and QuestionnaireInfo.

◆ getIconShape()

static getIconShape ( )
static

Returns the shape of the icon that is used in vue.

Returns
string

Implemented in Freetext, LikertScale, RangeScale, Vote, and QuestionnaireInfo.

◆ getName()

static getName ( )
static

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 Freetext, LikertScale, RangeScale, Vote, and QuestionnaireInfo.

◆ getResultArray()

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 Freetext, Vote, LikertScale, RangeScale, and QuestionnaireInfo.

◆ 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 Freetext, and QuestionnaireInfo.

◆ getUserIdsOfFilteredAnswer()

getUserIdsOfFilteredAnswer (   $answer_option)

In the evaluation of the questionnaire you can click on a certain answer and get the evaluation filtered by the the people that have given that answer. This method asks from the question, what user_ids have given the answer_option. Answer option could be anything that this question understands as an answer.

Parameters
$answer_option
Returns
mixed

Implemented in Freetext, Vote, LikertScale, RangeScale, and QuestionnaireInfo.

◆ onEnding()

onEnding ( )

A method to be called after the questionnaire has ended.

Returns
void

Implemented in Freetext.


The documentation for this interface was generated from the following file: