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">&times;</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.