private function showConfirmation(ilPropertyFormGUI $form, $oldQuestionSetType, $newQuestionSetType, $hasQuestionsWithoutQuestionpool) { require_once 'Services/Utilities/classes/class.ilConfirmationGUI.php'; $confirmation = new ilConfirmationGUI(); $headerText = sprintf($this->lng->txt('tst_change_quest_set_type_from_old_to_new_with_conflict'), $this->getQuestionSetTypeTranslation($oldQuestionSetType), $this->getQuestionSetTypeTranslation($newQuestionSetType)); if ($hasQuestionsWithoutQuestionpool) { $headerText .= '<br /><br />' . $this->lng->txt("tst_nonpool_questions_get_lost_warning"); } $confirmation->setHeaderText($headerText); $confirmation->setFormAction($this->ctrl->getFormAction($this)); $confirmation->setCancel($this->lng->txt('cancel'), self::CMD_SHOW_FORM); $confirmation->setConfirm($this->lng->txt('confirm'), self::CMD_CONFIRMED_SAVE_FORM); foreach ($form->getInputItemsRecursive() as $key => $item) { //vd("$key // {$item->getType()} // ".json_encode($_POST[$item->getPostVar()])); switch ($item->getType()) { case 'section_header': continue; case 'datetime': list($date, $time) = explode(' ', $item->getDate()->get(IL_CAL_DATETIME)); if ($item->getMode() == ilDateTimeInputGUI::MODE_SELECT) { list($y, $m, $d) = explode('-', $date); $confirmation->addHiddenItem("{$item->getPostVar()}[date][y]", $y); $confirmation->addHiddenItem("{$item->getPostVar()}[date][m]", $m); $confirmation->addHiddenItem("{$item->getPostVar()}[date][d]", $d); if ($item->getShowTime()) { list($h, $m, $s) = explode('-', $time); $confirmation->addHiddenItem("{$item->getPostVar()}[time][h]", $h); $confirmation->addHiddenItem("{$item->getPostVar()}[time][m]", $m); $confirmation->addHiddenItem("{$item->getPostVar()}[time][s]", $s); } } else { $confirmation->addHiddenItem("{$item->getPostVar()}[date]", $date); $confirmation->addHiddenItem("{$item->getPostVar()}[time]", $time); } break; case 'duration': $confirmation->addHiddenItem("{$item->getPostVar()}[MM]", (int) $item->getMonths()); $confirmation->addHiddenItem("{$item->getPostVar()}[dd]", (int) $item->getDays()); $confirmation->addHiddenItem("{$item->getPostVar()}[hh]", (int) $item->getHours()); $confirmation->addHiddenItem("{$item->getPostVar()}[mm]", (int) $item->getMinutes()); $confirmation->addHiddenItem("{$item->getPostVar()}[ss]", (int) $item->getSeconds()); break; case 'checkboxgroup': if (is_array($item->getValue())) { foreach ($item->getValue() as $option) { $confirmation->addHiddenItem("{$item->getPostVar()}[]", $option); } } break; case 'checkbox': if ($item->getChecked()) { $confirmation->addHiddenItem($item->getPostVar(), 1); } break; default: $confirmation->addHiddenItem($item->getPostVar(), $item->getValue()); } } $this->tpl->setContent($this->ctrl->getHTML($confirmation)); }
/** * @param ilPropertyForm $form */ public function populateParametersFromPropertyForm(ilPropertyFormGUI $form, $timezone) { foreach ($form->getInputItemsRecursive() as $key => $item) { //vd("$key // {$item->getType()} // ".json_encode($_POST[$item->getPostVar()])); switch ($item->getType()) { case 'section_header': continue; case 'datetime': list($date, $time) = explode(' ', $item->getDate()->get(IL_CAL_DATETIME)); if ($item->getMode() == ilDateTimeInputGUI::MODE_SELECT) { list($y, $m, $d) = explode('-', $date); $this->addHiddenItem("{$item->getPostVar()}[date][y]", $y); $this->addHiddenItem("{$item->getPostVar()}[date][m]", $m); $this->addHiddenItem("{$item->getPostVar()}[date][d]", $d); if ($item->getShowTime()) { list($h, $m, $s) = explode('-', $time); $this->addHiddenItem("{$item->getPostVar()}[time][h]", $h); $this->addHiddenItem("{$item->getPostVar()}[time][m]", $m); $this->addHiddenItem("{$item->getPostVar()}[time][s]", $s); } } else { $this->addHiddenItem("{$item->getPostVar()}[date]", $date); $this->addHiddenItem("{$item->getPostVar()}[time]", $time); } break; case 'duration': $this->addHiddenItem("{$item->getPostVar()}[MM]", (int) $item->getMonths()); $this->addHiddenItem("{$item->getPostVar()}[dd]", (int) $item->getDays()); $this->addHiddenItem("{$item->getPostVar()}[hh]", (int) $item->getHours()); $this->addHiddenItem("{$item->getPostVar()}[mm]", (int) $item->getMinutes()); $this->addHiddenItem("{$item->getPostVar()}[ss]", (int) $item->getSeconds()); break; case 'dateduration': $this->addHiddenItem("{$item->getPostVar()}[start][date][y]", (int) $item->getStart()->get(IL_CAL_FKT_DATE, 'Y', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[start][date][m]", (int) $item->getStart()->get(IL_CAL_FKT_DATE, 'm', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[start][date][d]", (int) $item->getStart()->get(IL_CAL_FKT_DATE, 'd', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[start][time][h]", (int) $item->getStart()->get(IL_CAL_FKT_DATE, 'H', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[start][time][m]", (int) $item->getStart()->get(IL_CAL_FKT_DATE, 'i', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[start][time][s]", (int) $item->getStart()->get(IL_CAL_FKT_DATE, 's', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[end][date][y]", (int) $item->getEnd()->get(IL_CAL_FKT_DATE, 'Y', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[end][date][m]", (int) $item->getEnd()->get(IL_CAL_FKT_DATE, 'm', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[end][date][d]", (int) $item->getEnd()->get(IL_CAL_FKT_DATE, 'd', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[end][time][h]", (int) $item->getEnd()->get(IL_CAL_FKT_DATE, 'H', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[end][time][m]", (int) $item->getEnd()->get(IL_CAL_FKT_DATE, 'i', $timezone)); $this->addHiddenItem("{$item->getPostVar()}[end][time][s]", (int) $item->getEnd()->get(IL_CAL_FKT_DATE, 's', $timezone)); break; case 'checkboxgroup': if (is_array($item->getValue())) { foreach ($item->getValue() as $option) { $this->addHiddenItem("{$item->getPostVar()}[]", $option); } } break; case 'checkbox': if ($item->getChecked()) { $this->addHiddenItem($item->getPostVar(), 1); } break; default: $this->addHiddenItem($item->getPostVar(), $item->getValue()); } } }