4include_once(
"./Services/Table/classes/class.ilTable2GUI.php");
 
   29                $this->
object = $a_survey_obj;
 
   30                $this->read_only = (bool)$a_read_only;
 
   32                parent::__construct($a_parent_obj, $a_parent_cmd);
 
   34                $this->
setId(
"il_svy_qst");
 
   42                        if(!array_key_exists(
"move_questions", 
$_SESSION))
 
   44                                $this->
addMultiCommand(
"createQuestionblock", $lng->txt(
"define_questionblock"));
 
   46                                $this->
addMultiCommand(
"removeQuestions", $lng->txt(
"remove_question"));
 
   48                                $this->
addMultiCommand(
"copyQuestionsToPool", $lng->txt(
"survey_copy_questions_to_pool"));
 
   52                                $this->
addMultiCommand(
"insertQuestionsBefore", $lng->txt(
"insert_before"));
 
   53                                $this->
addMultiCommand(
"insertQuestionsAfter", $lng->txt(
"insert_after"));
 
   57                        $this->
addCommandButton(
"saveObligatory", $lng->txt(
"save_obligatory_state"));
 
   61                        $this->
addColumn($lng->txt(
"survey_order"), 
"");
 
   65                $this->
addColumn($lng->txt(
"obligatory"), 
"");
 
   66                $this->
addColumn($lng->txt(
"description"), 
"");
 
   68                $this->
addColumn($lng->txt(
"author"), 
"");
 
   69                $this->
addColumn($lng->txt(
"survey_question_pool"), 
"");
 
   80                $this->
setRowTemplate(
"tpl.il_svy_svy_question_table.html", 
"Modules/Survey");
 
   94                $survey_questions = $this->
object->getSurveyQuestions();
 
   95                if (count($survey_questions) > 0)
 
   97                        include_once 
"./Modules/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPool.php";
 
  100                        $questionpools = $this->
object->getQuestionpoolTitles(
true);
 
  102                        $table_data = array();
 
  103                        $last_questionblock_id = $position = $block_position = 0;
 
  104                        foreach ($survey_questions as $question_id => 
$data)
 
  107                                if (
$data[
"questionblock_id"] > 0 &&
 
  108                                        $data[
"questionblock_id"] != $last_questionblock_id)
 
  110                                        $id = 
"qb_" . 
$data[
"questionblock_id"];
 
  112                                        $table_data[$id] = array(
"id" => $id,
 
  114                                                "title" => 
$data[
"questionblock_title"]);
 
  116                                        if (!$this->read_only)
 
  119                                                if(
sizeof($survey_questions) > 1)
 
  122                                                        $table_data[$id][
"position"] = $position;
 
  125                                                $ilCtrl->setParameter($this->parent_obj, 
"bl_id", 
$data[
"questionblock_id"]);
 
  126                                                $table_data[$id][
"url"] = 
$ilCtrl->getLinkTarget($this->parent_obj, 
"editQuestionblock");
 
  127                                                $ilCtrl->setParameter($this->parent_obj, 
"bl_id", 
"");
 
  135                                $id = 
$data[
"question_id"];
 
  137                                $table_data[$id] = array(
"id" => $id,
 
  138                                        "type" => 
"question",
 
  139                                        "heading" => 
$data[
"heading"],
 
  140                                        "title" => 
$data[
"title"],
 
  141                                        "description" => 
$data[
"description"],
 
  142                                        "author" => 
$data[
"author"],
 
  143                                        "block_id" => 
$data[
"questionblock_id"],
 
  144                                        "obligatory" => (
bool)
$data[
"obligatory"]);
 
  147                                foreach ($questiontypes as $trans => $typedata)
 
  149                                        if (strcmp($typedata[
"type_tag"], 
$data[
"type_tag"]) == 0)
 
  151                                                $table_data[$id][
"question_type"] = $trans;
 
  156                                if(
$data[
"original_id"])
 
  159                                        if(isset($questionpools[$original_fi]))
 
  161                                                $table_data[$id][
"pool"] = $questionpools[$original_fi];
 
  166                                                $table_data[$id][
"pool"] = $this->lng->txt(
"status_no_permission");
 
  170                                if (!$this->read_only)
 
  172                                        if (
$data[
"obj_fi"] > 0)
 
  175                                                $q_gui = 
$data[
"type_tag"].
"GUI";                                               
 
  176                                                $ilCtrl->setParameterByClass($q_gui, 
"q_id", $id);
 
  177                                                $table_data[$id][
"url"] = 
$ilCtrl->getLinkTargetByClass($q_gui, 
"editQuestion") .
 
  178                                                $ilCtrl->setParameterByClass($q_gui, 
"q_id", 
"");
 
  182                                        if(
sizeof($survey_questions) > 1)
 
  184                                                if (!
$data[
"questionblock_id"])
 
  187                                                        $table_data[$id][
"position"] = $position;
 
  191                                                        $block_position += 10;
 
  192                                                        $table_data[$id][
"position"] = $block_position;
 
  197                                $last_questionblock_id = 
$data[
"questionblock_id"];
 
  213                switch($a_set[
"type"])
 
  216                                if(!$this->read_only)
 
  219                                        $this->tpl->setCurrentBlock(
"checkable");
 
  220                                        $this->tpl->setVariable(
"QUESTION_ID", $a_set[
"id"]);
 
  221                                        $this->tpl->parseCurrentBlock();
 
  224                                        if($a_set[
"position"])
 
  226                                                $this->tpl->setCurrentBlock(
"order");
 
  227                                                $this->tpl->setVariable(
"ORDER_NAME", 
"order[".$a_set[
"id"].
"]");
 
  228                                                $this->tpl->setVariable(
"ORDER_VALUE", $a_set[
"position"]);
 
  229                                                $this->tpl->parseCurrentBlock();
 
  233                                $this->tpl->setVariable(
"TYPE", 
$lng->txt(
"questionblock"));
 
  237                                $this->tpl->setVariable(
"DESCRIPTION", $a_set[
"description"]);
 
  238                                $this->tpl->setVariable(
"TYPE", $a_set[
"question_type"]);
 
  239                                $this->tpl->setVariable(
"AUTHOR", $a_set[
"author"]);
 
  240                                $this->tpl->setVariable(
"POOL", $a_set[
"pool"]);
 
  242                                if($a_set[
"heading"])
 
  244                                        $this->tpl->setCurrentBlock(
"heading");
 
  245                                        $this->tpl->setVariable(
"TXT_HEADING", $a_set[
"heading"]);
 
  246                                        $this->tpl->parseCurrentBlock();
 
  249                                if($a_set[
"block_id"])
 
  251                                        $this->tpl->setVariable(
"TITLE_INDENT", 
" style=\"padding-left:30px\"");
 
  254                                if(!$this->read_only)
 
  257                                        $this->tpl->setCurrentBlock(
"checkable");
 
  258                                        $this->tpl->setVariable(
"QUESTION_ID", $a_set[
"id"]);
 
  259                                        $this->tpl->parseCurrentBlock();
 
  261                                        if($a_set[
"block_id"])
 
  263                                                $this->tpl->setVariable(
"CHECKABLE_INDENT", 
" style=\"padding-left:30px\"");
 
  267                                        if($a_set[
"position"])
 
  269                                                $this->tpl->setCurrentBlock(
"order");
 
  270                                                if(!$a_set[
"block_id"])
 
  272                                                        $this->tpl->setVariable(
"ORDER_NAME", 
"order[q_".$a_set[
"id"].
"]");
 
  276                                                        $this->tpl->setVariable(
"ORDER_NAME", 
"block_order[".$a_set[
"block_id"].
"][".$a_set[
"id"].
"]");
 
  278                                                $this->tpl->setVariable(
"ORDER_VALUE", $a_set[
"position"]);
 
  279                                                $this->tpl->parseCurrentBlock();
 
  280                                                if($a_set[
"block_id"])
 
  282                                                        $this->tpl->setVariable(
"ORDER_INDENT", 
" style=\"padding-left:30px\"");
 
  287                                        $checked = $a_set[
"obligatory"] ? 
" checked=\"checked\"" : 
"";
 
  288                                        $obligatory = 
"<input type=\"checkbox\" name=\"obligatory_".
 
  289                                                $a_set[
"id"] . 
"\" value=\"1\"".$checked.
" />";
 
  291                                else if($a_set[
"obligatory"])
 
  293                                        $obligatory = 
"<img src=\"".ilUtil::getImagePath(
"obligatory.png", 
"Modules/Survey").
 
  294                                                "\" alt=\"".$lng->txt(
"question_obligatory").
 
  295                                                "\" title=\"".$lng->txt(
"question_obligatory").
"\" />";
 
  297                                $this->tpl->setVariable(
"OBLIGATORY", $obligatory);
 
  301                                if(!$this->read_only)
 
  304                                        $this->tpl->setCurrentBlock(
"checkable");
 
  305                                        $this->tpl->setVariable(
"QUESTION_ID", $a_set[
"id"]);
 
  306                                        $this->tpl->parseCurrentBlock();
 
  307                                        if($a_set[
"in_block"])
 
  309                                                $this->tpl->setVariable(
"CHECKABLE_INDENT", 
" style=\"padding-left:30px\"");
 
  310                                                $this->tpl->setVariable(
"TITLE_INDENT", 
" style=\"padding-left:30px\"");
 
  314                                $this->tpl->setVariable(
"TYPE", 
$lng->txt(
"heading"));
 
  318                if(!$this->read_only)
 
  320                        $this->tpl->setCurrentBlock(
"actions");
 
  322                        $ilCtrl->setParameter($this->parent_obj, 
"q_id", $a_set[
"id"]);
 
  324                        include_once 
"Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php";
 
  326                        $list->setId($a_set[
"id"]);
 
  327                        $list->setListTitle(
$lng->txt(
"actions"));
 
  330                                $list->addItem(
$lng->txt(
"edit"), 
"", $a_set[
"url"]);
 
  333                        if($a_set[
"heading"])
 
  335                                $list->addItem(
$lng->txt(
"survey_edit_heading"), 
"", 
 
  336                                        $ilCtrl->getLinkTarget($this->parent_obj, 
"editheading"));
 
  338                                $list->addItem(
$lng->txt(
"survey_delete_heading"), 
"", 
 
  339                                        $ilCtrl->getLinkTarget($this->parent_obj, 
"removeheading"));
 
  341                        else if($a_set[
"type"] == 
"question")
 
  343                                $list->addItem(
$lng->txt(
"add_heading"), 
"", 
 
  344                                        $ilCtrl->getLinkTarget($this->parent_obj, 
"addHeading"));
 
  347                        $this->tpl->setVariable(
"ACTION", $list->getHTML());
 
  349                        $ilCtrl->setParameter($this->parent_obj, 
"q_id", 
"");                           
 
  351                        $this->tpl->parseCurrentBlock();
 
  356                                $this->tpl->setCurrentBlock(
"title_edit");
 
  357                                $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
 
  358                                $this->tpl->setVariable(
"URL_TITLE", $a_set[
"url"]);
 
  359                                $this->tpl->parseCurrentBlock();        
 
  363                                $this->tpl->setCurrentBlock(
"title_static");
 
  364                                $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
 
  365                                $this->tpl->parseCurrentBlock();
 
  370                        $this->tpl->setCurrentBlock(
"title_static");
 
  371                        $this->tpl->setVariable(
"TITLE", $a_set[
"title"]);
 
  372                        $this->tpl->parseCurrentBlock();
 
An exception for terminatinating execution or to throw for unit testing.
static lookupObjFi($a_qid)
Lookip obj fi.
User interface class for advanced drop-down selection lists.
static _getQuestiontypes()
Creates a list of all available question types.
Survey question table GUI class.
fillRow($a_set)
Fill table row.
importData()
Import data from DB.
__construct($a_parent_obj, $a_parent_cmd, ilObjSurvey $a_survey_obj, $a_read_only=false)
Constructor.
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.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setData($a_data)
set table data @access public
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setLimit($a_limit=0, $a_default_limit=0)
set max.
addMultiCommand($a_cmd, $a_text)
Add Command button.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.