<?php $action = false; $galleryBlocks = \CoasterCms\Models\Block::where('type', '=', 'gallery')->get(); if (!$galleryBlocks->isEmpty()) { $galleryStorage = public_path() . '/uploads/system/gallery/'; foreach ($galleryBlocks as $galleryBlock) { $oldGalleryDir = $galleryStorage . $galleryBlock->id; $newGalleryDir = $galleryStorage . $galleryBlock->name; if (is_dir($oldGalleryDir)) { $action = true; \CoasterCms\Helpers\Cms\File\Directory::copy($oldGalleryDir, $newGalleryDir); \CoasterCms\Helpers\Cms\File\Directory::remove($oldGalleryDir); } } } if ($action) { echo "Coaster Framework: Moved gallery files so they are stored by block name\n"; }
public function postIndex() { if (Auth::action('system.update')) { $settings = Request::all(); unset($settings['_token']); foreach ($settings as $setting => $value) { $setting = str_replace($this->dot_replace, '.', $setting); $current_setting = Setting::where('name', '=', $setting)->where('editable', '=', 1)->first(); if (!empty($current_setting)) { if ($setting == 'site.secure_folders') { $newValues = explode(',', $value); foreach ($newValues as $k => $folder) { $folder = trim($folder); if (empty($folder)) { unset($newValues[$k]); } else { $newValues[$k] = '/' . trim($folder, '/') . '/'; } } foreach ($newValues as $k => $folder) { foreach ($newValues as $kCheck => $folderCheck) { if ($k != $kCheck && strpos($folder, $folderCheck) === 0) { unset($newValues[$k]); } } } $oldValues = explode(',', $current_setting->value); foreach ($oldValues as $k => $folder) { $folder = trim($folder); if (empty($folder)) { unset($oldValues[$k]); } else { $oldValues[$k] = '/' . trim($folder, '/') . '/'; } } $toSecure = array_diff($newValues, $oldValues); $toUnSecure = array_diff($oldValues, $newValues); foreach ($toSecure as $newSecureFolder) { if (is_dir(public_path() . '/uploads' . $newSecureFolder)) { Directory::copy(public_path() . '/uploads' . $newSecureFolder, storage_path() . '/uploads' . $newSecureFolder); Directory::remove(public_path() . '/uploads' . $newSecureFolder, true); } else { @mkdir(storage_path() . '/uploads' . $newSecureFolder, 0777, true); } } foreach ($toUnSecure as $newUnSecureFolder) { if (is_dir(storage_path() . '/uploads' . $newUnSecureFolder)) { Directory::copy(storage_path() . '/uploads' . $newUnSecureFolder, public_path() . '/uploads' . $newUnSecureFolder); Directory::remove(storage_path() . '/uploads' . $newUnSecureFolder); } else { @mkdir(public_path() . '/uploads' . $newUnSecureFolder, 0777, true); } } $value = implode(',', $newValues); } $current_setting->value = $value; $current_setting->save(); if (in_array($setting, ['frontend.theme', 'admin.default_template'])) { Theme::templateIdUpdate(); } } } AdminLog::new_log('System settings updated'); $this->addAlert('success', 'System Settings Updated'); } return \redirect()->route('coaster.admin.system'); }
public static function export($themeId, $withPageData) { $theme = self::find($themeId); if (!empty($theme)) { $themesDir = base_path() . '/resources/views/themes/'; $zipFileName = $theme->theme . '.zip'; // export blocks BlockUpdater::exportBlocks($theme); if ($withPageData) { // export page data self::_pageExportData($theme); } $zip = new Zip(); $zip->open($themesDir . $zipFileName, Zip::CREATE); $zip->addDir($themesDir . $theme->theme, 'views', function ($addFrom, $addTo) use($withPageData) { if ($addTo == 'views/import') { $addTo = ''; } if (stripos($addTo, '/.svn/') !== false) { $addTo = ''; } if (!$withPageData && stripos($addTo, 'views/export/pages') === 0) { $addTo = ''; } if (stripos($addTo, 'views/export') === 0) { $addTo = 'views/import' . substr($addTo, 12); } return [$addFrom, $addTo]; }); $zip->addDir(public_path() . '/themes/' . $theme->theme, 'public', function ($addFrom, $addTo) { if (stripos($addTo, '/.svn/') !== false) { $addTo = ''; } return [$addFrom, $addTo]; }); if (!empty(self::$_uploadsToAdd)) { foreach (self::$_uploadsToAdd as $zipPath => $dirPath) { if (file_exists($dirPath) && !is_dir($dirPath)) { $zip->addFile($dirPath, $zipPath); } } } $zip->close(); header("Content-type: application/zip"); header("Content-Disposition: attachment; filename=" . $zipFileName); header('Content-Length: ' . filesize($themesDir . $zipFileName)); header("Pragma: no-cache"); header("Expires: 0"); readfile($themesDir . $zipFileName); unlink($themesDir . $zipFileName); Directory::remove($themesDir . $theme->theme . '/export'); exit; } return 'error'; }
unlink($nestedSortableZip); echo "."; $fancyBoxZip = public_path('coaster/jquery/fancyBox-2.1.5.zip'); $response = $guzzleClient->request('GET', 'https://github.com/fancyapps/fancyBox/archive/v2.1.5.zip', ['sink' => $fancyBoxZip]); $zip = new \CoasterCms\Helpers\Cms\File\Zip(); $zip->open($fancyBoxZip); $zip->extractDir('fancyBox-2.1.5/source', public_path('coaster/jquery/fancybox')); $zip->close(); unlink($fancyBoxZip); echo "."; $jQueryFileUploadDir = base_path('vendor/blueimp/jquery-file-upload'); $jQueryFileUploadPublicDir = public_path('coaster/jquery/gallery-upload'); \CoasterCms\Helpers\Cms\File\Directory::copy($jQueryFileUploadDir . '/cors', $jQueryFileUploadPublicDir . '/cors'); \CoasterCms\Helpers\Cms\File\Directory::copy($jQueryFileUploadDir . '/css', $jQueryFileUploadPublicDir . '/css'); \CoasterCms\Helpers\Cms\File\Directory::copy($jQueryFileUploadDir . '/img', $jQueryFileUploadPublicDir . '/img'); \CoasterCms\Helpers\Cms\File\Directory::copy($jQueryFileUploadDir . '/js', $jQueryFileUploadPublicDir . '/js'); \CoasterCms\Helpers\Cms\File\File::replaceString($jQueryFileUploadDir . '/js/main.js', ' url: \'server/php/\'', ' url: window.location.href.replace(\'/edit/\', \'/update/\')'); echo "."; $jQueryFileUploadExternal = $jQueryFileUploadPublicDir . '/Gallery-2.16.0.zip'; $response = $guzzleClient->request('GET', 'https://github.com/blueimp/Gallery/archive/2.16.0.zip', ['sink' => $jQueryFileUploadExternal]); $zip = new \CoasterCms\Helpers\Cms\File\Zip(); $zip->open($jQueryFileUploadExternal); $zip->extractFile('Gallery-2.16.0/js/jquery.blueimp-gallery.min.js', $jQueryFileUploadPublicDir . '/js/external/jquery.blueimp-gallery.min.js'); $zip->close(); unlink($jQueryFileUploadExternal); echo "."; $jQueryFileUploadExternal = $jQueryFileUploadPublicDir . '/JavaScript-Canvas-to-Blob-2.2.0.zip'; $response = $guzzleClient->request('GET', 'https://github.com/blueimp/JavaScript-Canvas-to-Blob/archive/2.2.0.zip', ['sink' => $jQueryFileUploadExternal]); $zip = new \CoasterCms\Helpers\Cms\File\Zip(); $zip->open($jQueryFileUploadExternal); $zip->extractFile('JavaScript-Canvas-to-Blob-2.2.0/js/canvas-to-blob.min.js', $jQueryFileUploadPublicDir . '/js/external/canvas-to-blob.min.js');