blob: 5acc6fd9d00fb08b83c8c80370a61173f9bf5368 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
<?php
/**
* @license GPL2 or any later version
*
* @property string $id alias column for question_id
* @property string $question_id database column
* @property string $questionnaire_id database column
* @property string $questiontype database column
* @property string|null $internal_name database column
* @property JSONArrayObject $questiondata database column
* @property int $position database column
* @property int $chdate database column
* @property int $mkdate database column
* @property SimpleORMapCollection<QuestionnaireAnswer> $answers has_many QuestionnaireAnswer
* @property Questionnaire $questionnaire belongs_to Questionnaire
*/
class QuestionnaireInfo extends QuestionnaireQuestion implements QuestionType
{
public static function isDesignElement()
{
return true;
}
public static function getIcon(bool $active = false) : Icon
{
return Icon::create(static::getIconShape(), $active ? 'clickable' : 'info');
}
/**
* Returns the shape of the icon of this QuestionType
* @return string
*/
public static function getIconShape()
{
return 'question-info';
}
public static function getName()
{
return _('Information');
}
static public function getEditingComponent()
{
return ['QuestionnaireInfoEdit', ''];
}
static public function getAnsweringComponent()
{
return ['QuestionnaireInfoAnswer', ''];
}
public function beforeStoringQuestiondata($questiondata)
{
$questiondata['description'] = \Studip\Markup::markAsHtml(
\Studip\Markup::purifyHtml($questiondata['description'])
);
return $questiondata;
}
public function getDisplayTemplate()
{
$factory = new Flexi\Factory(realpath(__DIR__.'/../../app/views'));
$template = $factory->open('questionnaire/question_types/info/info');
$template->set_attribute('vote', $this);
return $template;
}
public function createAnswer()
{
return $this->getMyAnswer();
}
public function getUserIdsOfFilteredAnswer($answer_option)
{
return [];
}
public function getResultTemplate($only_user_ids = null)
{
$factory = new Flexi\Factory(realpath(__DIR__.'/../../app/views'));
$template = $factory->open('questionnaire/question_types/info/info');
$template->set_attribute('vote', $this);
return $template;
}
public function getResultArray()
{
return [];
}
/**
* Return whether a given url is valid.
* @return bool
*/
public function hasValidURL(): bool
{
return !empty($this->questiondata['url'])
&& trim($this->questiondata['url'])
&& filter_var($this->questiondata['url'], FILTER_VALIDATE_URL);
}
}
|