Ergebnis 1 bis 9 von 9

Thema: Template image.html5 und neue Template Engine

  1. #1
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.797
    Contao-Projekt unterstützen

    Support Contao

    Standard Template image.html5 und neue Template Engine

    Ich habe mich gerade gewundert weshalb das Template image.html5 nicht so gestaltet worden ist, dass es mit der neuen Template Engine erweitert werden kann.

    Ist das Absicht? Hat das einen bestimmten Grund?
    Geändert von mlweb (26.10.2018 um 22:26 Uhr)
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.240
    Partner-ID
    10107

    Standard

    Was genau meinst bzw. brauchst du?

  3. #3
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.797
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In dem Fall habe ich nur eine Klasse zu figure hinzugefügt, dabei war mir aufgefallen, dass das Template keine Funktionen block() und endblock()hat und damit mit der neuen Templateengine gar nicht bearbeitet werden könnte.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.240
    Partner-ID
    10107

    Standard

    Naja das hat ja nicht direkt etwas mit der neuen Template engine zu tun. Nicht jedes Template verwendet Blöcke.

    Außerdem würden die Blöcke für eine zusätzliche Klasse am figure Element eh nichts bringen.

  5. #5
    Contao-Nutzer Avatar von eki89
    Registriert seit
    20.04.2016.
    Beiträge
    41
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    dabei war mir aufgefallen, dass das Template keine Funktionen block() und endblock()hat und damit mit der neuen Templateengine gar nicht bearbeitet werden könnte.
    Das ist an dieser Stelle nicht notwendig. Ein Block muss lediglich dann definiert werde, wenn ein Template durch ein anderes erweitert wird. Man kann sich das gut anhand der form-Templates ableiten.

    form_textfield.html5 erweitert das Template form_row.html5. Aus diesem Grund muss man in form_textfiled.html5 die verfügbaren Blöcke nutzen (label, field). Es wird also immer nur das spezielle Template gerendert, welches wiederum form_row.html5 aufruft.

    form_textfield.html5
    HTML-Code:
    <?php $this->extend('form_row'); ?>
    
    <?php $this->block('label'); ?>
      <?php if ($this->label): ?>
        <label for="ctrl_<?= $this->id ?>"<?php if ($this->class): ?> class="<?= $this->class ?>"<?php endif; ?>>
          <?php if ($this->mandatory): ?>
            <span class="invisible"><?= $this->mandatoryField ?> </span><?= $this->label ?><span class="mandatory">*</span>
          <?php else: ?>
            <?= $this->label ?>
          <?php endif; ?>
        </label>
      <?php endif; ?>
    <?php $this->endblock(); ?>
    
    <?php $this->block('field'); ?>
      <?php if ($this->hasErrors()): ?>
        <p class="error"><?= $this->getErrorAsString() ?></p>
      <?php endif; ?>
    
      <input type="<?= $this->type ?>" name="<?= $this->name ?>" id="ctrl_<?= $this->id ?>" class="text<?php if ($this->hideInput) echo ' password'; ?><?php if ($this->class) echo ' ' . $this->class; ?>" value="<?= StringUtil::specialchars($this->value) ?>"<?= $this->getAttributes() ?>>
    <?php $this->endblock(); ?>
    form_row.html5
    HTML-Code:
    <div class="<?= $this->prefix ?><?php if ($this->class) echo ' ' . $this->class; ?>">
      <?php $this->block('label'); ?>
      <?php $this->endblock(); ?>
    
      <?php $this->block('field'); ?>
      <?php $this->endblock(); ?>
    </div>
    Hätte man also nun verschiedene Ausgabemöglichkeiten für Bilder, würde es hier auch Sinn machen. Außerdem wird das image.html5 Template nicht direkt durch ein Content Element oder Modul gerendert (vereinfacht gesagt), so dass man sowieso keine CSS-Klasse oder sonstige Dinge einstellen kann, außer den Einstellmöglichkeiten für Bilder.

    Man hätte schlicht keinen Vorteil hier einen Block zu setzen, zumindest kann ich grad keinen erkennen. Hast du ggf. ein Beispiel wofür das Sinnvoll sein kann?

  6. #6
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.797
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen

    Außerdem würden die Blöcke für eine zusätzliche Klasse am figure Element eh nichts bringen.
    Das habe ich dann beim Testen auch gemerkt.
    Wollte dann aber interessehalber in meinem jungendlichen "Nichtentwickler-Leichtsinn" mal sehen, ob es funktionieren würde z.B. ein zusätzliches div um figure zu legen oder ein zusätzliches p-tag einzufügen (unabhängig davon ob das tatsächlich Sinn macht).

    Code:
    <?php $this->extend('image'); ?>
    <div class="test"><?php $this->parent() ?></div>
    <p>Test</p>

    Zitat Zitat von Spooky Beitrag anzeigen
    Naja das hat ja nicht direkt etwas mit der neuen Template engine zu tun. Nicht jedes Template verwendet Blöcke.
    Das erweitern funktioniert jedoch nicht, nach meinem Verständnis, weil es hier keine Blöcke gibt.
    Während ich im ce_text über

    Code:
    <?php $this->extend('ce_text'); ?>
    
    
    <?php $this->block('content'); ?>
    
    
    <div class="test"><?php $this->parent() ?></div>
    <p>Test</p>
    <?php $this->endblock(); ?>
    diese Anpassungen ja vornehmen kann.

    Das heißt also für mich, dass ich die neue Template-Engine nur dort einsetzen kann, wo Blöcke existieren.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  7. #7
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.797
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von eki89 Beitrag anzeigen

    Außerdem wird das image.html5 Template nicht direkt durch ein Content Element oder Modul gerendert (vereinfacht gesagt), so dass man sowieso keine CSS-Klasse oder sonstige Dinge einstellen kann, außer den Einstellmöglichkeiten für Bilder.
    An dieser Stelle kann ich Dir gerade nicht mehr folgen. Wie oben beschrieben, hatte ich schon erkannt, dass meine Idee mit der Klasse bei figure mit der neuen Template-Engine eh nicht funktionieren würde, aber ganz normal mit eigenen Templates funktioniert das schon.

    image_test.html

    Code:
    <figure class="image_container_test<?= $this->floatClass ?>"<?php if ($this->margin): ?> style="<?= $this->margin ?>"<?php endif; ?>>
    
    
      <?php if ($this->href): ?>
        <a href="<?= $this->href ?>"<?php if ($this->linkTitle): ?> title="<?= $this->linkTitle ?>"<?php endif; ?><?= $this->attributes ?>>
      <?php endif; ?>
    
    
      <?php $this->insert('picture_default', $this->picture); ?>
    
    
      <?php if ($this->href): ?>
        </a>
      <?php endif; ?>
    
    
      <?php if ($this->caption): ?>
        <figcaption class="caption"><?= $this->caption ?></figcaption>
      <?php endif; ?>
    
    
    </figure>
    ce_text_test.html
    Code:
    <?php $this->extend('block_searchable'); ?>
    
    
    
    
    <?php $this->block('content'); ?>
    
    
      <?php if (!$this->addBefore): ?>
        <?= $this->text ?>
      <?php endif; ?>
    
    
      <?php if ($this->addImage): ?>
        <?php $this->insert('image_test', $this->arrData); ?>
      <?php endif; ?>
    
    
      <?php if ($this->addBefore): ?>
        <?= $this->text ?>
      <?php endif; ?>
    
    
    <?php $this->endblock(); ?>
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.240
    Partner-ID
    10107

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Wollte dann aber interessehalber in meinem jungendlichen "Nichtentwickler-Leichtsinn" mal sehen, ob es funktionieren würde z.B. ein zusätzliches div um figure zu legen oder ein zusätzliches p-tag einzufügen (unabhängig davon ob das tatsächlich Sinn macht).

    PHP-Code:
    <?php $this->extend('image'); ?>
    <div class="test"><?php $this->parent() ?></div>
    <p>Test</p>
    Das würdest du wenn dann so machen:
    PHP-Code:
    <div class="test">
      <?php $this->insert('image'$this->arrData?>
    </div>
    <p>Test</p>
    (ungetestet)

    Mit
    PHP-Code:
    $this->parent() 
    würdest du den parent Block einfügen - aber an dieser Stelle bist du ja in keinem Block.

  9. #9
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.797
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke @Spooky gerade getestet. Das funktioniert.
    Wer weiß wozu ich sowas mal gebrauchen kann.
    Als "Nichtentwickler" habe ich manchmal Scheuklappen auf und brauche Beispiele die ich entsprechend auf meinen Fall anwenden kann.
    Deshalb auch immer mal so ein paar Tests, die erst mal rein "theoretische Bedeutung" haben.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •