/**
  * get client information from current as xml result set
  *
  * @param string $sid  current session id
  *
  * @return XMLResultSet containing columns installation_id, installation_version, installation_url, installation_description, installation_default_language
  */
 function getNIC($sid)
 {
     $this->initAuth($sid);
     $this->initIlias();
     if (!$this->__checkSession($sid)) {
         return $this->__raiseError($this->__getMessage(), $this->__getMessageCode());
     }
     global $rbacsystem, $rbacreview, $ilLog, $rbacadmin, $ilSetting, $ilClientIniFile;
     if (!is_object($ilClientIniFile)) {
         return $this->__raiseError("Client ini is not initialized", "Server");
     }
     $auth_modes = ilAuthUtils::_getActiveAuthModes();
     $auth_mode_default = strtoupper(ilAuthUtils::_getAuthModeName(array_shift($auth_modes)));
     $auth_mode_names = array();
     foreach ($auth_modes as $mode) {
         $auth_mode_names[] = strtoupper(ilAuthUtils::_getAuthModeName($mode));
     }
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordXMLWriter.php';
     // create advanced meta data record xml
     $record_ids = array();
     $record_types = ilAdvancedMDRecord::_getAssignableObjectTypes();
     foreach ($record_types as $type) {
         $records = ilAdvancedMDRecord::_getActivatedRecordsByObjectType($type);
         foreach ($records as $record) {
             $record_ids[] = $record->getRecordId();
         }
     }
     $record_ids = array_unique($record_ids);
     $advmwriter = new ilAdvancedMDRecordXMLWriter($record_ids);
     $advmwriter->write();
     // create user defined fields record xml, simulate empty user records
     include_once "./Services/User/classes/class.ilUserXMLWriter.php";
     $udfWriter = new ilUserXMLWriter();
     $users = array();
     $udfWriter->setObjects($users);
     $udfWriter->start();
     // todo: get information from client id, read from ini file specificied
     $client_details[] = array("installation_id" => IL_INST_ID, "installation_version" => ILIAS_VERSION, "installation_url" => ILIAS_HTTP_PATH, "installation_description" => $ilClientIniFile->readVariable("client", "description"), "installation_language_default" => $ilClientIniFile->readVariable("language", "default"), "installation_session_expire" => $ilClientIniFile->readVariable("session", "expire"), "installation_php_postmaxsize" => $this->return_bytes(ini_get("post_max_size")), "authentication_methods" => join(",", $auth_mode_names), "authentication_default_method" => $auth_mode_default, "installation_udf_xml" => $udfWriter->getXML(), "installation_advmd_xml" => $advmwriter->xmlDumpMem(false));
     // store into xml result set
     include_once './webservice/soap/classes/class.ilXMLResultSet.php';
     $xmlResult = new ilXMLResultSet();
     $xmlResult->addArray($client_details, true);
     // create writer and return xml
     include_once './webservice/soap/classes/class.ilXMLResultSetWriter.php';
     $xmlResultWriter = new ilXMLResultSetWriter($xmlResult);
     $xmlResultWriter->start();
     return $xmlResultWriter->getXML();
 }
 /**
  * Export records
  *
  * @access public
  */
 public function exportRecords()
 {
     if (!isset($_POST['record_id'])) {
         ilUtil::sendFailure($this->lng->txt('select_one'));
         $this->showRecords();
         return false;
     }
     // all records have to be exportable
     $fail = array();
     foreach ($_POST['record_id'] as $record_id) {
         if (!$this->getPermissions()->hasPermission(ilAdvancedMDPermissionHelper::CONTEXT_RECORD, $record_id, ilAdvancedMDPermissionHelper::ACTION_RECORD_EXPORT)) {
             $record = ilAdvancedMDRecord::_getInstanceByRecordId($record_id);
             $fail[] = $record->getTitle();
         }
     }
     if ($fail) {
         ilUtil::sendFailure($this->lng->txt('msg_no_perm_copy') . " " . implode(", ", $fail), true);
         $this->ctrl->redirect($this, "showRecords");
     }
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordXMLWriter.php';
     $xml_writer = new ilAdvancedMDRecordXMLWriter($_POST['record_id']);
     $xml_writer->write();
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php';
     $export_files = new ilAdvancedMDRecordExportFiles();
     $export_files->create($xml_writer->xmlDumpMem());
     ilUtil::sendSuccess($this->lng->txt('md_adv_records_exported'));
     $this->showFiles();
 }
 /**
  * Export records
  *
  * @access public
  */
 public function exportRecords()
 {
     if (!isset($_POST['record_id'])) {
         ilUtil::sendFailure($this->lng->txt('select_one'));
         $this->showRecords();
         return false;
     }
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordXMLWriter.php';
     $xml_writer = new ilAdvancedMDRecordXMLWriter($_POST['record_id']);
     $xml_writer->write();
     include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordExportFiles.php';
     $export_files = new ilAdvancedMDRecordExportFiles();
     $export_files->create($xml_writer->xmlDumpMem());
     ilUtil::sendSuccess($this->lng->txt('md_adv_records_exported'));
     $this->showFiles();
 }