ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
class.ilObjQuestionPoolSettingsGeneralGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
16{
20 const CMD_SHOW_FORM = 'showForm';
21 const CMD_SAVE_FORM = 'saveForm';
22
28 protected $ctrl = null;
29
35 protected $access = null;
36
42 protected $lng = null;
43
49 protected $tpl = null;
50
56 protected $tabs = null;
57
63 protected $poolGUI = null;
64
70 protected $poolOBJ = null;
71
76 {
77 $this->ctrl = $ctrl;
78 $this->access = $access;
79 $this->lng = $lng;
80 $this->tpl = $tpl;
81 $this->tabs = $tabs;
82
83 $this->poolGUI = $poolGUI;
84 $this->poolOBJ = $poolGUI->object;
85 }
86
90 public function executeCommand()
91 {
92 // allow only write access
93
94 if (!$this->access->checkAccess('write', '', $this->poolGUI->ref_id))
95 {
96 ilUtil::sendInfo($this->lng->txt('cannot_edit_question_pool'), true);
97 $this->ctrl->redirectByClass('ilObjQuestionPoolGUI', 'infoScreen');
98 }
99
100 // activate corresponding tab (auto activation does not work in ilObjTestGUI-Tabs-Salad)
101
102 $this->tabs->activateTab('settings');
103
104 // process command
105
106 $nextClass = $this->ctrl->getNextClass();
107
108 switch($nextClass)
109 {
110 default:
111 $cmd = $this->ctrl->getCmd(self::CMD_SHOW_FORM).'Cmd';
112 $this->$cmd();
113 }
114 }
115
116 private function showFormCmd(ilPropertyFormGUI $form = null)
117 {
118 if( $form === null )
119 {
120 $form = $this->buildForm();
121 }
122
123 $this->tpl->setContent( $this->ctrl->getHTML($form) );
124 }
125
126 private function saveFormCmd()
127 {
128 $form = $this->buildForm();
129
130 // form validation and initialisation
131
132 $errors = !$form->checkInput(); // ALWAYS CALL BEFORE setValuesByPost()
133 $form->setValuesByPost(); // NEVER CALL THIS BEFORE checkInput()
134
135 // return to form when any form validation errors exist
136
137 if($errors)
138 {
139 ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
140 return $this->showFormCmd($form);
141 }
142
143 // perform saving the form data
144
145 $this->performSaveForm($form);
146
147 // redirect to form output
148
149 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
150 $this->ctrl->redirect($this, self::CMD_SHOW_FORM);
151 }
152
153 private function performSaveForm(ilPropertyFormGUI $form)
154 {
155 $online = $form->getItemByPostVar('online');
156 $this->poolOBJ->setOnline($online->getChecked());
157
158 $showTax = $form->getItemByPostVar('show_taxonomies');
159 $this->poolOBJ->setShowTaxonomies($showTax->getChecked());
160
161 $navTax = $form->getItemByPostVar('nav_taxonomy');
162 $this->poolOBJ->setNavTaxonomyId($navTax->getValue());
163
164 $this->poolOBJ->saveToDb();
165 }
166
167 private function buildForm()
168 {
169 require_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
170 $form = new ilPropertyFormGUI();
171
172 $form->setFormAction($this->ctrl->getFormAction($this));
173 $form->addCommandButton(self::CMD_SAVE_FORM, $this->lng->txt('save'));
174
175 $form->setTitle($this->lng->txt('qpl_form_general_settings'));
176 $form->setId('properties');
177
178 // online
179
180 $online = new ilCheckboxInputGUI($this->lng->txt('qpl_settings_general_form_property_online'), 'online');
181 $online->setInfo($this->lng->txt('qpl_settings_general_form_property_online_description'));
182 $online->setChecked($this->poolOBJ->getOnline());
183 $form->addItem($online);
184
185 // show taxonomies
186
187 $showTax = new ilCheckboxInputGUI($this->lng->txt('qpl_settings_general_form_property_show_taxonomies'), 'show_taxonomies');
188 $showTax->setInfo($this->lng->txt('qpl_settings_general_form_prop_show_tax_desc'));
189 $showTax->setChecked($this->poolOBJ->getShowTaxonomies());
190 $form->addItem($showTax);
191
192 $taxSelectOptions = $this->getTaxonomySelectInputOptions();
193
194 // pool navigation taxonomy
195
196 $navTax = new ilSelectInputGUI($this->lng->txt('qpl_settings_general_form_property_nav_taxonomy'), 'nav_taxonomy');
197 $navTax->setInfo($this->lng->txt('qpl_settings_general_form_property_nav_taxonomy_description'));
198 $navTax->setValue($this->poolOBJ->getNavTaxonomyId());
199 $navTax->setOptions($taxSelectOptions);
200 $showTax->addSubItem($navTax);
201
202 return $form;
203 }
204
206 {
207 $taxSelectOptions = array(
208 '0' => $this->lng->txt('qpl_settings_general_form_property_opt_notax_selected')
209 );
210
211 foreach($this->poolOBJ->getTaxonomyIds() as $taxId)
212 {
213 $taxSelectOptions[$taxId] = ilObject::_lookupTitle($taxId);
214 }
215
216 return $taxSelectOptions;
217 }
218}
Class ilAccessHandler.
This class represents a checkbox property in a property form.
This class provides processing control methods.
language handling
Class ilObjQuestionPoolGUI.
__construct(ilCtrl $ctrl, ilAccessHandler $access, ilLanguage $lng, ilTemplate $tpl, ilTabsGUI $tabs, ilObjQuestionPoolGUI $poolGUI)
Constructor.
static _lookupTitle($a_id)
lookup object title
This class represents a property form user interface.
getItemByPostVar($a_post_var)
Get Item by POST variable.
This class represents a selection list property in a property form.
Tabs GUI.
special template class to simplify handling of ITX/PEAR
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$cmd
Definition: sahs_server.php:35
$errors