TWIG
TWIG bietet Ihnen eine modern gestaltete, schnelle, flexible und sichere Templating Engine, die ohne in-line PHP Code auskommt. Die Engine wurde ursprünglich für Symfony entwickelt und erhält regelmäßige Sicherheits-, sowie Funktions-Updates.
Offizielle TWIG Dokumentation
Bevor Sie diese Dokumentation gewinnbringend für Ihr Vorhaben einsetzen können, sollten Sie sich mit TWIG bekannt machen. Lesen Sie hierzu am besten die offizielle Dokumentation.
Rendering
Das Rendering der TWIG Templates erfolgt über die Methode renderTemplate(string $path)
der Klasse View
aus dem Namespace Core
.
<?php
use Core\View;
View::renderTemplate('admin/sample/sample.html.twig');
Framing
Unsere Software liefert ab Werk Vorlagen für den Kunden und Adminbereich. Durch die Nutzung werden alle Hauptelemente der Applikation (z.B. der Kopfbereich und die Navigationsleiste) automatisch geladen. Sie müssen im Folgenden also lediglich den eigentlichen Seiteninhalt definieren.
Adminbereich
Admin Templates nutzen die Datei master.html.twig
aus dem Verzeichnis app/templates/default/admin
als Vorlage. Der Base-Path für das Template kann gekürzt werden (s.u.).
sample.html.twig
{% extends "admin/master.html.twig" %}
{% block content %}
<header class="headline">
<div class="inner">
<h2><i class="fa fa-envelope-o"></i> {{ l_("SAMPLE_LANGUAGE_VARIABLE") }}</h2>
</div>
</header>
<nav class="navbar navbar-default action-bar">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav"></ul>
<ul class="nav navbar-nav navbar-right">
<a class="btn btn-primary navbar-btn" data-toggle="modal" data-target="#add"><i class="fa fa-plus-circle"></i> {{ l_("SAMPLE_ADD_BUTTON") }}</a>
</ul>
</div>
</div>
</nav>
<section data-scrollbar class="inner-body after-action-bar">
<table class="table table-bordered paginate">
<thead>
<tr>
<td>{{ l_("SAMPLE") }}</td>
<td>{{ l_("DELETE") }}</td>
</tr>
</thead>
<tbody>
{% for sample in samples %}
<tr>
<td>{{ provider.domain }}</td>
<td><a href="sample/delete/{{ sample.id }}" class="btn btn-danger" rel="dynamicLoad"><i class="fa fa-trash-o"></i> {{ l_("DELETE") }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="modal" id="add" tabindex="-1" role="dialog" aria-labelledby="addLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="addLabel"><i class="fa fa-plus-circle"></i> {{ l_("SAMPLE_ADD") }}</h4>
</div>
<form action="sample/add" method="post">
<div class="modal-body">
<label>{{ l_("SAMPLE") }}</label>
<input class="form-control" name="sample" required>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ l_("CLOSE") }}</button>
<button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> {{ l_("SAMPLE_ADD_BUTTON") }}</button>
</div>
</form>
</div>
</div>
</div>
</section>
{% endblock %}
Kundenbereich
Der Kundenbereich unterstützt derzeit kein TWIG Frame. Bitte greifen Sie in diesem Fall auf Legacy PHP Templates zurück.