getolympus / olympus-hera-renderer
Olympus Hera is a bundle used to render all components views through the TWIG template engine.
v0.0.6
2020-03-30 00:06 UTC
Requires
- getolympus/olympus-hermes-translator: ^0.0.2
- twig/twig: ^2.0
Requires (Dev)
- phpunit/phpunit: ~5.3
This package is auto-updated.
Last update: 2024-10-29 05:47:17 UTC
README
Olympus Hera Renderer is a bundle used to render all components views through the TWIG template engine.
composer require getolympus/olympus-hera-renderer
Example
You can easily use the Hera
renderer to display TWIG template:
namespace MyCustomPackage; use GetOlympus\Hera\Hera; class MyPackage { protected function displayContent() { /** * Sample extracted from the `Metabox` Zeus-Core component. * @see https://github.com/GetOlympus/Zeus-Core/blob/master/src/Zeus/Metabox/Metabox.php */ // Prepare admin scripts and styles $assets = [ 'scripts' => [], 'styles' => [], ]; $vars = []; // Display fields foreach ($fields as $field) { if (!$field) { continue; } // Update scripts and styles $fieldassets = $field->assets(); if (!empty($fieldassets)) { $assets['scripts'] = array_merge($assets['scripts'], $fieldassets['scripts']); $assets['styles'] = array_merge($assets['styles'], $fieldassets['styles']); } $vars['fields'][] = $field->prepare('metabox', $post, 'post'); } /** * Outside the loop, you'll get an array with these elements: * * $vars = [ * 'fields' => [ * [ * 'context' => 'wordpress', * 'path' => '/path/to/resources/views', * 'template' => 'wordpress.html.twig', * 'vars' => [-- vars used in the target template --] * ], * [-- more and more --], * ] * ]; */ // Render view $render = new Hera('core', 'layouts'.S.'metabox.html.twig', $vars, $assets); $render->view(); } }
Initialization
The Hera
component needs to be initialized by this way:
/** * Constructor. * * @param string $context * @param string $template * @param array $vars * @param array $assets * @param bool $usecache */ new Hera($context, $template, $vars, $assets, $usecache);
Customization
If you need to add your custom TWIG functions, you can use the ol_hera_render_functions
action hook:
add_action('ol.hera.render_functions', function ($twig) { // Example to use the WordPress `get_header()` function through TWIG: {{ get_header(file) }} $twig->addFunction(new \Twig\TwigFunction('get_header', function ($file = '') { get_header($file); })); });
Release History
See CHANGELOG.md for all details.
Contributing
- Fork it (https://github.com/GetOlympus/Hera-Renderer/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Built with ♥ by Achraf Chouk ~ (c) since a long time.