Пример #1
0
 function create($type)
 {
     $docManifestNode =& $this->xml->createElement("manifest:manifest");
     $docManifestNode->setAttribute("xmlns:manifest", "http://openoffice.org/2001/manifest");
     $fileEntryNode =& $this->xml->createElement("manifest:file-entry");
     if (in_array($type, $this->XMLTYPE)) {
         $fileEntryNode->setAttribute("manifest:media-type", "application/" . $this->MIME[$type]);
     } else {
         $this->ErrorTracker(4, 'Le type ' . $type . " est inconnu", 'create', __FILE__, __LINE__);
     }
     $fileEntryNode->setAttribute("manifest:full-path", "/");
     $docManifestNode->appendChild($fileEntryNode);
     $cdir = new CDir();
     $cdir->Read($this->DIRXML . "/", "", true, 5, true, true);
     $allFiles = array();
     $sortFiles = $cdir->sort("'Path'", false, 4, "'File'", true, 0);
     reset($sortFiles);
     while (list($sKey, $aFile) = each($sortFiles)) {
         $sFileName = $cdir->FileName($aFile);
         $sFilePath = $cdir->GetPath($aFile);
         $mediaType = "";
         $sExtension = "";
         $fileEntryNode =& $this->xml->createElement("manifest:file-entry");
         $i = strrpos($sFileName, ".") + 1;
         if (substr($sFileName, $i - 1, 1) == ".") {
             $sExtension = substr($sFileName, $i);
         }
         switch ($sExtension) {
             case "":
                 $mediaType = "";
                 break;
             case "png":
             case "gif":
             case "jpeg":
                 $mediaType = "image/" . $sExtension;
                 break;
             default:
                 $mediaType = "text/xml";
         }
         // switch
         $dirname = dirname($this->DIRXML . "/" . $sFilePath . $sFileName);
         $filename = basename($this->DIRXML . "/" . $sFilePath . $sFileName);
         if ($dirname != $this->DIRXML) {
             $filename = str_replace($this->DIRXML . "/", "", $dirname) . "/" . $filename;
         } else {
             if ($cdir->GetIsDirectory($aFile)) {
                 $filename = $filename . "/";
             }
         }
         $fileEntryNode->setAttribute("manifest:media-type", $mediaType);
         $fileEntryNode->setAttribute("manifest:full-path", $filename);
         $docManifestNode->appendChild($fileEntryNode);
     }
     $this->xml->setDocumentElement($docManifestNode);
     $this->xml->setXMLDeclaration("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
 }
Пример #2
0
 function listFiles()
 {
     $cdir = new CDir();
     $cdir->Read($this->tmpdir . "/", "", true, 5, true, true);
     $allFiles = array();
     reset($cdir->aFiles);
     while (list($sKey, $aFile) = each($cdir->aFiles)) {
         $sFileName = $cdir->FileName($aFile);
         $sFilePath = $cdir->GetPath($aFile);
         $allFiles[] = $this->tmpdir . "/" . $sFilePath . $sFileName;
     }
     return $allFiles;
 }