/**
  * Update substitution
  *
  * @access public
  * 
  */
 public function updateSubstitutions()
 {
     foreach (ilAdvancedMDRecord::_getActivatedObjTypes() as $obj_type) {
         $perm = null;
         // :TODO: hardwired?
         if (in_array($obj_type, array("crs", "cat"))) {
             $perm = $this->getPermissions()->hasPermissions(ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION, $obj_type, array(ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SHOW_DESCRIPTION, ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SHOW_FIELDNAMES, ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_FIELD_POSITIONS));
         }
         include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDSubstitution.php';
         $sub = ilAdvancedMDSubstitution::_getInstanceByObjectType($obj_type);
         if ($perm && $perm[ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SHOW_DESCRIPTION]) {
             $sub->enableDescription($_POST['enabled_desc_' . $obj_type]);
         }
         if ($perm && $perm[ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SHOW_FIELDNAMES]) {
             $sub->enableFieldNames((int) $_POST['enabled_field_names_' . $obj_type]);
         }
         $definitions = ilAdvancedMDFieldDefinition::getInstancesByObjType($obj_type);
         $definitions = $sub->sortDefinitions($definitions);
         // gather existing data
         $counter = 1;
         $old_sub = array();
         foreach ($definitions as $def) {
             $field_id = $def->getFieldId();
             $old_sub[$field_id] = array("active" => $sub->isSubstituted($field_id), "pos" => $counter++, "bold" => $sub->isBold($field_id), "newline" => $sub->hasNewline($field_id));
         }
         $sub->resetSubstitutions(array());
         $new_sub = array();
         foreach ($definitions as $def) {
             $field_id = $def->getFieldId();
             $old = $old_sub[$field_id];
             $perm_def = $this->getSubstitutionFieldPermissions($obj_type, $field_id);
             if ($perm_def["show"]) {
                 $active = isset($_POST['show'][$obj_type][$field_id]) && $_POST['show'][$obj_type][$field_id];
             } else {
                 $active = $old["active"];
             }
             if ($active) {
                 $new_sub[$field_id] = $old;
                 if ($perm[ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_FIELD_POSITIONS]) {
                     $new_sub[$field_id]["pos"] = (int) $_POST['position'][$obj_type][$field_id];
                 }
                 if ($perm_def["bold"]) {
                     $new_sub[$field_id]["bold"] = isset($_POST['bold'][$obj_type][$field_id]) && $_POST['bold'][$obj_type][$field_id];
                 }
                 if ($perm_def["newline"]) {
                     $new_sub[$field_id]["newline"] = isset($_POST['newline'][$obj_type][$field_id]) && $_POST['newline'][$obj_type][$field_id];
                 }
             }
         }
         if (sizeof($new_sub)) {
             $new_sub = ilUtil::sortArray($new_sub, "pos", "asc", true, true);
             foreach ($new_sub as $field_id => $field) {
                 $sub->appendSubstitution($field_id, $field["bold"], $field["newline"]);
             }
         }
         $sub->update();
     }
     ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
     $this->ctrl->redirect($this, "showPresentation");
 }
 protected function setEditTabs($active_tab = "settings_misc")
 {
     $this->tabs_gui->addSubTab("settings_misc", $this->lng->txt("settings"), $this->ctrl->getLinkTarget($this, "edit"));
     $this->tabs_gui->addSubTab("settings_trans", $this->lng->txt("title_and_translations"), $this->ctrl->getLinkTarget($this, "editTranslations"));
     $this->tabs_gui->activateTab("settings");
     $this->tabs_gui->activateSubTab($active_tab);
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     if (in_array('cat', ilAdvancedMDRecord::_getActivatedObjTypes())) {
         $this->tabs_gui->addSubTabTarget("edit_cat_settings", $this->ctrl->getLinkTarget($this, 'editInfo'), "editInfo", get_class($this));
     }
 }
 function __setSearchOptions(&$post_vars)
 {
     if (isset($_POST['cmd']['performSearch'])) {
         $this->options = $_SESSION['search_adv'] = $_POST['query'];
     } elseif (isset($_POST['cmd']['performAdvMDSearch'])) {
         $this->options = $_SESSION['search_adv_md'] = $_POST;
     } else {
         $this->options = $_SESSION['search_adv'];
     }
     $_POST['result'] = $_POST['id'];
     $this->filter = array();
     $this->options['type'] = 'all';
     switch ($this->options['type']) {
         case 'cat':
             $this->filter[] = 'cat';
             break;
         case 'webr':
             $this->filter[] = 'webr';
             break;
         case 'lms':
             $this->filter[] = 'lm';
             $this->filter[] = 'dbk';
             $this->filter[] = 'pg';
             $this->filter[] = 'st';
             $this->filter[] = 'sahs';
             $this->filter[] = 'htlm';
             break;
         case 'glo':
             $this->filter[] = 'glo';
             break;
         case 'tst':
             $this->filter[] = 'tst';
             $this->filter[] = 'svy';
             $this->filter[] = 'qpl';
             $this->filter[] = 'spl';
             break;
         case 'mep':
             $this->filter[] = 'mep';
             break;
         case 'crs':
             $this->filter[] = 'crs';
             break;
         case 'file':
             $this->filter[] = 'file';
             break;
         case 'adv_all':
             include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
             $this->filter = ilAdvancedMDRecord::_getActivatedObjTypes();
             break;
         case 'all':
         default:
             $this->filter[] = 'webr';
             $this->filter[] = 'crs';
             $this->filter[] = 'mep';
             $this->filter[] = 'tst';
             $this->filter[] = 'svy';
             $this->filter[] = 'qpl';
             $this->filter[] = 'spl';
             $this->filter[] = 'glo';
             $this->filter[] = 'lm';
             $this->filter[] = 'dbk';
             $this->filter[] = 'pg';
             $this->filter[] = 'st';
             $this->filter[] = 'sahs';
             $this->filter[] = 'htlm';
             $this->filter[] = 'file';
     }
     return true;
 }
Пример #4
0
 protected function setEditTabs($active_tab = "settings_misc")
 {
     global $ilSetting, $ilTabs;
     $this->tabs_gui->addSubTab("settings_misc", $this->lng->txt("settings"), $this->ctrl->getLinkTarget($this, "edit"));
     /*$this->tabs_gui->addSubTab("settings_trans",
     		$this->lng->txt("title_and_translations"),
     		$this->ctrl->getLinkTarget($this, "editTranslations"));*/
     $this->tabs_gui->addSubTab("settings_trans", $this->lng->txt("obj_multilinguality"), $this->ctrl->getLinkTargetByClass("ilobjecttranslationgui", ""));
     // custom icon
     if ($ilSetting->get("custom_icons")) {
         $this->tabs_gui->addSubTab("icons", $this->lng->txt("icon_settings"), $this->ctrl->getLinkTarget($this, 'editIcons'));
     }
     $this->tabs_gui->activateTab("settings");
     $this->tabs_gui->activateSubTab($active_tab);
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     if (in_array('cat', ilAdvancedMDRecord::_getActivatedObjTypes())) {
         $this->tabs_gui->addSubTabTarget("edit_cat_settings", $this->ctrl->getLinkTarget($this, 'editInfo'), "editInfo", get_class($this));
     }
 }
 /**
  * Update substitution
  *
  * @access public
  * 
  */
 public function updateSubstitutions()
 {
     foreach (ilAdvancedMDRecord::_getActivatedObjTypes() as $obj_type) {
         include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDSubstitution.php';
         $sub = ilAdvancedMDSubstitution::_getInstanceByObjectType($obj_type);
         $sub->resetSubstitutions(array());
         $sub->enableDescription($_POST['enabled_desc_' . $obj_type]);
         $sub->enableFieldNames((int) $_POST['enabled_field_names_' . $obj_type]);
         if (isset($_POST['position'][$obj_type])) {
             asort($_POST['position'][$obj_type], SORT_NUMERIC);
             foreach ($_POST['position'][$obj_type] as $field_id => $pos) {
                 if (isset($_POST['show'][$obj_type][$field_id]) and $_POST['show'][$obj_type][$field_id]) {
                     $newline = $bold = false;
                     if (isset($_POST['bold'][$obj_type][$field_id]) and $_POST['bold'][$obj_type][$field_id]) {
                         $bold = true;
                     }
                     if (isset($_POST['newline'][$obj_type][$field_id]) and $_POST['newline'][$obj_type][$field_id]) {
                         $newline = true;
                     }
                     $sub->appendSubstitution($field_id, $bold, $newline);
                 }
             }
         }
         $sub->update();
     }
     ilUtil::sendSuccess($this->lng->txt('settings_saved'));
     $this->showRecords();
     return true;
 }