Ergebnis 1 bis 7 von 7

Thema: Image src wird nicht korrekt dargestellt

  1. #1
    Contao-Nutzer
    Registriert seit
    07.08.2011.
    Beiträge
    110

    Standard Image src wird nicht korrekt dargestellt

    Hallo,

    ich übergebe in meinem Template ein Array mit Bildpfaden wie files/THEME/bild1.jpg

    Wenn ich die Einträge im Array nun im Template ausgeben erscheint im Img src folgendes:
    Code:
    u����P�r����b
    Jemand eine Idee wie ich das lösen kann?

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

    Standard

    So wie es aussieht übergibst du dem Template nicht ein Array mit Bildpfaden, sondern mit UUIDs. Die eigentlich Datei hinter der UUID bekommst du mit
    PHP-Code:
    $objFile = \FilesModel::findById$uuid );
    echo 
    $objFile->path

  3. #3
    Contao-Nutzer
    Registriert seit
    07.08.2011.
    Beiträge
    110

    Standard

    Hi, den Code nutze ich bereits.

    PHP-Code:
    if ( ( $objFile = \FilesModel::findByUuid$member['avatar'] ) ) && file_exists(TL_ROOT '/' $objFile->path ) ) {
                    
    $member['avatar'] = $objFile->path;
                } 
    Genau $member['avatar'] gebe ich zurück. Wenn ich mir den Inhalt im Script ausgeben lasse, dann sehe ich dort auch den korrekten Pfad.

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

    Standard

    Naja, das ist dann aber konträr zu deiner Aussage im ersten Post. Was genau gibst du nun wo aus? Wie sieht das ganze Template aus?

  5. #5
    Contao-Nutzer
    Registriert seit
    07.08.2011.
    Beiträge
    110

    Standard

    Script:
    PHP-Code:
    $members $rs->fetchAllAssoc();
            
       foreach( 
    $members AS $member ){
          if ( 
    $member['avatar'] && ( $objFile = \FilesModel::findByUuid$member['avatar'] ) ) && file_exists(TL_ROOT '/' $objFile->path ) ) {
             
    $member['avatar'] = $objFile->path;
          }
       }
            
       
    $this->Template->users $members

    Template:
    PHP-Code:
    <?php foreach ($this->users as $user): ?>
       <?php if( $user['avatar'] ) : ?>
          <img width="400" height="400" alt="" src="<?php print $user['avatar'?>">
       <?php else: ?>
          <img width="400" height="400" alt="" src="files/dummy01.png">
       <?php endif; ?>
    <?php 
    endforeach; ?>
    Und der Bildpfad wird im FE wie oben geschrieben angezeigt.

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

    Standard

    Zitat Zitat von HCA Beitrag anzeigen
    Script:
    PHP-Code:
    $members $rs->fetchAllAssoc();
            
       foreach( 
    $members AS $member ){
          if ( 
    $member['avatar'] && ( $objFile = \FilesModel::findByUuid$member['avatar'] ) ) && file_exists(TL_ROOT '/' $objFile->path ) ) {
             
    $member['avatar'] = $objFile->path;
          }
       }
            
       
    $this->Template->users $members
    Das funktioniert so nicht, du änderst hier nur die lokale Variable $member, welches nur eine Kopie des Inhalts des Eintrages in $members ist. Damit das so funktioniert musst du stattdessen
    PHP-Code:
    foreach( $members as &$member 
    schreiben, also ein & for dem $member. Dadurch definierst du, dass $member eine Referenz auf die jeweilige Stelle im Array ist, und keine Kopie.

  7. #7
    Contao-Nutzer
    Registriert seit
    07.08.2011.
    Beiträge
    110

    Standard

    ahh okay =)

    Nun klappt es. Danke

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
  •