function saveMetadataFile() { global $permissions; $name = get_class($this); $name = str_replace("sotf_", "", $name); $xml = "<{$name}>"; $xml .= sotf_Utils::writeXML('data', $this->data, 1); $roles = $this->getRoles(); $xml .= sotf_Utils::writeXML('role', $roles, 1); $perms = $permissions->listUsersAndPermissions($this->id); $xml .= sotf_Utils::writeXML('permission', $perms, 1); $xml = $xml . "\n</{$name}>\n"; $file = $this->getMetaDir() . '/metadump.xml'; debug("dumping metadata xml in", $file); $fp = fopen("{$file}", "w"); fwrite($fp, $xml); fclose($fp); return true; }
function saveMetadataFile() { global $permissions; if (!is_dir($this->getMetaDir())) { addError("Programme dir not found", $this->getMetaDir()); return false; } $name = get_class($this); $name = str_replace("sotf_", "", $name); $xml = "<{$name}>"; $xml .= sotf_Utils::writeXML('data', $this->data, 1); $roles = $this->getRoles(); $xml .= sotf_Utils::writeXML('role', $roles, 1); $perms = $permissions->listUsersAndPermissions($this->id); $xml .= sotf_Utils::writeXML('permission', $perms, 1); $links = $this->getAssociatedObjects('sotf_links', 'caption'); $xml .= sotf_Utils::writeXML('link', $links, 1); $rights = $this->getAssociatedObjects('sotf_rights', 'start_time'); $xml .= sotf_Utils::writeXML('right', $rights, 1); $topics = $this->getTopics(); $xml .= sotf_Utils::writeXML('topic', $topics, 1); $xml = $xml . "\n</{$name}>\n"; // TODO: save more data from other tables as well !!!!! $file = $this->getMetaDir() . '/metadump.xml'; debug("dumping metadata xml in", $file); $fp = fopen("{$file}", "w"); if (!$fp) { logError("Could not dump metadata into {$file}"); // TODO: in this case the prg has been deleted in the meantime?? } else { fwrite($fp, $xml); fclose($fp); } // save XBMF if (is_writable($this->getMetaDir())) { $meta = new sotf_Metadata($this); $xbmf = $meta->getXBMFMetadata(); $file = $this->getMetaDir() . '/metadata.xml'; sotf_Utils::save($file, $xbmf); } // to change modify_date $this->update(); return true; }
function writeXML($name, $array, $level = 0) { if (empty($array)) { //return "\n" . str_repeat(' ',$level) . "<$name />"; return ""; } if (sotf_Utils::isAssocArray($array)) { $retval = "\n" . str_repeat(' ', $level) . "<{$name}>"; reset($array); while (list($key, $value) = each($array)) { $type = gettype($value); switch ($type) { case 'array': $retval .= sotf_Utils::writeXML($key, $value, $level + 1); break; default: $retval .= "\n" . str_repeat(' ', $level + 1) . "<{$key}>" . htmlspecialchars($value) . "</{$key}>"; } } $retval .= "\n" . str_repeat(' ', $level) . "</{$name}>"; } else { reset($array); while (list($key, $value) = each($array)) { $type = gettype($value); switch ($type) { case 'array': $retval .= sotf_Utils::writeXML($name, $value, $level); break; default: $retval .= "\n" . str_repeat(' ', $level) . "<{$name}>" . htmlspecialchars($value) . "</{$name}>"; } } } return $retval; }