private static function doParse($source)
 {
     // 附件
     $attachments = array();
     $data = array('meta' => self::generateMeta(), 'topic' => self::parseTopic($source, $attachments));
     $content = Tpl::compile("xmind/content.xml", $data);
     $meta = Tpl::compile("xmind/meta.xml");
     $revisionsData = self::getRevisionsData();
     $revisions = Tpl::compile("xmind/revisions.xml", array('meta' => $data['meta'], 'revisions' => $revisionsData));
     $rev = Tpl::compile("xmind/rev.xml", $data);
     $manifest = Tpl::compile("xmind/manifest.xml", array('meta' => $data['meta'], 'revisions' => $revisionsData, 'attachments' => $attachments));
     $path = self::write($data['meta'], array('content' => $content, 'meta' => $meta, 'revisions' => $revisions, 'rev' => $rev, 'manifest' => $manifest, 'attachments' => $attachments));
     $archivePath = Ziper::compress($path);
     return self::move($data['meta'], $archivePath);
 }
Beispiel #2
0
 private static function _compress($archive, $filepath, $path)
 {
     if (!file_exists($filepath)) {
         return;
     }
     if (is_dir($filepath)) {
         $childs = scandir($filepath);
         foreach ($childs as $f) {
             if ($f == "." || $f == "..") {
                 continue;
             }
             Ziper::_compress($archive, $filepath . '/' . $f, $path);
         }
     } else {
         $archive->addFile($filepath, str_replace($path, "", $filepath));
     }
 }