Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stillat/statamic-template-resolver
Provides utilities to resolve templates based on an entry's collection or blueprint handles, with support for a fallback template.
https://github.com/stillat/statamic-template-resolver
Last synced: 9 days ago
JSON representation
Provides utilities to resolve templates based on an entry's collection or blueprint handles, with support for a fallback template.
- Host: GitHub
- URL: https://github.com/stillat/statamic-template-resolver
- Owner: Stillat
- License: mit
- Created: 2023-11-04T19:28:02.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-11T20:10:09.000Z (9 months ago)
- Last Synced: 2025-01-25T02:59:04.443Z (13 days ago)
- Language: PHP
- Size: 39.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Template Resolver for Statamic
Template Resolver for Statamic is a simple utility addon, intended to be used by other addons. It provides a simple utility for selecting and rendering a template based on an entry's *blueprint* and *collection*, with support for a fallback default template.
Example use-cases:
* Selecting templates dynamically to generate social media images from HTML,
* Generating HTML documents on-the-fly, without requiring network requests to the site,
* Anything where you need to support customizable templates based on an entry's blueprint/collection details## How to Install
Run the following command from your project root:
``` bash
composer require stillat/statamic-template-resolver
```## How to Use
You need to create an instance of `StringTemplateManager`, and supply the directory to search for templates in.
```php
hasTemplate($collection, $blueprint)) {
// The template exists.
}```
The `hasTemplate` method will return `true` if a specific template *or* the default template exists. To create a default template, create a file named `_default.antlers.html` or `_default.blade.php` at the root of the template folder.
In our example, the default template would need to be placed here:
```
views/social_media_images/_default.antlers.html
```Specific collection/blueprint templates are stored within a nested directory structure using the following format:
```
/.
```For example, if we had a `blog` collection, with a `post` blueprint, we could create a specific template at the following location:
```
views/social_media_images/blog/post.antlers.html
```This library supports the following extensions:
* `.antlers.html`: Renders the template using Statamic's Antlers templating engine
* `.blade.php`: Renders the template using Laravel's Blade templating engineTo render a template with data, we may use the `render` method:
```php
render(
'colllection_handle',
'blueprint_handle',
$data
);```
The `render` method will return `null` if a template could not be found; `$data` is provided as an array, and is required.
We may also optionally modify the template before rendering it by supplying an optional callable as the fourth argument:
```php
render(
'collection_handle',
'blueprint_handle',
$data,
function ($template, $data) {
return mb_strtoupper($template);
}
);```
The modifying callable will receive the unmodified template contents as its first argument, and the original data array as the second.
## License
Statamic Template Resolver is free software, released under the MIT license.