4 include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
29 $this->ctrl = $DIC->ctrl();
30 $this->lng = $DIC->language();
32 $lng = $DIC->language();
34 $this->
object = $a_survey_obj;
35 $this->read_only = (bool) $a_read_only;
37 parent::__construct($a_parent_obj, $a_parent_cmd);
39 $this->
setId(
"il_svy_qst");
44 if (!$this->read_only) {
46 if (!array_key_exists(
"move_questions",
$_SESSION) ||
47 $_SESSION[
"move_questions_survey_id"] != $this->object->getId()) {
73 if (!$this->read_only) {
81 $this->
setRowTemplate(
"tpl.il_svy_svy_question_table.html",
"Modules/Survey");
96 $survey_questions = $this->
object->getSurveyQuestions();
97 if (count($survey_questions) > 0) {
98 include_once
"./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
101 $questionpools = $this->
object->getQuestionpoolTitles(
true);
103 $table_data = array();
104 $last_questionblock_id = $position = $block_position = 0;
105 foreach ($survey_questions as $question_id =>
$data) {
107 if (
$data[
"questionblock_id"] > 0 &&
108 $data[
"questionblock_id"] != $last_questionblock_id) {
109 $id =
"qb_" .
$data[
"questionblock_id"];
111 $table_data[
$id] = array(
"id" =>
$id,
113 "title" =>
$data[
"questionblock_title"]);
115 if (!$this->read_only) {
117 if (
sizeof($survey_questions) > 1) {
119 $table_data[
$id][
"position"] = $position;
122 $ilCtrl->setParameter($this->parent_obj,
"bl_id",
$data[
"questionblock_id"]);
123 $table_data[
$id][
"url"] =
$ilCtrl->getLinkTarget($this->parent_obj,
"editQuestionblock");
124 $ilCtrl->setParameter($this->parent_obj,
"bl_id",
"");
134 $table_data[
$id] = array(
"id" =>
$id,
135 "type" =>
"question",
136 "heading" =>
$data[
"heading"],
137 "title" =>
$data[
"title"],
138 "description" =>
$data[
"description"],
139 "author" =>
$data[
"author"],
140 "block_id" =>
$data[
"questionblock_id"],
141 "obligatory" => (
bool)
$data[
"obligatory"]);
144 foreach ($questiontypes as $trans => $typedata) {
145 if (strcmp($typedata[
"type_tag"], $data[
"type_tag"]) == 0) {
146 $table_data[
$id][
"question_type"] = $trans;
151 if ($data[
"original_id"]) {
153 if (isset($questionpools[$original_fi])) {
154 $table_data[
$id][
"pool"] = $questionpools[$original_fi];
157 $table_data[
$id][
"pool"] = $this->lng->txt(
"status_no_permission");
161 if (!$this->read_only) {
162 if ($data[
"obj_fi"] > 0) {
164 $q_gui = $data[
"type_tag"] .
"GUI";
165 $ilCtrl->setParameterByClass($q_gui,
"q_id",
$id);
166 $table_data[
$id][
"url"] =
$ilCtrl->getLinkTargetByClass($q_gui,
"editQuestion") .
167 $ilCtrl->setParameterByClass($q_gui,
"q_id",
"");
171 if (
sizeof($survey_questions) > 1) {
172 if (!$data[
"questionblock_id"]) {
174 $table_data[
$id][
"position"] = $position;
176 $block_position += 10;
177 $table_data[
$id][
"position"] = $block_position;
182 $last_questionblock_id = $data[
"questionblock_id"];
199 switch ($a_set[
"type"]) {
201 if (!$this->read_only) {
203 $this->tpl->setCurrentBlock(
"checkable");
204 $this->tpl->setVariable(
"QUESTION_ID", $a_set[
"id"]);
205 $this->tpl->parseCurrentBlock();
208 if ($a_set[
"position"]) {
209 $this->tpl->setCurrentBlock(
"order");
210 $this->tpl->setVariable(
"ORDER_NAME",
"order[" . $a_set[
"id"] .
"]");
211 $this->tpl->setVariable(
"ORDER_VALUE", $a_set[
"position"]);
212 $this->tpl->parseCurrentBlock();
216 $this->tpl->setVariable(
"TYPE",
$lng->txt(
"questionblock"));
220 $this->tpl->setVariable(
"DESCRIPTION", $a_set[
"description"]);
221 $this->tpl->setVariable(
"TYPE", $a_set[
"question_type"]);
222 $this->tpl->setVariable(
"AUTHOR", $a_set[
"author"]);
223 $this->tpl->setVariable(
"POOL", $a_set[
"pool"]);
225 if ($a_set[
"heading"]) {
226 $this->tpl->setCurrentBlock(
"heading");
227 $this->tpl->setVariable(
"TXT_HEADING", $a_set[
"heading"]);
228 $this->tpl->parseCurrentBlock();
231 if ($a_set[
"block_id"]) {
232 $this->tpl->setVariable(
"TITLE_INDENT",
" style=\"padding-left:30px\"");
235 if (!$this->read_only) {
237 $this->tpl->setCurrentBlock(
"checkable");
238 $this->tpl->setVariable(
"QUESTION_ID", $a_set[
"id"]);
239 $this->tpl->parseCurrentBlock();
241 if ($a_set[
"block_id"]) {
242 $this->tpl->setVariable(
"CHECKABLE_INDENT",
" style=\"padding-left:30px\"");
246 if ($a_set[
"position"]) {
247 $this->tpl->setCurrentBlock(
"order");
248 if (!$a_set[
"block_id"]) {
249 $this->tpl->setVariable(
"ORDER_NAME",
"order[q_" . $a_set[
"id"] .
"]");
251 $this->tpl->setVariable(
"ORDER_NAME",
"block_order[" . $a_set[
"block_id"] .
"][" . $a_set[
"id"] .
"]");
253 $this->tpl->setVariable(
"ORDER_VALUE", $a_set[
"position"]);
254 $this->tpl->parseCurrentBlock();
255 if ($a_set[
"block_id"]) {
256 $this->tpl->setVariable(
"ORDER_INDENT",
" style=\"padding-left:30px\"");
261 $checked = $a_set[
"obligatory"] ?
" checked=\"checked\"" :
"";
262 $obligatory =
"<input type=\"checkbox\" name=\"obligatory_" .
263 $a_set[
"id"] .
"\" value=\"1\"" . $checked .
" />";
264 } elseif ($a_set[
"obligatory"]) {
266 "\" alt=\"" .
$lng->txt(
"question_obligatory") .
267 "\" title=\"" .
$lng->txt(
"question_obligatory") .
"\" />";
269 $this->tpl->setVariable(
"OBLIGATORY", $obligatory);
273 if (!$this->read_only) {
275 $this->tpl->setCurrentBlock(
"checkable");
276 $this->tpl->setVariable(
"QUESTION_ID", $a_set[
"id"]);
277 $this->tpl->parseCurrentBlock();
278 if ($a_set[
"in_block"]) {
279 $this->tpl->setVariable(
"CHECKABLE_INDENT",
" style=\"padding-left:30px\"");
280 $this->tpl->setVariable(
"TITLE_INDENT",
" style=\"padding-left:30px\"");
284 $this->tpl->setVariable(
"TYPE",
$lng->txt(
"heading"));
288 if (!$this->read_only) {
289 $this->tpl->setCurrentBlock(
"actions");
291 $ilCtrl->setParameter($this->parent_obj,
"q_id", $a_set[
"id"]);
293 include_once
"Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php";
295 $list->setId($a_set[
"id"]);
296 $list->setListTitle(
$lng->txt(
"actions"));
298 $list->addItem(
$lng->txt(
"edit"),
"", $a_set[
"url"]);
301 if ($a_set[
"heading"]) {
303 $lng->txt(
"survey_edit_heading"),
305 $ilCtrl->getLinkTarget($this->parent_obj,
"editheading")
309 $lng->txt(
"survey_delete_heading"),
311 $ilCtrl->getLinkTarget($this->parent_obj,
"removeheading")
313 } elseif ($a_set[
"type"] ==
"question") {
315 $lng->txt(
"add_heading"),
317 $ilCtrl->getLinkTarget($this->parent_obj,
"addHeading")
321 $this->tpl->setVariable(
"ACTION",
$list->getHTML());
323 $ilCtrl->setParameter($this->parent_obj,
"q_id",
"");
325 $this->tpl->parseCurrentBlock();
329 $this->tpl->setCurrentBlock(
"title_edit");
330 $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
331 $this->tpl->setVariable(
"URL_TITLE", $a_set[
"url"]);
332 $this->tpl->parseCurrentBlock();
334 $this->tpl->setCurrentBlock(
"title_static");
335 $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
336 $this->tpl->parseCurrentBlock();
339 $this->tpl->setCurrentBlock(
"title_static");
340 $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
341 $this->tpl->parseCurrentBlock();
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
if(isset($_REQUEST['delete'])) $list
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
if(!array_key_exists('StateId', $_REQUEST)) $id
static lookupObjFi($a_qid)
Lookip obj fi.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setSelectAllCheckbox($a_select_all_checkbox, $a_select_all_on_top=false)
Set the name of the checkbox that should be toggled with a select all button.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
addMultiCommand($a_cmd, $a_text)
Add Command button.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Survey question table GUI class.
importData()
Import data from DB.
__construct($a_parent_obj, $a_parent_cmd, ilObjSurvey $a_survey_obj, $a_read_only=false)
Constructor.
User interface class for advanced drop-down selection lists.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
static _getQuestiontypes()
Creates a list of all available question types.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
fillRow($a_set)
Fill table row.
setLimit($a_limit=0, $a_default_limit=0)