5require_once (
'Services/UIComponent/CharSelector/classes/ilCharSelectorConfig.php');
18 'ilAssQuestionFeedbackEditingGUI',
19 'ilAssQuestionHintGUI',
20 'ilObjTestSettingsGeneralGUI',
59 foreach (
$ilCtrl->getCallHistory() as $call)
61 if ($call[
'mode'] ==
'execComm')
63 $class = $call[
'class'];
68 while ($class !=
false)
70 if (in_array($class, self::$allowed_guis))
74 $class = get_parent_class($class);
89 if (!isset(self::$current_gui))
103 $this->config = $a_config;
122 $lng->loadLanguageModule(
'adve');
124 require_once (
'Services/UIComponent/CharSelector/classes/class.ilCharSelectorRadioGroupInputGUI.php');
127 $inactive->setInfo(
$lng->txt(
'char_selector_inactive_info_'.$this->config->getContext()));
129 $inherit->setInfo(
$lng->txt(
'char_selector_inherit_info_'.$this->config->getContext()));
131 $enabled->setInfo(
$lng->txt(
'char_selector_enabled_info_'.$this->config->getContext()));
133 $disabled->setInfo(
$lng->txt(
'char_selector_disabled_info_'.$this->config->getContext()));
136 $blocks->setInfo(
$lng->txt(
'char_selector_blocks_info'));
137 $blocks->setOptions($this->config->getBlockOptions());
138 $blocks->setMulti(
true);
139 $enabled->addSubItem($blocks);
141 $custom_items =
new ilTextAreaInputGUI(
$lng->txt(
'char_selector_custom_items'),
'char_selector_custom_items');
142 $tpl =
new ilTemplate(
"tpl.char_selector_custom_info.html",
true,
true,
"Services/UIComponent/CharSelector");
143 $tpl->setVariable(
'1',
$lng->txt(
'char_selector_custom_items_info1'));
144 $tpl->setVariable(
'2a',
$lng->txt(
'char_selector_custom_items_info2a'));
145 $tpl->setVariable(
'2b',
$lng->txt(
'char_selector_custom_items_info2b'));
146 $tpl->setVariable(
'3a',
$lng->txt(
'char_selector_custom_items_info3a'));
147 $tpl->setVariable(
'3b',
$lng->txt(
'char_selector_custom_items_info3b'));
148 $tpl->setVariable(
'4a',
$lng->txt(
'char_selector_custom_items_info4a'));
149 $tpl->setVariable(
'4b',
$lng->txt(
'char_selector_custom_items_info4b'));
150 $tpl->setVariable(
'5a',
$lng->txt(
'char_selector_custom_items_info5a'));
151 $tpl->setVariable(
'5b',
$lng->txt(
'char_selector_custom_items_info5b'));
152 $tpl->setVariable(
'6a',
$lng->txt(
'char_selector_custom_items_info6a'));
153 $tpl->setVariable(
'6b',
$lng->txt(
'char_selector_custom_items_info6b'));
154 $custom_items->setInfo(
$tpl->get());
155 $enabled->addSubItem($custom_items);
157 switch($this->config->getContext())
160 $availability->addOption($inactive);
161 $availability->addOption($enabled);
162 $availability->addOption($disabled);
163 $a_form->
addItem($availability);
168 $availability->addOption($inherit);
169 $availability->addOption($enabled);
170 $availability->addOption($disabled);
171 $a_form->
addItem($availability);
184 $a_form->
getItemByPostVar(
'char_selector_availability')->setValue($this->config->getAvailability());
185 $a_form->
getItemByPostVar(
'char_selector_blocks')->setValue($this->config->getAddedBlocks());
186 $a_form->
getItemByPostVar(
'char_selector_custom_items')->setValue($this->config->getCustomItems());
197 $this->config->setAvailability($a_form->
getInput(
'char_selector_availability'));
198 $this->config->setAddedBlocks($a_form->
getInput(
'char_selector_blocks'));
199 $this->config->setCustomItems($a_form->
getInput(
'char_selector_custom_items'));
212 if ($this->added_to_page)
217 $lng->loadLanguageModule(
'adve');
220 $this->jsconfig =
new stdClass();
221 $this->jsconfig->pages = $this->config->getCharPages();
222 $this->jsconfig->ajax_url =
$ilCtrl->getLinkTargetByClass(
"ilcharselectorgui",
"saveState",
"",
true);
223 $this->jsconfig->open = (int)
$_SESSION[
'char_selector_open'];
224 $this->jsconfig->current_page = (int)
$_SESSION[
'char_selector_current_page'];
225 $this->jsconfig->current_subpage = (int)
$_SESSION[
'char_selector_current_subpage'];
228 $this->jstexts =
new stdClass();
229 $this->jstexts->page =
$lng->txt(
'page');
236 $tpl->addJavascript(
'./Services/UIComponent/CharSelector/js/ilCharSelector.js');
238 $tpl->addOnLoadCode(
'il.CharSelector.init('.json_encode($this->jsconfig).
','.json_encode($this->jstexts).
')');
239 $this->added_to_page =
true;
249 $tpl =
new ilTemplate(
"tpl.char_selector_panel.html",
true,
true,
"Services/UIComponent/CharSelector");
251 if (count($this->jsconfig->pages) > 1)
254 foreach ($this->jsconfig->pages as $page)
256 $tpl->setCurrentBlock(
'page_option');
257 $tpl->setVariable(
"PAGE_INDEX", $index);
258 $tpl->setVariable(
"PAGE_NAME", $page[0]);
259 $tpl->parseCurrentBlock();
264 $tpl->setVariable(
'TXT_PREVIOUS_PAGE',
$lng->txt(
'previous'));
265 $tpl->setVariable(
'TXT_NEXT_PAGE',
$lng->txt(
'next'));
266 $tpl->setVariable(
'TXT_PAGE',
$lng->txt(
'page'));
268 $tpl->touchBlock(
'chars');
269 return '<script type="text/html" id="ilCharSelectorTemplate">'.$tpl->get().
'</script>';
281 $_SESSION[
'char_selector_current_page'] = (int)
$_GET[
'current_page'];
282 $_SESSION[
'char_selector_current_subpage'] = (int)
$_GET[
'current_subpage'];
285 echo json_encode(array(
286 'open' =>
$_SESSION[
'char_selector_open'],
287 'current_page' =>
$_SESSION[
'char_selector_current_page'],
288 'current_subpage' =>
$_SESSION[
'char_selector_current_subpage'],
const INACTIVE
Availabilities INACTIVE/INHERIT corresponds to an unconfigured selector (no database entries)
static _getCurrentConfig(ilObjTest $a_test_obj=null)
Get the configuration that should be used for the current selector.
const CONTEXT_NONE
Configuration contexts.
This shows a character selector.
getConfig()
Get the configuraton object.
static $current_gui
ilCharSelectorGUI instance used for the current selector
executeCommand()
execute command
__construct($a_context=ilCharSelectorConfig::CONTEXT_NONE)
Constructor.
addToPage()
Adds the the character selector to the ilias page Initializes the selector according to the state sav...
static _isAllowed()
Check if the CharSelector is allowed for the current GUI.
static $allowed_guis
list of command classes for which the char selector is allowed (can also be a parent class of the act...
saveState()
Save the selector panel state in the user session (This keeps the panel state between page moves)
getSelectorHTML()
Get the HTML code of the selector panel.
getFormValues(ilPropertyFormGUI $a_form)
Set the configuration based on the values of a property form.
addFormProperties(ilPropertyFormGUI $a_form)
add the configuration elements to a property form
setConfig(ilCharSelectorConfig $a_config)
Set the configuraton object.
static _getCurrentGUI(ilObjTest $a_test_obj=null)
Get the GUI that is used for the currently available selector (other GUI instances may exist for conf...
setFormValues(ilPropertyFormGUI $a_form)
Set the values in a property form based on the configuration.
This class represents an option in a radio group.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user