ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Survey\Page\PageRenderer Class Reference

Survey page renderer. More...

+ Collaboration diagram for ILIAS\Survey\Page\PageRenderer:

Public Member Functions

 __construct (\ilObjSurvey $survey, array $page_data, array $working_data=[], array $errors=[], int $question_title_mode=1)
 
 render ()
 

Protected Member Functions

 compressQuestion (?array $previous_page, array $page)
 

Protected Attributes

int $question_title_mode
 
ilCtrl $ctrl
 
ilLanguage $lng
 
array $page_data
 
array $working_data = []
 
array $errors = []
 
ilObjSurvey $survey
 

Detailed Description

Survey page renderer.

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 25 of file class.PageRenderer.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Survey\Page\PageRenderer::__construct ( \ilObjSurvey  $survey,
array  $page_data,
array  $working_data = [],
array  $errors = [],
int  $question_title_mode = 1 
)
Parameters
array$page_dataas returned by ilObjSurvey->getNextPage()
Todo:
use data objects

Definition at line 39 of file class.PageRenderer.php.

45 {
46 global $DIC;
47
48 $this->ctrl = $DIC->ctrl();
49 $this->lng = $DIC->language();
50 $this->survey = $survey;
51 $this->page_data = $page_data;
52 $this->working_data = $working_data;
53 $this->errors = $errors;
54 $this->question_title_mode = $question_title_mode;
55 }
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\Survey\Page\PageRenderer\$errors, ILIAS\Survey\Page\PageRenderer\$page_data, ILIAS\Survey\Page\PageRenderer\$question_title_mode, ILIAS\Survey\Page\PageRenderer\$survey, ILIAS\Survey\Page\PageRenderer\$working_data, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

Member Function Documentation

◆ compressQuestion()

ILIAS\Survey\Page\PageRenderer::compressQuestion ( ?array  $previous_page,
array  $page 
)
protected

Definition at line 156 of file class.PageRenderer.php.

159 : bool {
160 if (is_null($previous_page)) {
161 return false;
162 }
163
164 if ($previous_page["type_tag"] === $page["type_tag"] &&
165 $page["type_tag"] === "SurveySingleChoiceQuestion") {
166 if (\SurveySingleChoiceQuestion::compressable($previous_page["question_id"], $page["question_id"])) {
167 return true;
168 }
169 }
170
171 return false;
172 }

Referenced by ILIAS\Survey\Page\PageRenderer\render().

+ Here is the caller graph for this function:

◆ render()

ILIAS\Survey\Page\PageRenderer::render ( )

Definition at line 57 of file class.PageRenderer.php.

57 : string
58 {
59 $page = $this->page_data;
60
61 $required = false;
62 $stpl = new \ilTemplate("tpl.page.html", true, true, "components/ILIAS/Survey/Page");
63
64 // question block title
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 // dealing with compressed view
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;
81 if ($compress_view && $this->compressQuestion($previous_page, $data)) {
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 // questions
92 foreach ($page as $data) {
93 // question heading
94 if ($data["heading"]) {
95 $stpl->setCurrentBlock("heading");
96 $stpl->setVariable("QUESTION_HEADING", $data["heading"]);
97 $stpl->parseCurrentBlock();
98 }
99 $stpl->setCurrentBlock("survey_content");
100 // get question gui
101 $question_gui = $this->survey->getQuestionGUI($data["type_tag"], $data["question_id"]);
102
103 // set obligatory flag
104 $question_gui->object->setObligatory($data["obligatory"]);
105
106 // get show questiontext flag
107 $show_questiontext = ($data["questionblock_show_questiontext"]) ? 1 : 0;
108
109 // question title mode
111 if (!$this->survey->getShowQuestionTitles() || $data["compressed_first"]) {
113 }
114 $working_data = $this->working_data[$data["question_id"]] ?? null;
115 $error = $this->errors[$data["question_id"]] ?? "";
116
117 // get question output
118 // getWorkingData($qid)
119 // showQuestionTitle()
120 $question_output = $question_gui->getWorkingForm(
123 $show_questiontext,
124 $error,
125 $this->survey->getSurveyId(),
126 $compress_view
127 );
128
129 // tweak compressed view
130 if ($data["compressed"]) {
131 //$question_output = '<div class="il-svy-qst-compressed">' . $question_output . '</div>';
132
133 $stpl->setVariable("CMPR_CLASS", "il-svy-qst-compressed");
134 }
135 $stpl->setVariable("QUESTION_OUTPUT", $question_output);
136
137 // update qid ctrl parameter
138 $this->ctrl->setParameter($this, "qid", $data["question_id"]);
139
140 if ($data["obligatory"]) {
141 $required = true;
142 }
143 $stpl->parseCurrentBlock();
144 }
145
146 // required text action
147 if ($required) {
148 $stpl->setCurrentBlock("required");
149 $stpl->setVariable("TEXT_REQUIRED", $this->lng->txt("required_field"));
150 $stpl->parseCurrentBlock();
151 }
152
153 return $stpl->get();
154 }
compressQuestion(?array $previous_page, array $page)
ilErrorHandling $error
Definition: class.ilias.php:69

References $data, ILIAS\$error, ILIAS\Survey\Page\PageRenderer\$page_data, ILIAS\Survey\Page\PageRenderer\$question_title_mode, ILIAS\Survey\Page\PageRenderer\$working_data, ILIAS\Survey\Page\PageRenderer\compressQuestion(), ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

ilCtrl ILIAS\Survey\Page\PageRenderer::$ctrl
protected

Definition at line 28 of file class.PageRenderer.php.

◆ $errors

array ILIAS\Survey\Page\PageRenderer::$errors = []
protected

Definition at line 32 of file class.PageRenderer.php.

Referenced by ILIAS\Survey\Page\PageRenderer\__construct().

◆ $lng

ilLanguage ILIAS\Survey\Page\PageRenderer::$lng
protected

Definition at line 29 of file class.PageRenderer.php.

◆ $page_data

array ILIAS\Survey\Page\PageRenderer::$page_data
protected

◆ $question_title_mode

int ILIAS\Survey\Page\PageRenderer::$question_title_mode
protected

◆ $survey

ilObjSurvey ILIAS\Survey\Page\PageRenderer::$survey
protected

Definition at line 33 of file class.PageRenderer.php.

Referenced by ILIAS\Survey\Page\PageRenderer\__construct().

◆ $working_data

array ILIAS\Survey\Page\PageRenderer::$working_data = []
protected

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