SSViewer
class SSViewer implements Flushable
Parses a template file with an *.ss file extension.
In addition to a full template in the templates/ folder, a template in templates/Content or templates/Layout will be rendered into $Content and $Layout, respectively.
A single template can be parsed by multiple nested {@link SSViewer} instances through $Layout/$Content placeholders, as well as <% include MyTemplateFile %> template commands.
Themes
See http://doc.silverstripe.org/themes and http://doc.silverstripe.org/themes:developing
Caching
Compiled templates are cached via {@link Cache}, usually on the filesystem. If you put ?flush=1 on your URL, it will force the template to be recompiled.
Traits
Constants
DEFAULT_THEME |
Identifier for the default theme |
PUBLIC_THEME |
Identifier for the public theme |
Config options
themes | string | A list (highest priority first) of themes to use Only used when {@link $theme_enabled} is set to TRUE. | |
theme | string | The used "theme", which usually consists of templates, images and stylesheets. | |
theme_enabled | bool | Use the theme. Set to FALSE in order to disable themes, which can be useful for scenarios where theme overrides are temporarily undesired, such as an administrative interface separate from the website theme. | |
global_key | string | Default prepended cache key for partial caching | |
source_file_comments | bool | ||
rewrite_hash_links | bool | Set if hash links should be rewritten |
Methods
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .
Gets the uninherited value for the given config option
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Triggered early in the request when someone requests a flush.
Create a template from a string instead of a .ss file
Assign the list of active themes to apply.
Add to the list of active themes to apply
Get the list of active themes
Traverses the given the given class context looking for candidate template names which match each item in the class hierarchy. The resulting list of template candidates may or may not exist, but you can invoke {see SSViewer::chooseTemplate} on any list to determine the best candidate based on the current themes.
Get the current item being processed
Check if rewrite hash links are enabled on this instance
Set if hash links are rewritten for this instance
Get default value for rewrite hash links for all modules
Set default rewrite hash links
No description
Find the template to use for a given list
Returns the parser that is set for template generation
Returns true if at least one of the listed templates exists.
Call this to disable rewriting of links. This is useful in Ajax applications.
No description
Clears all parsed template files in the cache folder.
Clears all partial cache blocks.
Set the cache object to use when storing / retrieving partial cache blocks.
Get the cache object to use when storing / retrieving partial cache blocks.
Flag whether to include the requirements in this response.
The process() method handles the "meat" of the template processing.
Execute the given template, passing it the given data.
Execute the evaluated string, passing it the given data.
Parse given template contents
Returns the filenames of the template that will be rendered. It is a map that may contain 'Content' & 'Layout', and will have to contain 'main'
No description
Return an appropriate base tag for the given template.
Details
in Configurable at line 20
static Config_ForClass
config()
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .
....).
in Configurable at line 32
mixed
stat(string $name)
deprecated
deprecated 5.0 Use ->config()->get() instead
Get inherited config value
in Configurable at line 44
mixed
uninherited(string $name)
Gets the uninherited value for the given config option
in Configurable at line 57
$this
set_stat(string $name, mixed $value)
deprecated
deprecated 5.0 Use ->config()->set() instead
Update the config value for a given property
in Injectable at line 26
static Injectable
create(array $args)
An implementation of the factory method, allows you to create an instance of a class
This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.
This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create('SiteTree'); $list = SiteTree::get();
in Injectable at line 43
static Injectable
singleton(string $class = null)
Creates a class instance by the "singleton" design pattern.
It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).
at line 196
__construct(string|array $templates, TemplateParser $parser = null)
at line 222
static
flush()
Triggered early in the request when someone requests a flush.
at line 235
static SSViewer
fromString(string $content, bool|void $cacheTemplate = null)
Create a template from a string instead of a .ss file
at line 250
static
set_themes(array $themes = [])
Assign the list of active themes to apply.
If default themes should be included add $default as the last entry.
at line 260
static
add_themes(array $themes = [])
Add to the list of active themes to apply
at line 273
static array
get_themes()
Get the list of active themes
at line 302
static
set_theme(string $theme)
deprecated
deprecated 4.0.0:5.0.0 Use the "SSViewer#set_themes" instead
at line 319
static array
get_templates_by_class(string|object $classOrObject, string $suffix = '', string $baseClass = null)
Traverses the given the given class context looking for candidate template names which match each item in the class hierarchy. The resulting list of template candidates may or may not exist, but you can invoke {see SSViewer::chooseTemplate} on any list to determine the best candidate based on the current themes.
at line 355
static ViewableData
topLevel()
Get the current item being processed
at line 368
bool
getRewriteHashLinks()
Check if rewrite hash links are enabled on this instance
at line 382
$this
setRewriteHashLinks(bool $rewrite)
Set if hash links are rewritten for this instance
at line 393
static bool
getRewriteHashLinksDefault()
Get default value for rewrite hash links for all modules
at line 407
static
setRewriteHashLinksDefault(bool $rewrite)
Set default rewrite hash links
at line 415
setTemplate(string|array $templates)
at line 428
static string
chooseTemplate(array|string $templates)
Find the template to use for a given list
at line 438
setParser(TemplateParser $parser)
Set the template parser that will be used in template generation
at line 448
TemplateParser
getParser()
Returns the parser that is set for template generation
at line 463
static bool
hasTemplate(array|string $templates)
Returns true if at least one of the listed templates exists.
at line 474
$this
dontRewriteHashlinks()
Call this to disable rewriting of links. This is useful in Ajax applications.
It returns the SSViewer objects, so that you can call new SSViewer("X")->dontRewriteHashlinks()->process();
at line 482
string
exists()
at line 492
static string
getTemplateFileByType(string $identifier, string $type = null)
at line 505
static
flush_template_cache(bool $force = false)
Clears all parsed template files in the cache folder.
Can only be called once per request (there may be multiple SSViewer instances).
at line 526
static
flush_cacheblock_cache(bool $force = false)
Clears all partial cache blocks.
Can only be called once per request (there may be multiple SSViewer instances).
at line 542
setPartialCacheStore(CacheInterface $cache)
Set the cache object to use when storing / retrieving partial cache blocks.
at line 552
CacheInterface
getPartialCacheStore()
Get the cache object to use when storing / retrieving partial cache blocks.
at line 566
includeRequirements(bool $incl = true)
Flag whether to include the requirements in this response.
at line 623
DBHTMLText
process(ViewableData $item, array|null $arguments = null, ViewableData $inheritedScope = null)
The process() method handles the "meat" of the template processing.
It takes care of caching the output (via {@link Cache}), as well as replacing the special "$Content" and "$Layout" placeholders with their respective subtemplates.
The method injects extra HTML in the header via {@link Requirements::includeInHTML()}.
Note: You can call this method indirectly by {@link ViewableData->renderWith()}.
at line 752
static string
execute_template(string $template, mixed $data, array $arguments = null, Object $scope = null, bool $globalRequirements = false)
Execute the given template, passing it the given data.
Used by the <% include %> template tag to process templates.
at line 789
static string
execute_string(string $content, mixed $data, array $arguments = null, bool $globalRequirements = false)
Execute the evaluated string, passing it the given data.
Used by partial caching to evaluate custom cache keys expressed using template expressions
at line 816
string
parseTemplateContent(string $content, string $template = "")
Parse given template contents
at line 831
array
templates()
Returns the filenames of the template that will be rendered. It is a map that may contain 'Content' & 'Layout', and will have to contain 'main'
at line 840
setTemplateFile(string $type, string $file)
at line 857
static string
get_base_tag(string $contentGeneratedSoFar)
Return an appropriate base tag for the given template.
It will be closed on an XHTML document, and unclosed on an HTML document.