Hallo zusammen,
aktuell bin ich dabei, über die dcaconfig.php den Bereich von tl_article zu erweitern. Ich nutze dabei Contao 3.3.5.
Ich möchte konkret eine Checkbox zur optionalen Bildauswahl einfügen, der Pfad soll dann im frontend ausgegeben werden (wird später genutzt als background-image URL inline-css). Die Checkbox konnte ich erstellen, auch die Auswahl eines Bildes ist möglich. Jedoch wird auf der Website schlicht "unknown" ausgegeben und keine URL generiert.
So habe ich die dcaconfig geändert:
PHP-Code:
/** Selectors*/
$GLOBALS['TL_DCA']['tl_article']['palettes']['__selector__'][] = 'addImage';
/**Subpalettes*/
$GLOBALS['TL_DCA']['tl_article']['subpalettes']['addImage'] = 'singleSRC';
/**Palettes*/
$GLOBALS['TL_DCA']['tl_article']['palettes']['default'] = str_replace ('sectionstyle;','sectionstyle,addImage;',$GLOBALS['TL_DCA']['tl_article']['palettes']['default']);
/**Fields*/
$GLOBALS['TL_DCA']['tl_article']['fields']['addImage'] = [
'label' => &$GLOBALS['TL_LANG']['tl_article']['fields']['addImage'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
];
$GLOBALS['TL_DCA']['tl_article']['fields']['singleSRC'] = [
'label' => &$GLOBALS['TL_LANG']['tl_article']['fields']['singleSRC'],
'exclude' => true,
'inputType' => 'fileTree',
'eval' => array('fieldType'=>'radio', 'files'=>true, 'filesOnly'=>true, 'mandatory'=>true),
'sql' => "binary(16) NULL"
];
Bei der Ausgabe in mod_article.html5 habe ich es mal mit folgendem versucht:
PHP-Code:
<?php if ($this->addImage): ?>
<img src="<?php echo $this->src; ?>"/>
<?php endif; ?>
Das ergibt nun src(unknown).
Meine Frage: Wie kann ich den tatsächlichen Pfad des gewählten Bildes am Ende ausgeben? In der Datenbank konnte ich sehen, dass der Eintrag zwar gesetzt ist, aber nur in kryptischer Zahlen/Buchstaben-Abfolge. Ich vermute, dass diese Angabe im Zwischenschritt noch umgewandelt werden muss, konnte jedoch nicht rausfinden, wie das gemacht wird.
Bin für jeden Tipp sehr dankbar!
-- kurzer Background: Es handelt sich um meine ersten Versuche mit der DCA, ich habe bisher keine Erfahrungen mit Backend-Optimierungen und kann nur mit PHP-Grundwissen aufwarten. Ich entschuldige mich im Voraus, wenn ich evtl. etwas schwer von Begriff bin und danke euch für eure Hilfen! --
Lesezeichen