getolympus/olympus-hera-renderer

Olympus Hera 是一个用于通过 TWIG 模板引擎渲染所有组件视图的捆绑包。

v0.0.6 2020-03-30 00:06 UTC

This package is auto-updated.

Last update: 2024-08-29 05:12:58 UTC


README

Olympus Hera Renderer 是一个用于通过 TWIG 模板引擎渲染所有组件视图的捆绑包。

composer require getolympus/olympus-hera-renderer

Olympus Component CodeFactor Grade Packagist Version MIT

示例

您可以使用 Hera 渲染器轻松显示 TWIG 模板。

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();
    }
}

初始化

Hera 组件需要通过这种方式进行初始化。

/**
 * Constructor.
 *
 * @param  string  $context
 * @param  string  $template
 * @param  array   $vars
 * @param  array   $assets
 * @param  bool    $usecache
 */
new Hera($context, $template, $vars, $assets, $usecache);

自定义

如果您需要添加自定义的 TWIG 函数,可以使用 ol_hera_render_functions 动作钩子。

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);
    }));
});

发布历史

查看 CHANGELOG.md 以获取所有详细信息。

贡献

  1. 将其叉取 (https://github.com/GetOlympus/Hera-Renderer/fork)
  2. 创建您的功能分支 (git checkout -b feature/fooBar)
  3. 提交您的更改 (git commit -am 'Add some fooBar')
  4. 将更改推送到分支 (git push origin feature/fooBar)
  5. 创建新的 Pull Request

Achraf Chouk 构建,自很久以前以来一直如此。