Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: Problem: DCA tl_article neues Feld Bild-Upload Ausgabe unknown

  1. #1
    Contao-Nutzer
    Registriert seit
    05.02.2019.
    Beiträge
    8

    Standard Problem: DCA tl_article neues Feld Bild-Upload Ausgabe unknown

    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! --

  2. #2
    Contao-Nutzer
    Registriert seit
    05.02.2019.
    Beiträge
    8

    HTML FilesModel heißt das Zauberwort

    Habe eine Lösung gefunden und schreibe sie hier rein, falls jemand anderes mal drüber stolpert.

    Bislang habe ich nicht mit FilesModel gearbeitet und wusste auch nicht, dass es dies in Contao gibt. In meinem Fall wird es wie folgt angewendet:

    PHP-Code:
    <?php  $source = \FilesModel::findByUuid($this->singleSRC); ?>

    <?php if ($this->addImage): ?>
        <div style="background:url('<? echo $source->path;?>') no-repeat center;background-size:cover;"></div>
    <?php endif; ?>

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
  •