archiveFileNames = array(); $this->archiveName = self::DEFAULT_ARCHIVE_NAME; $this->zip = new ZipArchive(); } private function getImportFileName($number) { return "import".$number.".xml"; } private function getOffersFileName($number) { return "offers".$number.".xml"; } private function getOrdersFileName() { return "orders.xml"; } /** * Rewrite archive content by ctaalogs information. * @param array $imports * @param array $offers */ public function setZipCatalogsContent($imports, $offers) { unlink(self::UPLOAD_DIR.$this->archiveName); $this->zip->open(self::UPLOAD_DIR.$this->archiveName, ZIPARCHIVE::CREATE); $this->archiveFileNames = array(); foreach($imports as $number => $content) { $importFileName = $this->getImportFileName($number); $offersFileName = $this->getOffersFileName($number); $this->zip->addFromString($importFileName, $imports[$number]); $this->zip->addFromString($offersFileName, $offers[$number]); $this->archiveFileNames[] = $importFileName; $this->archiveFileNames[] = $offersFileName; } $this->zip->close(); } /** * Adds orders description to archive. * @param String $orders */ public function setZipOrdersContent($orders) { unlink(self::UPLOAD_DIR.$this->archiveName); $this->zip->open(self::UPLOAD_DIR.$this->archiveName, ZIPARCHIVE::CREATE); $this->zip->addFromString($this->getOrdersFileName(), $orders); $this->zip->close(); $this->archiveFileNames = array(); $this->archiveFileNames[] = $this->getOrdersFileName(); } /** * Return binary content of zip file. * @return String */ public function getZipContent() { $zipCatalog = file_get_contents(self::UPLOAD_DIR.$this->archiveName); return $zipCatalog; } /** * Return archive name. * @return String */ public function getZipFileName() { return $this->archiveName; } /** * Return all file names which contains in archive. Return order - by add order. * @return array */ public function getArchiveFileNames() { return $this->archiveFileNames; } }