fvsch/kirby-twig

为 Kirby CMS 提供的 Twig 模板支持

v3.0.3 2018-09-14 18:13 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:20:11 UTC


README

  • 为 Kirby CMS 2.x 添加对 Twig 模板 的支持。
  • PHP 模板仍然可以使用,如果您不想修改它们,则无需重写。

外观

之前

<?php /* site/templates/hello.php */ ?>
<h1><?= $page->title() ?></h1>
<ul>
<?php foreach ($page->children() as $child): ?>
  <li><a href="<?= $child->url() ?>"><?= $child->title() ?></li>
<?php endforeach; ?>
</ul>

之后

{# site/templates/hello.twig #}
<h1>{{ page.title }}</h1>
<ul>
{% for child in page.children %}
  <li><a href="{{ child.url }}">{{ child.title }}</li>
{% endfor %}
</ul>

安装

标准安装

  1. 下载 最新版本
  2. 解压,将 kirby-twig-main 文件夹重命名为 twig,并将其放入项目中的 site/plugins 文件夹。

您应该得到以下文件夹结构

site
 └─ plugins
     └─ twig
         ├─ lib
         ├─ src
         └─ twig.php

使用 Composer

在您的 Composer 依赖中要求 fvsch/kirby-twig

composer require fvsch/kirby-twig:^3.0

然后,确保您的 Kirby 安装在前端和面板上都自动加载 Composer 依赖项。为此,最安全的方法是创建您自己的自定义插件。

site
 └─ plugins
     └─ composer
         └─ composer.php
<?php
// site/plugins/composer/composer.php

// Composer autoload
require_once kirby()->roots()->index() . '/vendor/autoload.php';

最后,通过将以下行添加到您新创建的 site/plugins/composer/composer.php,注册插件,**在**已加载自动加载程序之后。

// Register the Twig plugin's template component
Kirby\Twig\Plugin::register();

用法

页面模板

现在插件已安装并启用,您可以在 site/templates 目录中编写 Twig 模板。例如,如果您的文章文本文件名为 post.txt,则可以有一个如下所示的 post.twig 模板

{% extends '@templates/layout.twig' %}
{% block content %}
  <article>
    <h1>{{ page.title }}</h1>
    {{ page.text.kirbytext | raw }}
  </article>
{% endblock %}

{% extends '@templates/layout.twig' %}{% block content %} 部分?这是管理多个模板具有共同页面布局的强大方式,只需更改核心内容(和/或其他特定部分)。阅读 我们的 Twig 模板指南 以获取更多信息。

在 PHP 中渲染模板:使用 twig 辅助函数

此插件还启用了一个 twig PHP 函数,用于渲染模板文件和字符串,如下所示

<?php

// Render a simple template from the site/snippets directory
echo twig('@snippets/header.twig');

// Same, but passing some additionnal variables
echo twig('@snippets/header.twig', ['sticky'=>false]);

// Render a string
echo twig('Hello {{ who }}', ['who'=>'World!']);

如果您使用 Twig 模板处理页面,您可能根本不需要 twig() 辅助函数。但它可以在使用 模块和模式插件 时很有用。

更多文档

推荐阅读

其他主题

鸣谢