Contao-Camp 2024
Ergebnis 1 bis 10 von 10

Thema: Bild-Ausgabe im Template "news_latest.html5"

  1. #1
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard Bild-Ausgabe im Template "news_latest.html5"

    Hallo,

    mit folgendem Code gebe ich bei meiner lokalen Contao-Installationen die Bilder im Template ("news_latest.html5") aus:

    PHP-Code:
    if (null !== ($objCoverFile = \FilesModel::findByUuid($this->singleSRC)))
    {
        
    $objImageTemplate = new stdClass();
        \
    Controller::addImageToTemplate($objImageTemplate, [
          
    'singleSRC' => $objCoverFile->path,
          
    'size' => [820482'crop'],
        ], \
    Config::get('maxImageWidth'), null$objCoverFile);
        
    $this->insert('image', (array) $objImageTemplate);

    Bei meiner lokalen Installation funktioniert das wunderbar.
    Bei meiner Installation am Server wird das Bild jedoch nicht ausgegeben.

    Ich denke ich hab die Ursache mittels "dump()" auch bereits gefunden:
    Bei meiner lokalen Installation ist "$this->singleSRC" eine Uuid.
    Bei meiner Server-Installation ist "$this->singleSRC" seltsamerweise ein Pfad.
    Also zb: "files/medien/bilder/a.jpg".
    Daher ist im obigen Code $objCoverFile immer NULL – somit wird nichts ausgegeben.

    Hat einer von euch eine Idee woran das liegen könnte?

    Danke!
    lg
    Georg
    Geändert von thesweetg (03.02.2020 um 15:27 Uhr)

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

    Standard

    Warum genau machst du das? Das Teaser Bild wird doch bereits von Contao ausgegeben.

  3. #3
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    Ich möchte das der Redakteur die Bildgröße nicht im Backend definieren muss.
    Daher würde ich sie gerne im Template festlegen.

    Nun ist noch ein anderes Problem aufgetaucht:
    Wenn die Seite lokal mit "meine-contao-installation/app_dev.php/" aufrufe, bekomme ich einen "404 Not Found".
    Nun wird die Problemsuche noch schwieriger ...

  4. #4
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Du könntest das via DCA lösen: Verzeichnis erstellen \contao\dca\
    Dort dann 4 neue Dateien erstellen: tl_news.php, tl_content.php, tl_calendar_events.php, tl_faq.php
    Inhalt:

    HTML-Code:
    <?php
    
    // Bildgröße (300 x 200 Pixel) vorbelegen
    $GLOBALS['TL_DCA']['tl_content']['fields']['size']['default'] = array(0=>'300',1=>'200',2=>'proportional');
    
    // Bildabstände und Einheit em vorbelegen
    $GLOBALS['TL_DCA']['tl_content']['fields']['imagemargin']['default'] = ['top'=>0, 'right'=>0, 'bottom'=>2, 'left'=>2, 'unit' => 'em'];
    
    // Bildposition vorbelegen
    $GLOBALS['TL_DCA']['tl_content']['fields']['floating']['default'] = 'right';
    
    // Großansicht / Neues Fenster
    $GLOBALS['TL_DCA']['tl_content']['fields']['fullsize']['default'] = true;
    Hier im Beispiel die tl_content, für die anderen musst es nur kopieren und das tl_content im Code ($GLOBALS['TL_DCA']['XXX']) mit einem der anderen Namen oben tauschen, plus Dateiname ändern, Cache neu erstellen nicht vergessen.

    Ich glaube, es gibt auch noch eine Variante per config.yml, aber da warte mal auf Spooky...

    ToM
    Geändert von Nightwing (04.02.2020 um 07:09 Uhr)

  5. #5
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    Ich hab das jetzt so gelöst:

    PHP-Code:
    // bei manchen News-Beiträgen ist "singleSRC" ein Pfad
    // auch in diesen Fällen sollte die Uuid verwendet werden:
    $objFile = \FilesModel::findByPath($this->singleSRC);
    if (
    $objFile !== null
    {
        
    $this->singleSRC $objFile->uuid;
    }

    // das Bild ausgeben:
    if (null !== ($objCoverFile = \FilesModel::findByUuid($this->singleSRC)))
    {
        
    $objImageTemplate = new stdClass();
        \
    Controller::addImageToTemplate($objImageTemplate, [
          
    'singleSRC' => $objCoverFile->path,
          
    'size' => [820482'crop'],
        ], \
    Config::get('maxImageWidth'), null$objCoverFile);
        
    $this->insert('image', (array) $objImageTemplate);

    Warum "$this->singleSRC" bei manchen News-Beiträgen ein Pfad, und bei manchen eine Uuid ist, konnte ich nicht rausfinden :/

  6. #6
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Interessanter Weg
    Probier mal meinen Weg, der tut ohne Probleme.

    ToM

  7. #7
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    @Nightwing:
    Ups, ich hatte deinen Lösungsansatz bzw. deinen Beitrag ganz übersehen.
    Schaut sehr gut aus, das ist natürlich der elegantere Weg
    ... werde ich ausprobieren.

  8. #8
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.124

    Standard

    Wieso definierst du nicht unter Themes eine Bildgröße "News-Image" Die brauch der Redaktuer nur wählen? Bzw. legst die Größe im News-Modul fest?
    Liebe Grüße
    WebRoxx


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

    Standard

    Zitat Zitat von thesweetg Beitrag anzeigen
    Ich möchte das der Redakteur die Bildgröße nicht im Backend definieren muss.
    Daher würde ich sie gerne im Template festlegen.
    Der Redakteur muss keine Bildgröße festlegen, die stellst du im News Modul ein.

  10. #10
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    Danke Spooky, die Option hatte ich übersehen.

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
  •