katgirl / contao-avatar

avatar for contao
8 stars 6 forks source link

Avatar ausgeben im Modul Auflistung #9

Closed Mike008 closed 10 years ago

Mike008 commented 10 years ago

Sobald ich in einer Auflistung das Avatar Bild ausgeben will (Felder: avatar), erscheint im FrontEnd nicht das Bild des Mitgliedes sondern: K��Qy2�+�EjE�

In dieses Feld müsste er die korrekt URL des Bildes ausgeben, und keine seltsamen Zeichen.

tristanlins commented 10 years ago

Contao 3.2 schätze ich mal?!

katgirl commented 10 years ago

sollte eigentlich mit der 3.X behoben sein ???

katgirl commented 10 years ago

https://github.com/katgirl/contao-avatar/commit/d3d1d60c68cb338d7842c3751c953a674e4691c3

Mike008 commented 10 years ago

Genau es handelt sich um die 3.2.3 Version. Ich finde den Fehler nicht.

Vor allem weil die Extension Avatar aktuell ist für die die Version 3.2.3

katgirl commented 10 years ago

kannst du mal deine Einstellungen mitteilen? Habe die Vermutung, das du die UUID so ausgibst, diese ist aber Binär in der Datenbank. Daher du musst:

\String::binToUuid($RAW)

benutzen und dann:

\FilesModel::findByUuid($RAW['UUID']);
Mike008 commented 10 years ago
  1. Cache mehrmals geleert und neu aufgebaut
  2. Standardeinstellungen Avatar (Bildgröße 240x320px)
  3. Modul Auflistung (Tabelle:tl_member Felder:avatar,firstname,lastname Bedingung:groups LIKE '%"2"%')

Ausgabe im Frontend: K��ky2�+�EjE� Vorname01 Nachname01

katgirl commented 10 years ago

Du musst das default_list - Template anpassen, da jetzt im Avatarfeld die UUID steht und nicht mehr der Pfad zur Datei bzw. zur ID.

Daher ab Zeile 65:

<?php foreach ($row as $col): ?>
          <td class="body <?php echo $col['class']; ?>"><?php
            if ( $col['field'] == 'avatar'):          
                $objFile = \FilesModel::findByPk($col['content']);
                $arrImage = deserialize($GLOBALS['TL_CONFIG']['avatar_maxdims']);

                if ($objFile === null && $GLOBALS['TL_CONFIG']['avatar_fallback_image']) {
                        $objFile = \FilesModel::findByPk($GLOBALS['TL_CONFIG']['avatar_fallback_image']);
                }

                if ($objFile !== null) {
                        echo '<img src="' . TL_FILES_URL . \Image::get(
                                $objFile->path,
                                $arrImage[0],
                                $arrImage[1],
                                $arrImage[2]
                        ) . '" width="' . $arrImage[0] . '" height="' . $arrImage[1] . '" alt="' . $strAlt . '" class="avatar">';
                }
                else {
                        echo '<img src="' . TL_FILES_URL . \Image::get(
                                "system/modules/avatar/assets/male.png",
                                $arrImage[0],
                                $arrImage[1],
                                $arrImage[2]
                        ) . '" width="' . $arrImage[0] . '" height="' . $arrImage[1] . '" alt="Avatar" class="avatar">';
                }   
            else:   
              echo $col['content']; 
            endif;
          ?></td>
        <?php endforeach; ?>
Mike008 commented 10 years ago

Vielen Dank !! Funktioniert tadellos (nur der der formhalber). Das Template was zu ändern ist, ist: list_default.xxx