moo / template-tags
Provide a several useful template tags.
Installs: 2 343
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 1
Type:silverstripe-vendormodule
Requires
- php: >=7.4
- silverstripe/framework: ^4.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- phpstan/phpstan: ~0.12.80
- phpunit/php-code-coverage: ^9.2
- silverstripe/recipe-testing: ^2
- slevomat/coding-standard: ^7.0
- symbiote/silverstripe-phpstan: dev-php8-support
This package is auto-updated.
Last update: 2024-12-07 02:35:41 UTC
README
SilverStripe template parser
Provide a several template tags for better template implementation. For example an improved <% include %>
.
Requirements
- SilverStripe CMS ^5.0
Installation via Composer
composer require moo/template-tags
Usage
Spaceless
Remove extra whitespaces from around the template syntax & HTML output.
<% spaceless %>
... Template syntax and HTML ...
<% end_spaceless %>
Template
An alternative to <% include %>
<% template TemplateName %>
<% set Theme %>$ClassName<% end_set %>
<% set Someone %>
Github user: {$ClassName}-{$ID}-{$MenuTitle.XML}
<% end_set %>
<h1>Hello world</h1>
<% end_template %>
Ways to define template name
- By string
<% template TemplateName %><% end_template %>
<% template 'Namespace\TemplateName' %><% end_template %>
- By variable or method within an object
<% template $TemplateName %><% end_template %>
<% template $Object.Method %><% end_template %>
The body of the template tag
- The body of the tag can include HTML, template logic, & defined arguments.
<% template TemplateName %>
<h1>Hello world</h1>
<% end_template %>
- The body of the block can include other syntax such as <% include %>
<% template TemplateName %>
<h1>Hello world</h1>
<% include Icon %>
<% end_template %>
- You can pass parameters, one per line! not all in same line as '<% include %>
<% template TemplateName %>
<% set Theme %>$Theme<% end_set %>
<% set Someone %>
Github user: {$Member.Name}
<% end_set %>
<h1>Hello world</h1>
<% end_template %>
TemplateName.ss
<% content %>
Placeholder for the content of the template ie. <h1>Hello world</h1>
<div class="theme--{$Theme}">
<% content %>
<p>Are you a {$Someone}</p>
</div>
License
This module is under the MIT license. View the LICENSE file for the full copyright and license information.