function generatePDF() { // tempfolder $tmpBaseFolder = TEMP_FOLDER . '/shopsystem'; $tmpFolder = project() ? "{$tmpBaseFolder}/" . project() : "{$tmpBaseFolder}/site"; if (is_dir($tmpFolder)) { Filesystem::removeFolder($tmpFolder); } if (!file_exists($tmpFolder)) { Filesystem::makeFolder($tmpFolder); } $baseFolderName = basename($tmpFolder); //Get site Requirements::clear(); $link = Director::absoluteURL($this->pdfLink() . "/?view=1"); $response = Director::test($link); $content = $response->getBody(); $content = utf8_decode($content); $contentfile = "{$tmpFolder}/" . $this->PublicURL . ".html"; if (!file_exists($contentfile)) { // Write to file if ($fh = fopen($contentfile, 'w')) { fwrite($fh, $content); fclose($fh); } } return $contentfile; }
/** * Setup the environment to point to a temporary location * * @param type $path */ protected function setTemporaryPath($path) { $this->envPath = $path; Filesystem::makeFolder($this->envPath); $this->envPath = realpath($this->envPath); Injector::inst()->load(array('DNData' => array('properties' => array('EnvironmentDir' => $this->envPath, 'KeyDir' => TEMP_FOLDER . '/deploynaut_test/gitkeys', 'DataTransferDir' => Director::baseFolder() . '/assets/transfers', 'GitUser' => '')))); }
public function setUp() { parent::setUp(); $this->rootDir = ASSETS_PATH . '/AssetAdapterTest'; Filesystem::makeFolder($this->rootDir); $this->originalServer = $_SERVER; }
public function setUp() { parent::setUp(); // Set backend root to /ImageTest AssetStoreTest_SpyStore::activate('FileTest'); // Create a test folders for each of the fixture references $folderIDs = $this->allFixtureIDs('Folder'); foreach ($folderIDs as $folderID) { $folder = DataObject::get_by_id('Folder', $folderID); $filePath = ASSETS_PATH . '/FileTest/' . $folder->getFilename(); SS_Filesystem::makeFolder($filePath); } // Create a test files for each of the fixture references $fileIDs = $this->allFixtureIDs('File'); foreach ($fileIDs as $fileID) { $file = DataObject::get_by_id('File', $fileID); $root = ASSETS_PATH . '/FileTest/'; if ($folder = $file->Parent()) { $root .= $folder->getFilename(); } $path = $root . substr($file->getHash(), 0, 10) . '/' . basename($file->getFilename()); SS_Filesystem::makeFolder(dirname($path)); $fh = fopen($path, "w+"); fwrite($fh, str_repeat('x', 1000000)); fclose($fh); } // Conditional fixture creation in case the 'cms' module is installed if (class_exists('ErrorPage')) { $page = new ErrorPage(array('Title' => 'Page not Found', 'ErrorCode' => 404)); $page->write(); $page->publish('Stage', 'Live'); } }
/** * writeTo * * @param string $path * @return void */ public function writeTo($path) { Filesystem::makeFolder(dirname($path)); if (is_dir(dirname($path))) { self::writeImage($path); } }
/** * * @param SilverStripeContentItem $item * @param type $parentObject * @param type $duplicateStrategy * @return TransformResult */ public function transform($item, $parentObject, $duplicateStrategy) { $newFile = $this->getTypeForFile($item->Name); $newFile = new $newFile(); $folderPath = $parentObject->getRelativePath(); $parentId = $parentObject ? $parentObject->ID : 0; $filter = '"ParentID" = \'' . Convert::raw2sql($parentId) . '\' and "Title" = \'' . Convert::raw2sql($item->Name) . '\''; $existing = DataObject::get_one('File', $filter); if ($existing && $duplicateStrategy == ExternalContentTransformer::DS_SKIP) { // just return the existing children return new TransformResult($existing, null); } else { if ($existing && $duplicateStrategy == ExternalContentTransformer::DS_OVERWRITE) { $newFile = $existing; } } $newFile->Name = $item->Name; $newFile->RemoteNodeId = $item->getSS_ID(); $newFile->RemoteSystemId = $item->getSource()->ID; $newFile->Title = $item->Title; $newFile->ParentID = $parentId; $newFile->write(); $filepath = Director::baseFolder() . '/' . $newFile->Filename; Filesystem::makeFolder(dirname($filepath)); $item->streamContent($filepath); return new TransformResult($newFile, null); }
public function setUp() { parent::setUp(); $this->logInWithPermission('ADMIN'); Versioned::reading_stage('Stage'); // Set backend root to /AssetFieldTest AssetStoreTest_SpyStore::activate('AssetFieldTest'); $create = function ($path) { Filesystem::makeFolder(dirname($path)); $fh = fopen($path, "w+"); fwrite($fh, str_repeat('x', 1000000)); fclose($fh); }; // Write all DBFile references foreach (AssetFieldTest_Object::get() as $object) { $path = AssetStoreTest_SpyStore::getLocalPath($object->File); $create($path); } // Create a test files for each of the fixture references $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $path = AssetStoreTest_SpyStore::getLocalPath($file); $create($path); } }
public function setUp() { parent::setUp(); $this->loginWithPermission('ADMIN'); // Save versioned state $this->oldReadingMode = Versioned::get_reading_mode(); Versioned::set_stage(Versioned::DRAFT); // Set backend root to /UploadFieldTest AssetStoreTest_SpyStore::activate('UploadFieldTest'); // Set the File Name Filter replacements so files have the expected names Config::inst()->update('FileNameFilter', 'default_replacements', array('/\\s/' => '-', '/_/' => '-', '/[^A-Za-z0-9+.\\-]+/' => '', '/[\\-]{2,}/' => '-', '/^[\\.\\-_]+/' => '')); // Create a test folders for each of the fixture references foreach (Folder::get() as $folder) { $path = AssetStoreTest_SpyStore::getLocalPath($folder); Filesystem::makeFolder($path); } // Create a test files for each of the fixture references $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $path = AssetStoreTest_SpyStore::getLocalPath($file); Filesystem::makeFolder(dirname($path)); $fh = fopen($path, "w+"); fwrite($fh, str_repeat('x', 1000000)); fclose($fh); } }
public function setUp() { if (get_class($this) == "ImageTest") { $this->skipTest = true; } parent::setUp(); if ($this->skipTest) { return; } // Set backend root to /ImageTest AssetStoreTest_SpyStore::activate('ImageTest'); // Copy test images for each of the fixture references $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $image) { $filePath = AssetStoreTest_SpyStore::getLocalPath($image); // Only correct for test asset store $sourcePath = BASE_PATH . '/framework/tests/model/testimages/' . $image->Name; if (!file_exists($filePath)) { SS_Filesystem::makeFolder(dirname($filePath)); if (!copy($sourcePath, $filePath)) { user_error('Failed to copy test images', E_USER_ERROR); } } } }
public function onSyncro($properties) { if (isset($properties->RAW_FILE)) { $path = $this->owner->getFullPath(); Filesystem::makeFolder(dirname($path)); file_put_contents($path, base64_decode($properties->RAW_FILE)); } }
public function setUp() { parent::setUp(); $this->envPath = '/tmp/deploynaut_test/envs'; Filesystem::makeFolder($this->envPath); Config::inst()->update('Injector', 'DNData', array('constructor' => array(0 => $this->envPath, 1 => '/tmp/deploynaut_test/gitkeys', 2 => Director::baseFolder() . '/assets/transfers'))); parent::setUp(); $this->project = new DNProject(); $this->project->Name = 'testproject'; }
function setUp() { parent::setUp(); $this->orig['ErrorPage_staticfilepath'] = ErrorPage::get_static_filepath(); $this->tmpAssetsPath = sprintf('%s/_tmp_assets_%s', TEMP_FOLDER, rand()); Filesystem::makeFolder($this->tmpAssetsPath . '/ErrorPageTest'); ErrorPage::set_static_filepath($this->tmpAssetsPath . '/ErrorPageTest'); $this->orig['Director_environmenttype'] = Director::get_environment_type(); Director::set_environment_type('live'); }
public function setUp() { parent::setUp(); $this->orig['ErrorPage_staticfilepath'] = ErrorPage::config()->static_filepath; $this->tmpAssetsPath = sprintf('%s/_tmp_assets_%s', TEMP_FOLDER, rand()); Filesystem::makeFolder($this->tmpAssetsPath . '/ErrorPageTest'); ErrorPage::config()->static_filepath = $this->tmpAssetsPath . '/ErrorPageTest'; $this->origEnvType = Config::inst()->get('Director', 'environment_type'); Config::inst()->update('Director', 'environment_type', 'live'); }
/** * Gets the path to the queuedjob cache directory */ protected function getJobDir() { // make sure our temp dir is in place. This is what will be inotify watched $jobDir = Config::inst()->get('QueuedJobService', 'cache_dir'); if ($jobDir[0] != '/') { $jobDir = getTempFolder() . '/' . $jobDir; } if (!is_dir($jobDir)) { Filesystem::makeFolder($jobDir); } return $jobDir; }
public function setUp() { parent::setUp(); AssetStoreTest_SpyStore::activate('SiteTreeHtmlEditorFieldTest'); $this->logInWithPermission('ADMIN'); // Write file contents $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $destPath = AssetStoreTest_SpyStore::getLocalPath($file); Filesystem::makeFolder(dirname($destPath)); file_put_contents($destPath, str_repeat('x', 1000000)); } }
public function setUp() { parent::setUp(); $this->alternateBasePath = $this->getCurrentAbsolutePath() . "/_fakewebroot"; $this->alternateBaseSavePath = TEMP_FOLDER . '/i18nTextCollectorTest_webroot'; Filesystem::makeFolder($this->alternateBaseSavePath); // Push a class and template loader running from the fake webroot onto // the stack. $this->manifest = new SS_ClassManifest($this->alternateBasePath, false, true, false); $manifest = new SS_TemplateManifest($this->alternateBasePath, null, false, true); $manifest->regenerate(false); SS_TemplateLoader::instance()->pushManifest($manifest); }
function export() { // specify custom baseurl for publishing to other webroot if (isset($_REQUEST['baseurl'])) { $base = $_REQUEST['baseurl']; if (substr($base, -1) != '/') { $base .= '/'; } Director::setBaseURL($base); } // setup temporary folders $tmpBaseFolder = TEMP_FOLDER . '/static-export'; $tmpFolder = project() ? "{$tmpBaseFolder}/" . project() : "{$tmpBaseFolder}/site"; if (!file_exists($tmpFolder)) { Filesystem::makeFolder($tmpFolder); } $baseFolderName = basename($tmpFolder); // symlink /assets $f1 = ASSETS_PATH; $f2 = Director::baseFolder() . '/' . project(); `cd {$tmpFolder}; ln -s {$f1}; ln -s {$f2}`; // iterate through all instances of SiteTree $pages = DataObject::get("SiteTree"); foreach ($pages as $page) { $subfolder = "{$tmpFolder}/" . trim($page->RelativeLink(null, true), '/'); $contentfile = "{$tmpFolder}/" . trim($page->RelativeLink(null, true), '/') . '/index.html'; // Make the folder if (!file_exists($subfolder)) { Filesystem::makeFolder($subfolder); } // Run the page Requirements::clear(); $link = Director::makeRelative($page->Link()); $response = Director::test($link); // Write to file if ($fh = fopen($contentfile, 'w')) { fwrite($fh, $response->getBody()); fclose($fh); } } // copy homepage (URLSegment: "home") to webroot copy("{$tmpFolder}/home/index.html", "{$tmpFolder}/index.html"); // archive all generated files `cd {$tmpBaseFolder}; tar -czhf {$baseFolderName}.tar.gz {$baseFolderName}`; $archiveContent = file_get_contents("{$tmpBaseFolder}/{$baseFolderName}.tar.gz"); // remove temporary files and folder Filesystem::removeFolder($tmpBaseFolder); // return as download to the client $response = SS_HTTPRequest::send_file($archiveContent, "{$baseFolderName}.tar.gz", 'application/x-tar-gz'); echo $response->output(); }
public function setUp() { parent::setUp(); $this->alternateBasePath = $this->getCurrentAbsolutePath() . "/_fakewebroot"; Config::inst()->update('Director', 'alternate_base_folder', $this->alternateBasePath); $this->alternateBaseSavePath = TEMP_FOLDER . '/i18nTextCollectorTest_webroot'; Filesystem::makeFolder($this->alternateBaseSavePath); // Push a class and template loader running from the fake webroot onto // the stack. $this->manifest = new SS_ClassManifest($this->alternateBasePath, false, true, false); // Replace old template loader with new one with alternate base path $this->_oldLoader = ThemeResourceLoader::instance(); ThemeResourceLoader::set_instance(new ThemeResourceLoader($this->alternateBasePath)); }
public function write($content = null, $name = '') { $docopy = false; $reader = $this->getReaderWrapper($content); // this call will set $this->id so subsequent references to this will work $target = $this->getTarget($name); // SS specific Filesystem::makeFolder(dirname($target)); if ($docopy) { @copy($content, $target); } else { file_put_contents($target, $reader->read()); } }
public function setUp() { parent::setUp(); // Set backend root to /HtmlEditorFieldTest AssetStoreTest_SpyStore::activate('HtmlEditorFieldTest'); // Create a test files for each of the fixture references $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $fromPath = BASE_PATH . '/framework/tests/forms/images/' . $file->Name; $destPath = AssetStoreTest_SpyStore::getLocalPath($file); // Only correct for test asset store SS_Filesystem::makeFolder(dirname($destPath)); copy($fromPath, $destPath); } }
public function setUp() { Config::nest(); // additional nesting here necessary Config::inst()->update('File', 'migrate_legacy_file', false); parent::setUp(); // Set backend root to /FileMigrationHelperTest/assets AssetStoreTest_SpyStore::activate('FileMigrationHelperTest/assets'); // Ensure that each file has a local record file in this new assets base $from = FRAMEWORK_PATH . '/tests/model/testimages/test-image-low-quality.jpg'; foreach (File::get()->exclude('ClassName', 'Folder') as $file) { $dest = AssetStoreTest_SpyStore::base_path() . '/' . $file->generateFilename(); SS_Filesystem::makeFolder(dirname($dest)); copy($from, $dest); } }
public function setUp() { parent::setUp(); // Set backend root to /HTMLEditorFieldTest AssetStoreTest_SpyStore::activate('HTMLEditorFieldTest'); // Set the File Name Filter replacements so files have the expected names Config::inst()->update('FileNameFilter', 'default_replacements', array('/\\s/' => '-', '/_/' => '-', '/[^A-Za-z0-9+.\\-]+/' => '', '/[\\-]{2,}/' => '-', '/^[\\.\\-_]+/' => '')); // Create a test files for each of the fixture references $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $fromPath = BASE_PATH . '/framework/tests/forms/images/' . $file->Name; $destPath = AssetStoreTest_SpyStore::getLocalPath($file); // Only correct for test asset store SS_Filesystem::makeFolder(dirname($destPath)); copy($fromPath, $destPath); } }
/** * Finds the path for specified file * * @param string $fileOrUrl * @return string|bool */ protected function path_for_file($fileOrUrl) { // only handle files in themes folder if (!Controller::has_curr() || is_a(Controller::curr(), 'LeftAndMain')) { return parent::path_for_file($fileOrUrl); } else { if (preg_match('{^//|http[s]?}', $fileOrUrl)) { return $fileOrUrl; } elseif (Director::fileExists($fileOrUrl)) { $filePath = preg_replace('/\\?.*/', '', Director::baseFolder() . '/' . $fileOrUrl); $baseurl = Director::baseURL(); // url parameters if (strpos($fileOrUrl, '?') !== false) { $parameters = '?' . substr($fileOrUrl, strpos($fileOrUrl, '?') + 1); $fileOrUrl = substr($fileOrUrl, 0, strpos($fileOrUrl, '?')); } else { $parameters = ''; } // get base path $baseFolder = Director::baseFolder(); // get combined files folder $combinedFilesFolder = rtrim($this->getCombinedFilesFolder(), '/'); if (!file_exists($baseFolder . '/' . $combinedFilesFolder)) { Filesystem::makeFolder($baseFolder . '/' . $combinedFilesFolder); } // get file name $fileName = substr($filePath, strrpos($filePath, '/') + 1); // get prefix $prefix = filemtime($filePath) . '-'; $prefixedFilePath = $baseFolder . '/' . $combinedFilesFolder . '/' . $prefix . $fileName; // clean up and create file if (!file_exists($prefixedFilePath)) { // remove old prefixed files foreach (glob($baseFolder . '/' . $combinedFilesFolder . '/' . '[0-9]*-' . $fileName) as $file) { unlink($file); } // copy standard file to prefixed file copy($filePath, $prefixedFilePath); } return "{$baseurl}{$combinedFilesFolder}/{$prefix}{$fileName}{$parameters}"; } else { return false; } } }
public function setUp() { parent::setUp(); AssetStoreTest_SpyStore::activate('FileLinkTrackingTest'); $this->logInWithPermission('ADMIN'); // Write file contents $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $destPath = AssetStoreTest_SpyStore::getLocalPath($file); Filesystem::makeFolder(dirname($destPath)); file_put_contents($destPath, str_repeat('x', 1000000)); } // Since we can't hard-code IDs, manually inject image tracking shortcode $imageID = $this->idFromFixture('Image', 'file1'); $page = $this->objFromFixture('Page', 'page1'); $page->Content = sprintf('<p><img src="/assets/FileLinkTrackingTest/55b443b601/testscript-test-file.jpg" data-fileid="%d" /></p>', $imageID); $page->write(); }
/** * Set up the controller, in particular, re-sync the File database with the assets folder./ */ function init() { parent::init(); // Create base folder if it doesnt exist already if (!file_exists(ASSETS_PATH)) { Filesystem::makeFolder(ASSETS_PATH); } Requirements::javascript(CMS_DIR . "/javascript/AssetAdmin.js"); Requirements::css(CMS_DIR . "/css/AssetAdmin.css"); Requirements::customScript(<<<JS \t\t\t_TREE_ICONS = {}; \t\t\t_TREE_ICONS['Folder'] = { \t\t\t\t\tfileIcon: 'sapphire/javascript/tree/images/page-closedfolder.gif', \t\t\t\t\topenFolderIcon: 'sapphire/javascript/tree/images/page-openfolder.gif', \t\t\t\t\tclosedFolderIcon: 'sapphire/javascript/tree/images/page-closedfolder.gif' \t\t\t}; JS ); CMSBatchActionHandler::register('delete', 'AssetAdmin_DeleteBatchAction', 'Folder'); }
public function setUp() { parent::setUp(); // Set backend root to /FolderTest AssetStoreTest_SpyStore::activate('FolderTest'); // Create a test folders for each of the fixture references foreach (Folder::get() as $folder) { $path = AssetStoreTest_SpyStore::getLocalPath($folder); SS_Filesystem::makeFolder($path); } // Create a test files for each of the fixture references $files = File::get()->exclude('ClassName', 'Folder'); foreach ($files as $file) { $path = AssetStoreTest_SpyStore::getLocalPath($file); SS_Filesystem::makeFolder(dirname($path)); $fh = fopen($path, "w+"); fwrite($fh, str_repeat('x', 1000000)); fclose($fh); } }
function setUp() { parent::setUp(); $this->socks = $this->objFromFixture('Product', 'socks'); $this->img1 = new Image(); $this->img1->Filename = 'assets/ProductImageTest1.png'; $this->img1->write(); $this->img2 = new Image(); $this->img2->Filename = 'assets/ProductImageTest2.png'; $this->img2->write(); $this->siteConfig = SiteConfig::current_site_config(); $this->siteConfig->DefaultProductImageID = $this->img1->ID; $this->siteConfig->write(); // Create assets/ folder if it doesn't exist if (!is_dir(ASSETS_PATH)) { Filesystem::makeFolder(ASSETS_PATH); $this->createdAssetsFolder = true; } file_put_contents($this->img1->getFullPath(), 'dummy file'); file_put_contents($this->img2->getFullPath(), 'dummy file'); }
public function generateScriptFilesFor($type) { $typeConfig = $this->configFor($type); $files = array(); foreach ($typeConfig as $target => $config) { $output = $this->generateScriptDataFor($type, $target); $target = $target == 'default' ? $target . '-' . $type . '.js' : $target; $targetFile = isset($config['target_path']) ? $config['target_path'] . DIRECTORY_SEPARATOR . $target : $this->defaultPath . DIRECTORY_SEPARATOR . $target; if (strlen($output) && $targetFile) { if ($targetFile[0] != '/') { $files[] = $targetFile; $targetFile = Director::baseFolder() . DIRECTORY_SEPARATOR . $targetFile; } else { // only record the basename if it's not a relative folder to the project $files[] = basename($targetFile); } Filesystem::makeFolder(dirname($targetFile)); file_put_contents($targetFile, $output); } } return $files; }
/** * Set up the controller, in particular, re-sync the File database with the assets folder./ */ public function init() { parent::init(); // Create base folder if it doesnt exist already if (!file_exists(ASSETS_PATH)) { Filesystem::makeFolder(ASSETS_PATH); } Requirements::javascript(CMS_DIR . "/javascript/AssetAdmin.js"); Requirements::javascript(CMS_DIR . '/javascript/CMSMain.GridField.js'); Requirements::add_i18n_javascript(CMS_DIR . '/javascript/lang', false, true); Requirements::css(CMS_DIR . "/css/screen.css"); $frameworkDir = FRAMEWORK_DIR; Requirements::customScript(<<<JS \t\t\t_TREE_ICONS = {}; \t\t\t_TREE_ICONS['Folder'] = { \t\t\t\t\tfileIcon: '{$frameworkDir}/javascript/tree/images/page-closedfolder.gif', \t\t\t\t\topenFolderIcon: '{$frameworkDir}/javascript/tree/images/page-openfolder.gif', \t\t\t\t\tclosedFolderIcon: '{$frameworkDir}/javascript/tree/images/page-closedfolder.gif' \t\t\t}; JS ); CMSBatchActionHandler::register('delete', 'AssetAdmin_DeleteBatchAction', 'Folder'); }
public function setUp() { parent::setUp(); // Set backend root to /ImageTest AssetStoreTest_SpyStore::activate('ProtectedFileControllerTest'); // Create a test folders for each of the fixture references foreach (Folder::get() as $folder) { /** @var Folder $folder */ $filePath = AssetStoreTest_SpyStore::getLocalPath($folder); \Filesystem::makeFolder($filePath); } // Create a test files for each of the fixture references foreach (File::get()->exclude('ClassName', 'Folder') as $file) { /** @var File $file */ $path = AssetStoreTest_SpyStore::getLocalPath($file); \Filesystem::makeFolder(dirname($path)); $fh = fopen($path, "w+"); fwrite($fh, str_repeat('x', 1000000)); fclose($fh); // Create variant for each file $this->getAssetStore()->setFromString(str_repeat('y', 100), $file->Filename, $file->Hash, 'variant'); } }