Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Create file from Assets


Reply


3 Posts   1308 Views

Avatar
Mo

Community Member, 514 Posts

30 April 2011 at 9:15am

Hi All,

Quick question, does anyone know if it is possible to generate a file (that will be put in the assets folder) from a template?

I want to create an XML file with content from a form and generate the XML file from a template.

I suppose I could use SimpleXML, would prefer to use a template if I can.

Cheers in advance,

Mo

Avatar
swaiba

Forum Moderator, 1808 Posts

3 May 2011 at 1:03am

Hi Mo,

I think these two things may help...

form the Filetest.php

      $folder = Folder::findOrMake('/FileTest/');
      $testfilePath = 'assets/FileTest/CreateWithFilenameHasCorrectPath.txt'; // Important: No leading slash
      $fh = fopen(BASE_PATH . '/' . $testfilePath, "w");
      fwrite($fh, str_repeat('x',1000000));
      fclose($fh);
            
      $file = new File();
      $file->Filename = $testfilePath;
      // TODO This should be auto-detected
      $file->ParentID = $folder->ID;
      $file->write();

to render something without a page controller...

         $vd = new ViewableData();
         $ad = new ArrayData(array(
            'Data' => $dos
         ));
         $strHTML = $vd->customise($ad)->renderWith('MyTemplate');

Avatar
Mo

Community Member, 514 Posts

3 May 2011 at 1:39am

Oh cool, hopefully that will do what I want :-). I was thinking about renderWith but wasn't sure if it could be used like that. Fingers crossed!

Cheers,

Mo