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?
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.
Was genau meinst bzw. brauchst du?
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.
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.
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
form_row.html5HTML-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(); ?>
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.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>
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?
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>
Das erweitern funktioniert jedoch nicht, nach meinem Verständnis, weil es hier keine Blöcke gibt.
Während ich im ce_text über
diese Anpassungen ja vornehmen kann.Code:<?php $this->extend('ce_text'); ?> <?php $this->block('content'); ?> <div class="test"><?php $this->parent() ?></div> <p>Test</p> <?php $this->endblock(); ?>
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.
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
ce_text_test.htmlCode:<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>
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.
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 in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen