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   1215 Views

Avatar
Mo

30 April 2011 at 9:15am Community Member, 509 Posts

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

3 May 2011 at 1:03am Forum Moderator, 1796 Posts

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

3 May 2011 at 1:39am Community Member, 509 Posts

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