/**
  * Fill row
  *
  * @access public
  * @param
  * 
  */
 public function fillRow($a_set)
 {
     foreach (ilAdvancedMDRecord::_getAssignableObjectTypes(true) as $obj_type) {
         $this->tpl->setCurrentBlock('ass_obj_types');
         $this->tpl->setVariable('VAL_OBJ_TYPE', $obj_type["text"]);
         $this->tpl->setVariable('ASS_ID', $a_set['id']);
         $this->tpl->setVariable('ASS_NAME', $obj_type["obj_type"] . ":" . $obj_type["sub_type"]);
         foreach ($a_set['obj_types'] as $t) {
             if ($obj_type["obj_type"] == $t["obj_type"] && $obj_type["sub_type"] == $t["sub_type"]) {
                 $this->tpl->setVariable('ASS_CHECKED', 'checked="checked"');
             }
         }
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable('VAL_ID', $a_set['id']);
     $this->tpl->setVariable('VAL_TITLE', $a_set['title']);
     if (strlen($a_set['description'])) {
         $this->tpl->setVariable('VAL_DESCRIPTION', $a_set['description']);
     }
     $defs = ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($a_set['id']);
     if (!count($defs)) {
         $this->tpl->setVariable('TXT_FIELDS', $this->lng->txt('md_adv_no_fields'));
     }
     foreach ($defs as $definition_obj) {
         $this->tpl->setCurrentBlock('field_entry');
         $this->tpl->setVariable('FIELD_NAME', $definition_obj->getTitle());
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable('ACTIVE_CHECKED', $a_set['active'] ? ' checked="checked" ' : '');
     $this->tpl->setVariable('ACTIVE_ID', $a_set['id']);
     $this->ctrl->setParameter($this->parent_obj, 'record_id', $a_set['id']);
     $this->tpl->setVariable('EDIT_LINK', $this->ctrl->getLinkTarget($this->parent_obj, 'editRecord'));
     $this->tpl->setVariable('TXT_EDIT_RECORD', $this->lng->txt('edit'));
 }
 /**
  * Get all advanced metadata fields
  */
 function getAllFields()
 {
     $fields = array();
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     $recs = ilAdvancedMDRecord::_getSelectedRecordsByObject("glo", $this->glo_id, "term");
     foreach ($recs as $record_obj) {
         include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
         foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as $def) {
             $fields[$def->getFieldId()] = array("id" => $def->getFieldId(), "title" => $def->getTitle(), "type" => $def->getFieldType());
         }
     }
     return $fields;
 }
 /**
  * To Xml.
  * This method writes only the subset Record (including all fields)
  * Use class.ilAdvancedMDRecordXMLWriter to generate a complete xml presentation.
  *
  * @access public
  * @param object ilXmlWriter
  * 
  */
 public function toXML(ilXmlWriter $writer)
 {
     $writer->xmlStartTag('Record', array('active' => $this->isActive() ? 1 : 0, 'id' => $this->generateImportId()));
     $writer->xmlElement('Title', null, $this->getTitle());
     $writer->xmlElement('Description', null, $this->getDescription());
     foreach ($this->getAssignedObjectTypes() as $obj_type) {
         $writer->xmlElement('ObjectType', null, $obj_type);
     }
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
     foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($this->getRecordId()) as $definition) {
         $definition->toXML($writer);
     }
     $writer->xmlEndTag('Record');
 }
 /**
  * Return an array of all meta data fields
  */
 public static function getFields()
 {
     global $lng;
     $lng->loadLanguageModule('meta');
     $fields['lom_content'] = $lng->txt('content');
     include_once './Services/Search/classes/class.ilSearchSettings.php';
     if (ilSearchSettings::getInstance()->enabledLucene()) {
         $fields['general_offline'] = $lng->txt('lucene_offline_filter');
     }
     //'lom_type'					= $lng->txt('type');
     $fields['lom_language'] = $lng->txt('language');
     $fields['lom_keyword'] = $lng->txt('meta_keyword');
     $fields['lom_coverage'] = $lng->txt('meta_coverage');
     $fields['lom_structure'] = $lng->txt('meta_structure');
     $fields['lom_status'] = $lng->txt('meta_status');
     $fields['lom_version'] = $lng->txt('meta_version');
     $fields['lom_contribute'] = $lng->txt('meta_contribute');
     $fields['lom_format'] = $lng->txt('meta_format');
     $fields['lom_operating_system'] = $lng->txt('meta_operating_system');
     $fields['lom_browser'] = $lng->txt('meta_browser');
     $fields['lom_interactivity'] = $lng->txt('meta_interactivity_type');
     $fields['lom_resource'] = $lng->txt('meta_learning_resource_type');
     $fields['lom_level'] = $lng->txt('meta_interactivity_level');
     $fields['lom_density'] = $lng->txt('meta_semantic_density');
     $fields['lom_user_role'] = $lng->txt('meta_intended_end_user_role');
     $fields['lom_context'] = $lng->txt('meta_context');
     $fields['lom_difficulty'] = $lng->txt('meta_difficulty');
     $fields['lom_costs'] = $lng->txt('meta_cost');
     $fields['lom_copyright'] = $lng->txt('meta_copyright_and_other_restrictions');
     $fields['lom_purpose'] = $lng->txt('meta_purpose');
     $fields['lom_taxon'] = $lng->txt('meta_taxon');
     // Append all advanced meta data fields
     include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
     foreach (ilAdvancedMDRecord::_getRecords() as $record) {
         foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record->getRecordId()) as $def) {
             if ($def->isSearchable()) {
                 $fields['adv_' . $def->getFieldId()] = $def->getTitle();
             }
         }
     }
     return $fields;
 }
 /**
  * Parse table cells
  */
 private function parseTableCells()
 {
     global $ilUser;
     $data = $this->getRowData();
     $html = "";
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     if ($this->getSelectedOnly()) {
         $recs = ilAdvancedMDRecord::_getSelectedRecordsByObject($this->obj_type, $this->obj_id, $this->sub_type);
     } else {
         $recs = ilAdvancedMDRecord::_getActivatedRecordsByObjectType($this->obj_type, $this->sub_type);
     }
     foreach ($recs as $record_obj) {
         include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
         foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as $def) {
             if ($this->handleECSDefinitions($def)) {
                 continue;
             }
             $html .= "<td class='std'>" . $data['md_' . $def->getFieldId()] . "</td>";
         }
     }
     return $html;
 }
 private function parseInfoPage()
 {
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     foreach (ilAdvancedMDRecord::_getActivatedRecordsByObjectType($this->obj_type) as $record_obj) {
         $this->info->addSection($record_obj->getTitle());
         include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
         foreach (ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as $def) {
             include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDValue.php';
             $value = ilAdvancedMDValue::_getInstance($this->obj_id, $def->getFieldId());
             switch ($def->getFieldType()) {
                 case ilAdvancedMDFieldDefinition::TYPE_TEXT:
                     if ($value->getValue()) {
                         $this->info->addProperty($def->getTitle(), $value->getValue());
                     }
                     break;
                 case ilAdvancedMDFieldDefinition::TYPE_SELECT:
                     if ($value->getValue()) {
                         $this->info->addProperty($def->getTitle(), $value->getValue());
                     }
                     break;
                 case ilAdvancedMDFieldDefinition::TYPE_DATE:
                     if ($value->getValue()) {
                         $this->info->addProperty($def->getTitle(), ilDatePresentation::formatDate(new ilDate($value->getValue(), IL_CAL_UNIX)));
                     }
                     break;
                 case ilAdvancedMDFieldDefinition::TYPE_DATETIME:
                     if ($value->getValue()) {
                         $this->info->addProperty($def->getTitle(), ilDatePresentation::formatDate(new ilDateTime($value->getValue(), IL_CAL_UNIX)));
                     }
                     break;
             }
         }
     }
 }
 /**
  * Edit one record
  *
  * @access public
  * @param
  * 
  */
 public function editRecord()
 {
     // reset session
     $_SESSION['num_values'] = 5;
     $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.edit_record.html', 'Services/AdvancedMetaData');
     $this->ctrl->saveParameter($this, 'record_id');
     $this->initRecordObject();
     $this->initForm('edit');
     $this->tpl->setVariable('EDIT_RECORD_TABLE', $this->form->getHTML());
     // show field table
     include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
     $fields = ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($this->record->getRecordId());
     include_once "./Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldTableGUI.php";
     $table_gui = new ilAdvancedMDFieldTableGUI($this, "editRecord");
     $table_gui->setTitle($this->lng->txt("md_adv_field_table"));
     $table_gui->parseDefinitions($fields);
     $table_gui->addCommandButton("updateFields", $this->lng->txt("save"));
     $table_gui->addCommandButton('createField', $this->lng->txt('add'));
     $table_gui->addCommandButton('showRecords', $this->lng->txt('cancel'));
     $table_gui->addMultiCommand("confirmDeleteFields", $this->lng->txt("delete"));
     $table_gui->setSelectAllCheckbox("field_id");
     $this->tpl->setVariable('FIELDS_TABLE', $table_gui->getHTML());
 }