57 : string
58 {
60
61 $required = false;
62 $stpl = new \ilTemplate("tpl.page.html", true, true, "Modules/Survey/Page");
63
64
65 if (count($page) > 1 && $page[0]["questionblock_show_blocktitle"]) {
66 $stpl->setCurrentBlock("questionblock_title");
67 $stpl->setVariable("TEXT_QUESTIONBLOCK_TITLE", $page[0]["questionblock_title"]);
68 $stpl->parseCurrentBlock();
69 }
70
71
72 $compress_view = false;
73 if (count($page) > 1) {
74 $compress_view = $page[0]["questionblock_compress_view"];
75 }
76 $previous_page = null;
77 $previous_key = null;
78 foreach ($page as $k =>
$data) {
79 $page[$k]["compressed"] = false;
80 $page[$k]["compressed_first"] = false;
82 $page[$k]["compressed"] = true;
83 if ($previous_key !== null && $page[$previous_key]["compressed"] == false) {
84 $page[$previous_key]["compressed_first"] = true;
85 }
86 }
87 $previous_key = $k;
88 $previous_page =
$data;
89 }
90
91
92 foreach ($page as
$data) {
93
94
95 if (
$data[
"heading"]) {
96 $stpl->setCurrentBlock("heading");
97 $stpl->setVariable(
"QUESTION_HEADING",
$data[
"heading"]);
98 $stpl->parseCurrentBlock();
99 }
100 $stpl->setCurrentBlock("survey_content");
101
102 $question_gui = $this->survey->getQuestionGUI(
$data[
"type_tag"],
$data[
"question_id"]);
103
104
105 $question_gui->object->setObligatory(
$data[
"obligatory"]);
106
107
108 $show_questiontext = (
$data[
"questionblock_show_questiontext"]) ? 1 : 0;
109
110
112 if (!$this->survey->getShowQuestionTitles() ||
$data[
"compressed_first"]) {
114 }
116 $error = $this->errors[
$data[
"question_id"]] ??
"";
117
118
119
120
121 $question_output = $question_gui->getWorkingForm(
124 $show_questiontext,
126 $this->survey->getSurveyId(),
127 $compress_view
128 );
129
130
131 if (
$data[
"compressed"]) {
132
133
134 $stpl->setVariable("CMPR_CLASS", "il-svy-qst-compressed");
135 }
136 $stpl->setVariable("QUESTION_OUTPUT", $question_output);
137
138
139 $this->
ctrl->setParameter($this,
"qid",
$data[
"question_id"]);
140
141 if (
$data[
"obligatory"]) {
142 $required = true;
143 }
144 $stpl->parseCurrentBlock();
145 }
146
147
148 if ($required) {
149 $stpl->setCurrentBlock("required");
150 $stpl->setVariable(
"TEXT_REQUIRED", $this->
lng->txt(
"required_field"));
151 $stpl->parseCurrentBlock();
152 }
153
154 return $stpl->get();
155 }