00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00036 include_once "class.ilObjectGUI.php";
00037
00038 class ilObjAdvancedEditingGUI extends ilObjectGUI
00039 {
00044 var $conditions;
00045
00046 function ilObjAdvancedEditingGUI($a_data,$a_id,$a_call_by_reference)
00047 {
00048 global $rbacsystem;
00049
00050 $this->type = "adve";
00051 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,false);
00052
00053 if (!$rbacsystem->checkAccess('read',$this->object->getRefId()))
00054 {
00055 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read_adve"),$this->ilias->error_obj->WARNING);
00056 }
00057 }
00058
00059 function &executeCommand()
00060 {
00061 $next_class = $this->ctrl->getNextClass($this);
00062 $cmd = $this->ctrl->getCmd();
00063 $this->prepareOutput();
00064
00065 switch($next_class)
00066 {
00067 case 'ilpermissiongui':
00068 include_once("./classes/class.ilPermissionGUI.php");
00069 $perm_gui =& new ilPermissionGUI($this);
00070 $ret =& $this->ctrl->forwardCommand($perm_gui);
00071 break;
00072
00073 default:
00074 if($cmd == "" || $cmd == "view")
00075 {
00076 $cmd = "settings";
00077 }
00078 $cmd .= "Object";
00079 $this->$cmd();
00080
00081 break;
00082 }
00083 return true;
00084 }
00085
00086
00091 function saveObject()
00092 {
00093 global $rbacadmin;
00094
00095
00096 $newObj = parent::saveObject();
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 sendInfo($this->lng->txt("object_added"),true);
00108
00109 $this->ctrl->redirect($this);
00110
00111
00112 }
00113
00114
00118 function settingsObject()
00119 {
00120 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.advanced_editing.html");
00121
00122 $this->tpl->setCurrentBlock("adm_content");
00123 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00124 $this->tpl->setVariable("TXT_ADVANCED_EDITING_SETTINGS", $this->lng->txt("advanced_editing_settings"));
00125 $this->tpl->setVariable("TXT_ALLOW_JAVASCRIPT_EDITOR", $this->lng->txt("advanced_editing_allow_javascript_editor"));
00126 $this->tpl->setVariable("NO_RTE_EDITOR", $this->lng->txt("advanced_editing_no_rte"));
00127 $this->tpl->setVariable("TINY_MCE_EDITOR", $this->lng->txt("advanced_editing_tinymce"));
00128 $editor = $this->object->_getRichTextEditor();
00129 switch ($editor)
00130 {
00131 case "tinymce":
00132 $this->tpl->setVariable("SELECTED_TINY_MCE_EDITOR", " selected=\"selected\"");
00133 break;
00134 }
00135
00136 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00137
00138 $this->tpl->parseCurrentBlock();
00139 }
00140
00144 function assessmentObject()
00145 {
00146 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.advanced_editing_assessment.html");
00147
00148 $alltags =& $this->object->getHTMLTags();
00149 $usedtags =& $this->object->_getUsedHTMLTags("assessment");
00150 foreach ($alltags as $tag)
00151 {
00152 $this->tpl->setCurrentBlock("html_tag_row");
00153 $this->tpl->setVariable("HTML_TAG", $tag);
00154 if (is_array($usedtags))
00155 {
00156 if (in_array($tag, $usedtags))
00157 {
00158 $this->tpl->setVariable("HTML_TAG_SELECTED", " selected=\"selected\"");
00159 }
00160 }
00161 $this->tpl->parseCurrentBlock();
00162 }
00163
00164 $this->tpl->setCurrentBlock("adm_content");
00165 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00166 $this->tpl->setVariable("TXT_ASSESSMENT_SETTINGS", $this->lng->txt("advanced_editing_assessment_settings"));
00167 $this->tpl->setVariable("TXT_ALLOW_HTML_TAGS", $this->lng->txt("advanced_editing_allow_html_tags"));
00168 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00169
00170 $this->tpl->parseCurrentBlock();
00171 }
00172
00173
00177 function surveyObject()
00178 {
00179 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.advanced_editing_survey.html");
00180
00181 $alltags =& $this->object->getHTMLTags();
00182 $usedtags =& $this->object->_getUsedHTMLTags("survey");
00183 foreach ($alltags as $tag)
00184 {
00185 $this->tpl->setCurrentBlock("html_tag_row");
00186 $this->tpl->setVariable("HTML_TAG", $tag);
00187 if (is_array($usedtags))
00188 {
00189 if (in_array($tag, $usedtags))
00190 {
00191 $this->tpl->setVariable("HTML_TAG_SELECTED", " selected=\"selected\"");
00192 }
00193 }
00194 $this->tpl->parseCurrentBlock();
00195 }
00196
00197 $this->tpl->setCurrentBlock("adm_content");
00198 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00199 $this->tpl->setVariable("TXT_SURVEY_SETTINGS", $this->lng->txt("advanced_editing_survey_settings"));
00200 $this->tpl->setVariable("TXT_ALLOW_HTML_TAGS", $this->lng->txt("advanced_editing_allow_html_tags"));
00201 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00202
00203 $this->tpl->parseCurrentBlock();
00204 }
00205
00209 function learningModuleObject()
00210 {
00211 global $ilSetting;
00212
00213 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.advanced_editing_learning_module.html");
00214
00215 $this->tpl->setCurrentBlock("adm_content");
00216 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00217 $this->tpl->setVariable("TXT_LM_SETTINGS", $this->lng->txt("advanced_editing_lm_settings"));
00218 $this->tpl->setVariable("TXT_LM_JS_EDITING", $this->lng->txt("advanced_editing_lm_js_editing"));
00219 $this->tpl->setVariable("TXT_LM_JS_EDITING_DESC", $this->lng->txt("advanced_editing_lm_js_editing_desc"));
00220 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00221
00222 if ($ilSetting->get("enable_js_edit"))
00223 {
00224 $this->tpl->setVariable("JS_EDIT", "checked=\"checked\"");
00225 }
00226
00227 $this->tpl->parseCurrentBlock();
00228 }
00229
00233 function saveLearningModuleSettingsObject()
00234 {
00235 global $ilSetting;
00236
00237 sendInfo($this->lng->txt("msg_obj_modified"),true);
00238 $ilSetting->set("enable_js_edit", $_POST["js_edit"]);
00239 $this->ctrl->redirect($this, 'learningmodule');
00240 }
00241
00245 function categoryObject()
00246 {
00247 global $ilSetting, $tree;
00248
00249 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.advanced_editing_category.html");
00250
00251 $this->tpl->setCurrentBlock("adm_content");
00252 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
00253 $this->tpl->setVariable("TXT_CAT_SETTINGS", $this->lng->txt("adve_cat_settings"));
00254 $this->tpl->setVariable("TXT_CAT_PAGE_EDITING", $this->lng->txt("advanced_editing_cat_page_editing"));
00255 $this->tpl->setVariable("TXT_CAT_PAGE_EDITING_DESC", $this->lng->txt("advanced_editing_cat_page_editing_desc"));
00256 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00257
00258 $this->tpl->setVariable("TXT_CAT_PAGES",
00259 $this->lng->txt("cat_pages"));
00260 $this->tpl->setVariable("TXT_UNDO_LAST_CAT_CHANGES",
00261 $this->lng->txt("cat_undo_last_page_changes"));
00262 $this->tpl->setVariable("TXT_CLEAR_CAT_PAGE",
00263 $this->lng->txt("cat_clear_page"));
00264
00265 $root_node = $tree->getNodeData(ROOT_FOLDER_ID);
00266 $nodes = $tree->getSubTree($root_node, true, "cat");
00267 $cats[0] = $this->lng->txt("please_select");
00268 $cats[$root_node["ref_id"]] = "- ".$this->lng->txt("repository");
00269 foreach($nodes as $node)
00270 {
00271 $cats[$node["ref_id"]] = str_repeat(" ",($node["depth"]-1))."- ".$node["title"];
00272 }
00273 $this->tpl->setVariable("SELECT_CATEGORY",
00274 ilUtil::formSelect("", "cat_id", $cats, false, true));
00275
00276 if ($ilSetting->get("enable_cat_page_edit"))
00277 {
00278 $this->tpl->setVariable("CAT_PAGE_EDIT", "checked=\"checked\"");
00279 }
00280
00281 $this->tpl->parseCurrentBlock();
00282 }
00283
00287 function saveCategorySettingsObject()
00288 {
00289 global $ilSetting;
00290
00291 sendInfo($this->lng->txt("msg_obj_modified"), true);
00292 $ilSetting->set("enable_cat_page_edit", $_POST["cat_page_edit"]);
00293 $this->ctrl->redirect($this, 'category');
00294 }
00295
00299 function undoLastCategoryChangeObject()
00300 {
00301 global $ilSetting;
00302
00303 include_once("classes/class.ilContainer.php");
00304 $xpage_id = ilContainer::_lookupContainerSetting(
00305 ilObject::_lookupObjId($_POST["cat_id"]),
00306 "xhtml_page");
00307 if ($xpage_id > 0)
00308 {
00309 sendInfo($this->lng->txt("cat_pages_undone"), true);
00310 include_once("Services/XHTMLPage/classes/class.ilXHTMLPage.php");
00311 $xpage = new ilXHTMLPage($xpage_id);
00312 $xpage->undo();
00313 }
00314 else
00315 {
00316 sendInfo($this->lng->txt("cat_pages_not_created"), true);
00317 }
00318
00319 $this->ctrl->redirect($this, 'category');
00320 }
00321
00325 function clearCategoryPageObject()
00326 {
00327 global $ilSetting;
00328
00329 include_once("classes/class.ilContainer.php");
00330 $xpage_id = ilContainer::_lookupContainerSetting(
00331 ilObject::_lookupObjId($_POST["cat_id"]),
00332 "xhtml_page");
00333 if ($xpage_id > 0)
00334 {
00335 sendInfo($this->lng->txt("cat_pages_clear"), true);
00336 include_once("Services/XHTMLPage/classes/class.ilXHTMLPage.php");
00337 $xpage = new ilXHTMLPage($xpage_id);
00338 $xpage->clear();
00339 }
00340 else
00341 {
00342 sendInfo($this->lng->txt("cat_pages_not_created"), true);
00343 }
00344
00345 $this->ctrl->redirect($this, 'category');
00346 }
00347
00351 function saveSettingsObject()
00352 {
00353 $this->object->_setRichTextEditor($_POST["rte"]);
00354 sendInfo($this->lng->txt("msg_obj_modified"),true);
00355
00356 $this->ctrl->redirect($this,'settings');
00357 }
00358
00359 function saveAssessmentSettingsObject()
00360 {
00361 sendInfo($this->lng->txt("msg_obj_modified"),true);
00362
00363 $this->object->_setUsedHTMLTags($_POST["html_tags"], "assessment");
00364 $this->ctrl->redirect($this,'assessment');
00365 }
00366
00367 function saveSurveySettingsObject()
00368 {
00369 sendInfo($this->lng->txt("msg_obj_modified"),true);
00370
00371 $this->object->_setUsedHTMLTags($_POST["html_tags"], "survey");
00372 $this->ctrl->redirect($this,'survey');
00373 }
00374
00375 function getAdminTabs(&$tabs_gui)
00376 {
00377 $this->getTabs($tabs_gui);
00378 }
00379
00380 function addSubtabs(&$tabs_gui)
00381 {
00382 $tabs_gui->addSubTabTarget("adve_general_settings",
00383 $this->ctrl->getLinkTarget($this, "settings"),
00384 array("", "view", "settings", "saveSettings"),
00385 "", "");
00386 $tabs_gui->addSubTabTarget("adve_assessment_settings",
00387 $this->ctrl->getLinkTarget($this, "assessment"),
00388 array("assessment", "saveAssessmentSettings"),
00389 "", "");
00390 $tabs_gui->addSubTabTarget("adve_survey_settings",
00391 $this->ctrl->getLinkTarget($this, "survey"),
00392 array("survey", "saveSurveySettings"),
00393 "", "");
00394 $tabs_gui->addSubTabTarget("adve_cat_settings",
00395 $this->ctrl->getLinkTarget($this, "category"),
00396 array("category", "saveCategorySettings"),
00397 "", "");
00398 $tabs_gui->addSubTabTarget("adve_lm_settings",
00399 $this->ctrl->getLinkTarget($this, "learningModule"),
00400 array("learningModule", "saveLearningModuleSettings"),
00401 "", "");
00402 }
00403
00409 function getTabs(&$tabs_gui)
00410 {
00411 global $rbacsystem;
00412
00413 if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
00414 {
00415 $tabs_gui->addTarget("settings",
00416 $this->ctrl->getLinkTarget($this, "settings"),
00417 array("settings","","view", "assessment", "survey", "learningModule",
00418 "category"), "", "");
00419 }
00420
00421 if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
00422 {
00423 $tabs_gui->addTarget("perm_settings",
00424 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
00425 }
00426 $this->addSubtabs($tabs_gui);
00427 }
00428 }
00429 ?>