Das Contao fe_page Template

Das Contao fe_page Template: Wofür wir es brauchen, wie wir es modifizieren können und was wir nicht ändern sollten.

Contao fe_page Template

1. Das fe_page Template ändern

Das fe_page Template wird - wie eigentlich alle Templates in der Templateverwaltung geändert. Mit der Option neues Template können wir ein fe_page Template anlegen, modifizieren und umbenennen. Anschließend müssen wir dieses in unser Seitenlayout einbinden, damit unsere Änderungen auch greifen können.

Wenn wir das neue Template nicht umbenennen (es also weiterhin "fe_page.html5" heisst), wird dieses Default von Contao für jedes Seitenlayout benutzt, solange dort kein anderes explizit angegeben wurde. Contao sucht seine Templates sozusagen von oben nach unten. Also zuerst im Verzeichnis Templates und dann erst bei den Original-Modulen. Wir sollten demnach niemals Templates im Modulverzeichnis überschreiben. Sonst werden diese Änderungen bei einem Contao - Update rückgängig gemacht.

Grundsätzlich kann gesagt werden, dass ein Eingreifen in dieses Template so weit wie möglich vermieden werden sollte. Änderungen am Template sind für nachfolgende Entwickler nicht immer gleich ersichtlich und können so leicht zu Verwirrungen führen.

Die Entwickler von Contao haben sich Gedanken über den Aufbau des Templates gemacht und so deckt das Template eigentlich 90% aller möglichen Anwendungsfälle ab. Trotzdem gibt es natürlich ein paar Kleinigkeiten, die am Template geändert werden können.
In unserem letzten Beitrag haben wir übrigens einige grundsätzliche Dinge über die Bearbeitung von Contao Templates zusammengefasst. 

2. Der Aufbau des fe_page Templates

Der Aufbau des Templates ist in der Grafik dargestellt, die Standard-Ausgabe-Bereiche jeweils in türkis.

Damit das Template für spezielle Anwendungen nicht gleich umgebaut werden muss, gibt es die Bereiche "Custom", die orange dargestellt sind. Diese können über das Seitenlayout angesprochen werden: Im Feld "Eigene Layoutbereiche" innerhalb eines Layouts wird einem oder mehreren Bereichen eine ID zugewiesen und mit Hilfe des Popupmenüs wird festlegt welcher Custom-Bereich angesprochen werden soll. Nach dem speichern des Layouts, können die neuen Bereiche in der Modulauswahl eingestellt werden.

Contao Customer Bereich im Layout einrichten

Hier zeigt sich leider eine Schwäche des Systems. Zwar lassen sich mehrere Bereiche eintragen, indem man die IDs der einzelnen Bereiche durch Kommas getrennt einträgt, aber es lässt sich nur eine Ausgabeposition ansprechen.
Wird also ein Custom Bereich "top" und ein Custom Bereich "bottom" benötigt, ist dieses mit den Contao Bordmitteln nicht mehr umzusetzen. Zugegeben, dieser Fall tritt eher selten ein, aber beim nachträglichen Erweitern einer Seite, kann es durchaus schon mal vorkommen.

fe_page Struktur Infografik

3. Welche Parameter ändern?

Wer auf das CSS Framework Layout-Builder verzichtet, möchte mitunter die Reihenfolge der einzelnen Bereich verändern. Also zum Beispiel den rechten vor dem linken Bereich ausgeben. Dieses lässt sich im Template einfach bewerkstelligen, in dem man die einzelnen Textblöcke mit Hilfe eines einfachen Texteditors verschiebt. Darauf zu achten ist dabei, dass die Verschachtelung der PHP Befehle nicht zerstört wird.

Der Code zeigt hier einen Ausschnitt des fe_page Templates vor der Bearbeitung.

<body id="top" class="unknown other <?php if ($this->class) echo ' ' . $this->class; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>

  <?php $this->block('body'); ?>
    <?php $this->sections('top'); ?>

    <div id="wrapper">

      <?php $this->block('header'); ?>
        <?php if ($this->header): ?>
          <header id="header">
            <div class="inside">
              <?php echo $this->header; ?>
            </div>
          </header>
        <?php endif; ?>
      <?php $this->endblock(); ?>

      <?php $this->sections('before'); ?>

      <?php $this->block('container'); ?>
        <div id="container">

          <?php $this->block('main'); ?>
            <div id="main">
              <div class="inside">
                <?php echo $this->main; ?>
              </div>
              <?php $this->sections('main'); ?>
            </div>
          <?php $this->endblock(); ?>

          <?php $this->block('left'); ?>
            <?php if ($this->left): ?>
              <aside id="left">
                <div class="inside">
                  <?php echo $this->left; ?>
                </div>
              </aside>
            <?php endif; ?>
          <?php $this->endblock(); ?>

          <?php $this->block('right'); ?>
            <?php if ($this->right): ?>
              <aside id="right">
                <div class="inside">
                  <?php echo $this->right; ?>
                </div>
              </aside>
            <?php endif; ?>
          <?php $this->endblock(); ?>

        </div>
      <?php $this->endblock(); ?>

      <?php $this->sections('after'); ?>

      <?php $this->block('footer'); ?>
        <?php if ($this->footer): ?>
          <footer id="footer">
            <div class="inside">
              <?php echo $this->footer; ?>
            </div>
          </footer>
        <?php endif; ?>
      <?php $this->endblock(); ?>

    </div>

    <?php $this->sections('bottom'); ?>
  <?php $this->endblock(); ?>

  <?php echo $this->mootools; ?>

</body>

Und hier das fe_page Temolate nach der Änderung. Der rechte Bereich wird nun vor dem linken ausgegeben.

<body id="top" class="unknown other <?php if ($this->class) echo ' ' . $this->class; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>

  <?php $this->block('body'); ?>
    <?php $this->sections('top'); ?>

    <div id="wrapper">

      <?php $this->block('header'); ?>
        <?php if ($this->header): ?>
          <header id="header">
            <div class="inside">
              <?php echo $this->header; ?>
            </div>
          </header>
        <?php endif; ?>
      <?php $this->endblock(); ?>

      <?php $this->sections('before'); ?>

      <?php $this->block('container'); ?>
        <div id="container">

          <?php $this->block('main'); ?>
            <div id="main">
              <div class="inside">
                <?php echo $this->main; ?>
              </div>
              <?php $this->sections('main'); ?>
            </div>
          <?php $this->endblock(); ?>

        <?php $this->block('right'); ?>
            <?php if ($this->right): ?>
              <aside id="right">
                <div class="inside">
                  <?php echo $this->right; ?>
                </div>
              </aside>
            <?php endif; ?>
          <?php $this->endblock(); ?>

          <?php $this->block('left'); ?>
            <?php if ($this->left): ?>
              <aside id="left">
                <div class="inside">
                  <?php echo $this->left; ?>
                </div>
              </aside>
            <?php endif; ?>
          <?php $this->endblock(); ?>

        </div>
      <?php $this->endblock(); ?>

      <?php $this->sections('after'); ?>

      <?php $this->block('footer'); ?>
        <?php if ($this->footer): ?>
          <footer id="footer">
            <div class="inside">
              <?php echo $this->footer; ?>
            </div>
          </footer>
        <?php endif; ?>
      <?php $this->endblock(); ?>

    </div>

    <?php $this->sections('bottom'); ?>
  <?php $this->endblock(); ?>

  <?php echo $this->mootools; ?>

</body>

Einer der Hauptgründe das fe_Page Template anzufassen ist, dass im Original der Meta Tag Generator gesetzt ist:
<meta name="generator" content="Contao Open Source CMS">

Wer aus Sicherheitsgründen sein CMS nicht gleich für jeden erkennbar machen möchte, sollte diesen Meta Tag ändern. Auch kann man an dieser Stelle diverse zusätzliche Meta Tags einsetzen, die nicht direkt von Contao aus gesetzt werden können.
Mehr zum Thema Meta Tags in Contao finden Sie übrigens hier. 

4. Welche Parameter sollten nicht geändert werden?

Descriptor und Keywords bitte nicht in der fe_page ändern! Diese werden in der Seitenstruktur eingeben und von den einzelnen Seiten ausgegeben. So lassen sich diese Angaben bequem aus dem Backend heraus verwalten.
Gleiches gilt für die meisten mit PHP ausgegebenen Variablen. Auch wenn man die MooTools nicht mehr verwenden möchte, sollte man das PHP Script im Template belassen, falls doch irgendwann mal ein Modul darauf besteht. Hat man die Variable gelöscht, sucht man ggf. sehr lange nach dem Fehler.

zur Blogübersicht

Online Website Check

Einzelne Webseiten in wenigen Sekunden auf Fehler überprüfen, Optimierungspotenziale herausfinden und direkt verbessern. Kostenlos und anonym mit unserem Website Check Tools.

Hilfe & Support

Sie haben eine Contao Website und benötigen professionelle Unterstützung für Ihr Projekt im Bereich Webdesign, Programmierung, Software oder Online Marketing? Nehmen Sie Kontakt zu uns auf, wir freuen uns auf Sie.  

Cookie- & Analyse Einstellungen

Voreingestellt sind ausschließlich zulässige Cookies, für die keine Einwilligung benötigt wird. Analyse und Tracking, sowie weiteren funktionellen Cookies, können Sie unter "Mehr" durch Anwählen von "Ja" zustimmen.
Weitere Infos zu Cookies und Ihrem Datenschutz stellen wir Ihnen in der Datenschutzerklärung vor.

Verweigern
Akzeptieren
Mehr