ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilMarkSchemaTableGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once 'Services/Table/classes/class.ilTable2GUI.php';
5 require_once 'Services/Form/classes/class.ilTextInputGUI.php';
6 require_once 'Services/Form/classes/class.ilNumberInputGUI.php';
7 
14 {
18  protected $ctrl;
19 
23  protected $object;
24 
28  protected $is_editable = true;
29 
34  public function __construct($parent, $cmd, $template_context = '', ilMarkSchemaAware $object = null)
35  {
39  global $ilCtrl;
40 
41  $this->object = $object;
42  $this->ctrl = $ilCtrl;
43 
44  $this->is_editable = $this->object->canEditMarks();
45 
46  $this->setId('mark_schema_gui_' . $this->object->getMarkSchemaForeignId());
47  parent::__construct($parent, $cmd);
48 
49  $this->setFormAction($this->ctrl->getFormAction($this->getParentObject(), $cmd));
50  $this->setFormName('form_' . $this->getId());
51 
52  $this->setRowTemplate('tpl.il_as_tst_mark_schema_row.html', 'Modules/Test');
53 
54  $this->setNoEntriesText($this->lng->txt('tst_no_marks_defined'));
55 
56  if ($this->object->canEditMarks()) {
57  $this->addCommandButton('saveMarks', $this->lng->txt('save'));
58  $this->addMultiCommand('deleteMarkSteps', $this->lng->txt('delete'));
59 
60  $this->setSelectAllCheckbox('marks[]');
61  } else {
62  $this->disable('select_all');
63  }
64 
65  $this->setLimit(PHP_INT_MAX);
66 
67  $this->initColumns();
68  $this->initData();
69  }
70 
74  protected function initColumns()
75  {
76  $this->addColumn('', '', '1', true);
77  $this->addColumn($this->lng->txt('tst_mark_short_form'), '');
78  $this->addColumn($this->lng->txt('tst_mark_official_form'), '');
79  $this->addColumn($this->lng->txt('tst_mark_minimum_level'), '');
80  $this->addColumn($this->lng->txt('tst_mark_passed'), '', '1');
81  }
82 
86  protected function initData()
87  {
88  $this->object->getMarkSchema()->sort();
89 
90  $data = array();
91 
92  $marks = $this->object->getMarkSchema()->getMarkSteps();
93  foreach ($marks as $key => $value) {
94  $data[] = array(
95  'mark_id' => $key,
96  'mark_short' => $value->getShortName(),
97  'mark_official' => $value->getOfficialName(),
98  'mark_percentage' => $value->getMinimumLevel(),
99  'mark_passed' => $value->getPassed() ? 1 : 0
100  );
101  }
102 
103  $this->setData($data);
104  }
105 
109  public function fillRow($row)
110  {
111  $short_name = new ilTextInputGUI('', 'mark_short_' . $row['mark_id']);
112  $short_name->setValue($row['mark_short']);
113  $short_name->setDisabled(!$this->is_editable);
114  $short_name->setSize(10);
115 
116  $official_name = new ilTextInputGUI('', 'mark_official_' . $row['mark_id']);
117  $official_name->setSize(20);
118  $official_name->setDisabled(!$this->object->canEditMarks());
119  $official_name->setValue($row['mark_official']);
120 
121  $percentage = new ilNumberInputGUI('', 'mark_percentage_' . $row['mark_id']);
122  $percentage->allowDecimals(true);
123  $percentage->setValue($row['mark_percentage']);
124  $percentage->setSize(10);
125  $percentage->setDisabled(!$this->is_editable);
126  $percentage->setMinValue(0);
127  $percentage->setMaxValue(100);
128 
129  $this->tpl->setVariable('VAL_MARK_ID', $row['mark_id']);
130  $this->tpl->setVariable('VAL_CHECKBOX', ilUtil::formCheckbox(false, 'marks[]', $row['mark_id'], !$this->is_editable));
131  $this->tpl->setVariable('VAL_SHORT_NAME', $short_name->render());
132  $this->tpl->setVariable('VAL_OFFICIAL_NAME', $official_name->render());
133  $this->tpl->setVariable('VAL_PERCENTAGE', $percentage->render());
134  $this->tpl->setVariable('VAL_PASSED_CHECKBOX', ilUtil::formCheckbox((bool) $row['mark_passed'], 'passed_' . $row['mark_id'], '1', !$this->is_editable));
135  }
136 }
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
__construct($a_parent_obj, $a_parent_cmd="", $a_template_context="")
ilTable2GUI constructor.
setNoEntriesText($a_text)
Set text for an empty table.
setId($a_val)
Set id.
global $ilCtrl
Definition: ilias.php:18
Class ilTable2GUI.
This class represents a number property in a property form.
addMultiCommand($a_cmd, $a_text)
Add Command button.
This class represents a text property in a property form.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
disable($a_module_name)
diesables particular modules of table
Create new PHPExcel object
obj_idprivate
setFormName($a_formname="")
Set Form name.
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.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
getId()
Get element id.
$key
Definition: croninfo.php:18
static formCheckbox($checked, $varname, $value, $disabled=false)
??? public
setLimit($a_limit=0, $a_default_limit=0)