コード例 #1
0
ファイル: export.php プロジェクト: BackupTheBerlios/sotf
 */
require "init.inc.php";
$id = sotf_Utils::getParameter('id');
$type = sotf_Utils::getParameter('type');
$prg =& new sotf_Programme($id);
if (!$prg) {
    raiseError("no_such_object", $id);
}
if (!$prg->isLocal()) {
    raiseError("works only for local objects!", $id);
    exit;
}
checkPerm($prg, 'change');
if ($type == 1) {
    // send XBMF metadata
    $meta = new sotf_Metadata($prg);
    $md = $meta->getXBMFMetadata();
    header("Content-type: application/xml\n");
    //header("Content-type: text/plain\n");
    //header("Content-transfer-encoding: binary\n");
    header("Content-length: " . strlen($md) . "\n");
    echo $md;
} elseif ($type == 2) {
    // actualize metadata
    $prg->saveMetadataFile();
    // send XBMF
    $file = tempnam($config['tmpDir'], 'export');
    $dir = $prg->getDir();
    $dir1 = basename($dir);
    $dir2 = dirname($dir);
    $xdir = "XBMF_{$dir1}";
コード例 #2
0
 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;
 }