Verwendung: Mehr als eine "headline" als Gruppe in einem Custom Element, mit h1-h6 zur Auswahl
Produkt: Custom Elements Contao
Ich hätte ein frage, wie kann man eine Custom Element mit mehrere Überschriften erstellen? Beide sollen jeweils ein Optionsfeld mit h1-h6 zur Auswahl haben.
Mit freundlichen Grüßen
Maik
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by RockSolid Theme... on 06 Aug, 2019 02:07 PM
Vielen Dank für Ihre Frage.
Eine Konfiguration für zwei Überschriften-Felder kann z. B. folgendermaßen aussehen:
2 Posted by Maik on 06 Aug, 2019 07:34 PM
Die Ausgabe im Backend funktioniert jetzt soweit, doch es wird nur der wert "Array" im Frontend ausgegeben.
Vielen Dank für die Hilfe.
Support Staff 3 Posted by RockSolid Theme... on 07 Aug, 2019 06:15 AM
Für die Ausgabe im Frontend können Sie folgenden Code verwenden:
4 Posted by Flo on 06 Dec, 2022 11:12 AM
Ich setze es seit Jahren genau so ein.
Ich habe gerade ein Update eines Contao 4.4 auf 4.13 gemacht und bekomme nun die Meldung Undefined constant "unit".
Sowohl im Backend als auch im Frontend.
Hat sich etwas geändert?
Support Staff 5 Posted by RockSolid Theme... on 06 Dec, 2022 03:07 PM
Eventuell haben Sie ein Update der PHP-Version vorgenommen. Den Fehler
Undefined constant
gibt es erst seit PHP 8.0.Diese Fehlermeldung deutet drauf hin, dass die Anführungszeichen rund um das Wort
unit
fehlen. Damit wir Ihnen zielgerichteter weiterhelfen können, schicken Sie uns bitte den PHP-Code den Sie einsetzen.6 Posted by Flo on 06 Dec, 2022 04:03 PM
ha, das mit den Anführungszeichen war es! Super. :)
7 Posted by Marco on 28 Feb, 2025 12:20 PM
Gem. dieser Anleitung habe ich bis Contao 4.13 folgende Funktion erfolgreich verwendet:
<?php
if ($this->headline['value']):
$headline = '<'.$this->headline['unit'].'>'.$this->headline['value'].'</'.$this->headline['unit'].'>';
endif;
?>
[...]
<?= $headline ?>
Seit dem Update auf Contao 5.3 wird ein Fehler ausgegeben: Cannot access offset of type string on string
Muss dies jetzt angepasst werden? Ich habe dazu nirgendwo etwas finden können.
Support Staff 8 Posted by RockSolid Theme... on 28 Feb, 2025 01:13 PM
Vielen Dank für Ihre Frage.
Die Fehlermeldung
Cannot access offset of type string on string
deutet darauf hin, dass Sie für das Feldheadline
keininputUnit
verwenden (oder verwendet haben zum Zeitpunkt an dem das Inhaltselement gespeichert wurde).Sie können die Abfrage wie folgt ergänzen um den Fehler zu beheben:
9 Posted by Marco on 01 Mar, 2025 09:01 AM
Vielen Dank für die schnelle Antwort. Wie der ursprüngliche Post ja suggeriert, wollte ich damals kein Stadard-Headline nuntzen, sondern habe das ganze wie folgt umgesetzt:
'headline' => array(
'label' => array('Überschrift', 'Hier können Sie dem Inhaltselement eine Überschrift hinzufügen. Sie können HTML-Tags verwenden, um den Text zu formatieren.'),
'inputType' => 'inputUnit',
'options' => array(
'h1' => 'h1',
'h2' => 'h2',
'h3' => 'h3',
'h4' => 'h4',
'h5' => 'h5',
'h6' => 'h6'
),
'eval' => array(
'tl_class' => 'w50',
'allowHtml' => true
)
),
Das 'inputType' => 'inputUnit', habe ich dabei verwendet. In der Datenbank ist folgender Inhalt gespeichert:
a:2:{s:4:"unit";s:2:"h1";s:5:"value";s:19:"Überschrift";}
Die Ausgabe sollte ja dann eben so erfolgen:
<?php
if ($this->headline['value'] ?? null): // kein Fehler mehr, ja, aber auch keine Ausgabe der Überschrift
$headline = '<'.$this->headline['unit'].'>'.$this->headline['value'].'</'.$this->headline['unit'].'>';
endif;
?>
Support Staff 10 Posted by RockSolid Theme... on 03 Mar, 2025 09:03 AM
Beachten Sie bitte, dass die Daten des Custom-Elements nicht in der Spalte
headline
gespeichert werden. In der Datenbank sollten sich in der Spaltersce_data
eigentlich JSON-Daten befinden die folgendermaßen aussehen:{"headline":"a:2:{s:4:\"unit\";s:2:\"h1\";s:5:\"value\";s:19:\"Überschrift\";}"}
Welche Version der Custom Elements Erweiterung haben Sie im Einsatz?
Damit wir Ihnen zielgerichteter weiterhelfen können, schicken Sie uns bitte die gesamte
_config.php
-Datei und.html5
-Datei Ihres Custom Elements.11 Posted by Marco on 03 Mar, 2025 10:18 AM
.html5
<?php
// Überschrift
if ($this->headline['value']):
$headline = '<'.$this->headline['unit'].' class="ce_headline">'.$this->headline['value'].'</'.$this->headline['unit'].'>';
endif;
?>
<div><?= $headline ?></div>
_config.php
<?php
return array(
'label' => array('Überschrift', 'Erzeugt eine Überschrift.'),
'types' => array('content'),
'contentCategory' => 'texts',
'fields' => array(
'legendHeadline' => array(
'label' => array('Überschrift', ''),
'inputType' => 'group'
),
'headline' => array(
'label' => array('Überschrift', 'Hier können Sie dem Inhaltselement eine Überschrift hinzufügen. Sie können HTML-Tags verwenden, um den Text zu formatieren.'),
'inputType' => 'inputUnit',
'options' => array(
'h1' => 'h1',
'h2' => 'h2',
'h3' => 'h3',
'h4' => 'h4',
'h5' => 'h5',
'h6' => 'h6'
),
'eval' => array(
'tl_class' => 'w50',
'allowHtml' => true
)
)
)
);
Support Staff 12 Posted by RockSolid Theme... on 03 Mar, 2025 10:49 AM
Wir haben Ihr Element soeben getestet und konnten keine Probleme in Contao 5.3 feststellen. Im Frontend wird wie erwartet folgender Quelltext ausgegeben:
<div><h1 class="ce_headline">Überschrift</h1></div>
Welche Version der Custom Elements Erweiterung haben Sie im Einsatz?