public function exportAction() { set_time_limit(0); $config = Config::get(); $dbname = $config->database->name; $dbuser = $config->database->user; $dbpass = $config->database->password; $dbhost = $config->database->host; $outputDir = APPLICATION_ROOT; $sqlSubDir = '__sql'; if (!file_exists($outputDir . $sqlSubDir) && !mkdir($outputDir . $sqlSubDir)) { header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error'); die('Could not create output directory'); } // dump database $dbFilename = $sqlSubDir . '/' . $dbname . '.sql'; $command = "mysqldump -h {$dbhost} -u {$dbuser} -p{$dbpass} --add-drop-table --databases {$dbname} > {$outputDir}{$dbFilename}"; system($command); // create zip file $zipFilename = 'export_' . date('YmdHis') . '.zip'; $zip = new ZipArchive(); if ($zip->open($zipFilename, file_exists($zipFilename) ? \ZIPARCHIVE::OVERWRITE : \ZIPARCHIVE::CREATE) !== true) { header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error'); die('Could not create zip file'); } $this->zip($zip, array($dbFilename => $outputDir . $dbFilename, $outputDir . 'user-data/')); $zip->close(); // encrypt zip $encryptedFilename = $zipFilename . '.enc'; $command = "openssl enc -aes-256-cbc -pass pass:"******" < {$outputDir}{$zipFilename} > {$outputDir}{$encryptedFilename}"; system($command); // send file contents header('Content-Length: ' . filesize($outputDir . $encryptedFilename)); $this->sendFileContents($outputDir . $encryptedFilename); // clean up FileUtils::deleteFolder($outputDir . $sqlSubDir); FileUtils::deleteFile($outputDir . $zipFilename); FileUtils::deleteFile($outputDir . $encryptedFilename); die; }
public function deleteImageDir($row_id) { $image_dir = $this->getImageDir($row_id); if ($image_dir !== false && $image_dir != '') { $image_dir = trim($image_dir, DIRECTORY_SEPARATOR); if (is_dir($image_dir)) { FileUtils::deleteFolder($image_dir); } } }
private function switchTemplate($page_id, $new_template_id, $properties = null) { if ($properties === null) { $properties = $this->pages->getProperties($page_id); } if ($properties !== null && $properties !== false) { $old_template_id = $properties['template-id']; if ($new_template_id != $old_template_id) { // Ver�ffentlichte Seite samt Dateien l�schen $published_folder = $this->pages->getPagePublishedFolder($page_id, $properties); $published_data_file = $published_folder . Pages::DATA_FILE_NAME; $published_files_folder = $published_folder . Pages::PAGE_FILES_FOLDER_NAME; if (file_exists($published_data_file)) { FileUtils::deleteFile($published_data_file); } if (file_exists($published_files_folder)) { FileUtils::deleteFolder($published_files_folder); } // Bearbeitete Seite samt Dateien l�schen $edit_folder = $this->pages->getPageeditFolder($page_id, $properties); $edit_data_file = $edit_folder . Pages::DATA_FILE_NAME; $edit_files_folder = $edit_folder . Pages::PAGE_FILES_FOLDER_NAME; if (file_exists($edit_data_file)) { FileUtils::deleteFile($edit_data_file); } if (file_exists($edit_files_folder)) { FileUtils::deleteFolder($edit_files_folder); } // ge�nderte Eigenschaften setzen $edit_properties = array('template-id' => $new_template_id, 'last-change-date' => time(), 'last-change-user-id' => Auth::getUserId(), 'last-change-user-name' => Auth::getScreenName(), 'status' => Pages::STATUS_NEW); $this->pages->setProperties($page_id, $edit_properties); return true; } } return false; }
public function publish($id) { $properties = $this->getProperties($id); if ($properties === false) { return false; } $res = true; if ($properties['status'] != self::STATUS_PUBLISHED) { $published_folder = $this->getPagePublishedFolder($id, $properties); $edit_folder = $this->getPageEditFolder($id, $properties); if (file_exists($edit_folder)) { if (file_exists($published_folder)) { FileUtils::deleteFolder($published_folder); } FileUtils::rename($edit_folder, $published_folder); } $new_properties = array('status' => self::STATUS_PUBLISHED, 'last-publish-date' => time()); $res = $this->setProperties($id, $new_properties); } $parameters = array('pageId' => $id); $data = null; Plugins::call(Plugins::PUBLISH_PAGE, $parameters, $data); return $res; }