ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilTestManScoringParticipantsTableGUI.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
30 {
31  public const PARENT_DEFAULT_CMD = 'showManScoringParticipantsTable';
32  public const PARENT_APPLY_FILTER_CMD = 'applyManScoringParticipantsFilter';
33  public const PARENT_RESET_FILTER_CMD = 'resetManScoringParticipantsFilter';
34 
35  public const PARENT_EDIT_SCORING_CMD = 'showManScoringParticipantScreen';
36 
38  {
39  $this->setPrefix('manScorePartTable');
40  $this->setId('manScorePartTable');
41 
42  parent::__construct($parent_obj, self::PARENT_DEFAULT_CMD);
43 
44  $this->setFilterCommand(self::PARENT_APPLY_FILTER_CMD);
45  $this->setResetCommand(self::PARENT_RESET_FILTER_CMD);
46 
47  $this->setFormName('manScorePartTable');
48  $this->setStyle('table', 'fullwidth');
49 
50  $this->enable('header');
51 
52  $this->setFormAction($this->ctrl->getFormAction($parent_obj, self::PARENT_DEFAULT_CMD));
53 
54  $this->setRowTemplate("tpl.il_as_tst_man_scoring_participant_tblrow.html", "Modules/Test");
55 
56  $this->initColumns();
57  $this->initOrdering();
58 
59  $this->initFilter();
60  }
61 
62  private function initColumns(): void
63  {
64  if ($this->parent_obj->getObject()->getAnonymity()) {
65  $this->addColumn($this->lng->txt("name"), 'lastname', '100%');
66  } else {
67  $this->addColumn($this->lng->txt("lastname"), 'lastname', '');
68  $this->addColumn($this->lng->txt("firstname"), 'firstname', '');
69  $this->addColumn($this->lng->txt("login"), 'login', '');
70  }
71 
72  $this->addColumn($this->lng->txt('actions'), '', '1%');
73  }
74 
75  private function initOrdering(): void
76  {
77  $this->enable('sort');
78 
79  $this->setDefaultOrderField("lastname");
80  $this->setDefaultOrderDirection("asc");
81  }
82 
83  public function initFilter(): void
84  {
85  $this->setDisableFilterHiding(true);
86 
87  $participantStatus = new ilSelectInputGUI($this->lng->txt('tst_participant_status'), 'participant_status');
88 
89  $statusOptions = array();
90  $statusOptions[ilTestScoringGUI::PART_FILTER_ALL_USERS] = $this->lng->txt("all_users");
91  $statusOptions[ilTestScoringGUI::PART_FILTER_MANSCORING_NONE] = $this->lng->txt("manscoring_none");
92  $statusOptions[ilTestScoringGUI::PART_FILTER_MANSCORING_DONE] = $this->lng->txt("manscoring_done");
93 
94  $participantStatus->setOptions($statusOptions);
95 
96  $this->addFilterItem($participantStatus);
97 
98  $participantStatus->readFromSession();
99 
100  if (!$participantStatus->getValue()) {
101  $participantStatus->setValue((string) ilTestScoringGUI::PART_FILTER_MANSCORING_NONE);
102  }
103  }
104 
105  public function fillRow(array $a_set): void
106  {
107  $this->ctrl->setParameter($this->parent_obj, 'active_id', $a_set['active_id']);
108 
109  if (!$this->parent_obj->getObject()->getAnonymity()) {
110  $this->tpl->setCurrentBlock('personal');
111  $this->tpl->setVariable("PARTICIPANT_FIRSTNAME", $a_set['firstname']);
112  $this->tpl->setVariable("PARTICIPANT_LOGIN", $a_set['login']);
113  $this->tpl->parseCurrentBlock();
114  }
115 
116  $this->tpl->setVariable("PARTICIPANT_LASTNAME", $a_set['lastname']);
117 
118  $this->tpl->setVariable("HREF_SCORE_PARTICIPANT", $this->ctrl->getLinkTarget($this->parent_obj, self::PARENT_EDIT_SCORING_CMD));
119  $this->tpl->setVariable("TXT_SCORE_PARTICIPANT", $this->lng->txt('tst_edit_scoring'));
120  }
121 
122  public function getInternalyOrderedDataValues(): array
123  {
124  $this->determineOffsetAndOrder();
125 
126  return ilArrayUtil::sortArray(
127  $this->getData(),
128  $this->getOrderField(),
129  $this->getOrderDirection(),
130  $this->numericOrdering($this->getOrderField())
131  );
132  }
133 }
numericOrdering(string $a_field)
Should this field be sorted numeric?
enable(string $a_module_name)
This class represents a selection list property in a property form.
setFormAction(string $a_form_action, bool $a_multipart=false)
addFilterItem(ilTableFilterItem $a_input_item, bool $a_optional=false)
setResetCommand(string $a_val, string $a_caption="")
setDisableFilterHiding(bool $a_val=true)
Scoring class for tests.
setFormName(string $a_name="")
setId(string $a_val)
setStyle(string $a_element, string $a_style)
__construct(VocabulariesInterface $vocabularies)
setDefaultOrderField(string $a_defaultorderfield)
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
setFilterCommand(string $a_val, string $a_caption="")
setDefaultOrderDirection(string $a_defaultorderdirection)
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
determineOffsetAndOrder(bool $a_omit_offset=false)
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
setPrefix(string $a_prefix)