$files->render() method

Given a filename, render it as a ProcessWire template file

This is a shortcut to using the TemplateFile class.

File is assumed relative to /site/templates/ (or a directory within there) unless you specify a full path. If you specify a full path, it will accept files in or below any of the following:

  • /site/templates/
  • /site/modules/
  • /wire/modules/

Note this function returns the output to you, so that you can send the output wherever you want (delayed output). For direct output, use the $files->include() function instead.

Usage

// basic usage
$string = $files->render(string $filename);

// usage with all arguments
$string = $files->render(string $filename, array $vars = [], array $options = []);

Arguments

NameType(s)Description
filenamestring

Assumed relative to /site/templates/ unless you provide a full path name with the filename. If you provide a path, it must resolve somewhere in site/templates/, site/modules/ or wire/modules/.

vars (optional)array

Optional associative array of variables to send to template file. Please note that all template files automatically receive all API variables already (you don't have to provide them).

options (optional)array

Associative array of options to modify behavior:

  • defaultPath (string): Path where files are assumed to be when only filename or relative filename is specified (default=/site/templates/)
  • autoExtension (string): Extension to assume when no ext in filename, make blank for no auto assumption (default=php)
  • allowedPaths (array): Array of paths that are allowed (default is templates, core modules and site modules)
  • allowDotDot (bool): Allow use of ".." in paths? (default=false)
  • throwExceptions (bool): Throw exceptions when fatal error occurs? (default=true)
  • cache (int|string|Page): Specify non-zero value to cache rendered result for this many seconds, or see the WireCache::renderFile() method $expire argument for more options you can specify here. (default=0, no cache) Note: this option added in 3.0.130

Return value

string bool

Rendered template file or boolean false on fatal error (and throwExceptions disabled)

Exceptions

Method can throw exceptions on error:

  • WireException - if template file doesn't exist

See Also


$files methods and properties

API reference based on ProcessWire core version 3.0.148

Twitter updates

  • New post in the blog about all the fun we had driving around a DDOS attack on our forums, how we got it back under control, and what we learned along the way. Plus PW 3.0.150 dev details and links! More
    7 February 2020
  • New post: ProcessWire core updates (January 31, 2020)— More
    31 January 2020
  • Weekly update for Jan 10, 2020—front-end file uploads in LoginRegisterPro with InputfieldFrontendFile module: More
    10 January 2020

Latest news

  • ProcessWire Weekly #301
    In the 301st issue of ProcessWire Weekly we're going to check out the latest core updates, introduce brand new third party modules RockDaterange and Modules Manager 2, and highlight a brilliant new site of the week. Read on!
    Weekly.pw / 15 February 2020
  • Driving around a DDOS attack
    Last Saturday we started getting hit with heavy traffic at the processwire.com support forums, and it soon became a full blown DDOS frenzy. This post describes all the fun, how we got it back under control, and what we learned along the way.
    Blog / 7 February 2020
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani